Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
234 changes: 234 additions & 0 deletions battle/formation/patch/02 Area KMR Part 3.bpat
Original file line number Diff line number Diff line change
@@ -0,0 +1,234 @@
@ $JrTroopa1
{
% stats
[Index] 88b
[Level] 41`b
[MaxHP] 10`b
[Coins] 0`b
[Flags] 00000000
[StatusTable] $StatusTable_80222A38
% ai
[PartsCount] 1`s
[PartsTable] $PartsTable_80222AE4
[Script] $Script_Init_80223180
% move effectiveness
[Escape] 0`b
[Item] 0`b
[AirLift] 0`b
[Hurricane] 0`b % Bow's "Spook" as well
[UpAndAway] 0`b
[PowerBounce] 80`b
[SpinSmash] 0`b % weight (0-4)
% ui positions
[Size] 24`b 32`b % width height
[HealthBar] 0`b 0`b % dx dy
[StatusTurn] -15`b 30`b % dx dy
[StatusIcon] 10`b 20`b % dx dy
}

@ $Script_NextTurn_80223D2C
{
0: Call UseIdleAnimation ( .Actor:Self .False )
14: Call EnableIdleScript ( .Actor:Self 00000000 )
28: Call GetBattlePhase ( *Var0 )
38: Switch *Var0
44: Case == 0000000A
50: Call GetActorVar ( .Actor:Self 00000001 *Var0 )
68: If *Var0 == 00000000
78: Call SetActorVar ( .Actor:Self 00000001 00000001 )
90: Wait 15`
9C: Call 802535B4 ( 00000000 )
AC: Call SetAnimation ( .Actor:Player 00000000 00010002 )
C4: Thread
CC: Set *Var1 00000000
DC: Wait 8`
E8: Loop 00000005
F4: Wait 1`
100: Sub *Var1 00000024
110: Call SetActorYaw ( .Actor:Player *Var1 )
124: EndLoop
12C: EndThread
134: Call SetAnimation ( .Actor:Self 00000001 0021002B )
14C: Call ActorSpeak ( 000B00AF .Actor:Partner 00000000 009D0008 009D0001 ) % Mario, this is Jr. Troopa. He's the boss of the ne ...
16C: Call SetAnimation ( .Actor:Self 00000001 00210003 )
184: Call SetAnimation ( .Actor:Player 00000000 00010029 )
19C: Wait 10`
1A8: Thread
1B0: Set *Var1 000000B4
1C0: Wait 4`
1CC: Loop 00000005
1D8: Wait 1`
1E4: Add *Var1 00000024
1F4: Call SetActorYaw ( .Actor:Player *Var1 )
208: EndLoop
210: EndThread
218: Wait 10`
224: Call 802535B4 ( 00000001 )
234: Call UseBattleCamPreset ( 00000002 )
244: Call MoveBattleCamOver ( 4` )
254: EndIf
264: Case == 0000000C
270: Call GetActorVar ( .Actor:Self 00000002 *Var0 )
288: If *Var0 == 00000001
298: Call SetActorVar ( .Actor:Self 00000002 00000002 )
2B0: ExecWait $Script_80222C08
2BC: Call UseIdleAnimation ( .Actor:Player .False )
2D0: Call SetAnimation ( .Actor:Player 00000000 00010002 )
2E8: Thread
2F0: Set *Var1 00000000
300: Loop 00000005
30C: Wait 1`
318: Sub *Var1 00000024
328: Call SetActorYaw ( .Actor:Player *Var1 )
33C: EndLoop
344: EndThread
34C: Call UseIdleAnimation ( .Actor:Partner .False )
360: Call ActorSpeak ( 000B00B0 .Actor:Partner 00000000 009D0008 009D0001 ) % Oh, excellent! Good move! Go on!!
380: Call UseIdleAnimation ( .Actor:Partner .True )
394: Call SetAnimation ( .Actor:Player 00000000 00010032 )
3AC: Wait 20`
3B8: Call SetActorYaw ( .Actor:Player 0` )
3CC: Wait 4`
3D8: Call UseIdleAnimation ( .Actor:Player .True )
3EC: EndIf
3F4: Call GetActorVar ( .Actor:Self 00000003 *Var0 )
40C: If *Var0 == 00000000
41C: Call GetActorHP ( .Actor:Self *Var0 )
430: If *Var0 <= 00000001
440: Call SetActorVar ( .Actor:Self 00000003 00000001 )
458: Call UseIdleAnimation ( .Actor:Partner .False )
46C: Call ActorSpeak ( 000B00B2 .Actor:Partner 00000000 009D0008 009D0001 ) % Mario, you've almost got him! Keep it up! Go on!
48C: Call UseIdleAnimation ( .Actor:Partner .True )
4A0: ExecWait $Script_80222B30
4AC: Call ActorSpeak ( 000B00B3 .Actor:Self 00000001 00210016 00210003 ) % All right, you asked for it! Say hello to Jr. Troo ...
440: Call SetActorVar ( .Actor:Self 00000004 00000002 )
5AC: Wait 60`
Call FadeOutMusic ( 00000000 240` )
5B8: Wait 60`
Call ActorSpeak ( 002F0001 .Actor:Self 00000001 00210016 00210003 ) % Yep. That's right. It's literally nothing. ...
5F4: Wait 300`
Call ActorSpeak ( 002F0002 .Actor:Self 00000001 00210016 00210003 ) % Gah! I can't take it any more!
600: EndIf
608: EndIf
610: EndSwitch
618: Call EnableIdleScript ( .Actor:Self 00000001 )
62C: Call UseIdleAnimation ( .Actor:Self .True )
640: Return
648: End
}

@ $Script_TakeTurn_802234A4
{
0: Call UseIdleAnimation ( .Actor:Self .False )
14: Call EnableIdleScript ( .Actor:Self 00000000 )
28: Call AddActorVar ( .Actor:Self 00000000 00000001 )
40: Call GetActorHP ( .Actor:Self *Var0 )
54: Call GetEnemyMaxHP ( .Actor:Self *Var1 )
68: Sub *Var1 *Var0
78: If *Var1 == 00000003
88: Call GetActorVar ( .Actor:Self 00000005 *Var0 )
A0: If *Var0 == 00000000
B0: Call SetActorVar ( .Actor:Self 00000005 00000001 )
C8: ExecWait $Script_80222B30
D4: Call MoveBattleCamOver ( 20` )
E4: Wait 20`
F0: Call UseIdleAnimation ( .Actor:Self .False )
104: Call EnableIdleScript ( .Actor:Self 00000000 )
118: Call ActorSpeak ( 000B00B1 .Actor:Self 00000001 00210016 00210003 ) % Grrrr!! I'm just getting warmed up!
138: EndIf
140: EndIf
148: Call SetTargetActor ( .Actor:Self .Actor:Player )
15C: Call SetGoalToTarget ( .Actor:Self )
16C: Call UseBattleCamPreset ( 0000003F )
17C: Call BattleCamTargetActor ( .Actor:Self )
18C: Call 8024ECF8 ( FFFFFFFF 00000001 00000000 )
1A4: Call SetAnimation ( .Actor:Self 00000001 00210009 )
1BC: Call SetActorSpeed ( .Actor:Self *Fixed[8.0] )
1D0: Call SetGoalToTarget ( .Actor:Self )
1E0: Call AddGoalPos ( .Actor:Self 50` 0` 0` )
1FC: Call SetActorSpeed ( .Actor:Self *Fixed[6.0] )
210: Call RunToGoal ( .Actor:Self 0` .False )
228: Call SetAnimation ( .Actor:Self 00000001 00210003 )
240: Call SetActorDispOffset ( .Actor:Self 00000000 FFFFFFFF 00000000 )
25C: Wait 1`
268: Call SetActorDispOffset ( .Actor:Self 00000000 FFFFFFFE 00000000 )
284: Wait 5`
290: Call SetActorDispOffset ( .Actor:Self 00000000 00000000 00000000 )
2AC: Call SetAnimation ( .Actor:Self 00000001 0021000E )
2C4: Call SetActorSounds ( .Actor:Self .ActorSound:Jump 000020E2 00000000 )
2E0: Call GetActorVar ( .Actor:Self 00000004 *Var1 )
2F8: Call EnemyTestTarget ( .Actor:Self *Var0 ~Flags:DamageType:0 00000000 *Var1 00000010 )
31C: Switch *Var0
328: Case == .HitResult:Miss % 6
334: Call GetGoalPos ( .Actor:Self *Var0 *Var1 *Var2 )
350: Add *Var0 00000028
360: Set *Var1 00000000
370: Call SetActorJumpGravity ( .Actor:Self *Fixed[1.8] )
384: Call SetGoalPos ( .Actor:Self *Var0 *Var1 *Var2 )
3A0: Call JumpToGoal ( .Actor:Self 10` .False .True .False )
3C0: Add *Var0 0000001E
3D0: Call ResetAllActorSounds ( .Actor:Self )
3E0: Call SetGoalPos ( .Actor:Self *Var0 *Var1 *Var2 )
3FC: Call JumpToGoal ( .Actor:Self 8` .False .True .False )
41C: Add *Var0 00000014
42C: Call SetGoalPos ( .Actor:Self *Var0 *Var1 *Var2 )
448: Call JumpToGoal ( .Actor:Self 6` .False .True .False )
468: Sub *Var0 0000000A
478: Call JumpToGoal ( .Actor:Self 4` .False .True .False )
498: Call SetAnimation ( .Actor:Self 00000001 00210003 )
4B0: Wait 8`
4BC: Call SetAnimation ( .Actor:Self 00000001 00210003 )
4D4: Call UseBattleCamPreset ( 00000002 )
4E4: Call SetGoalToHome ( .Actor:Self )
4F4: Call SetActorSpeed ( .Actor:Self *Fixed[6.0] )
508: Call SetAnimation ( .Actor:Self 00000001 00210009 )
520: Call RunToGoal ( .Actor:Self 0` .False )
538: Call SetAnimation ( .Actor:Self 00000001 00210003 )
550: Return
558: EndSwitch
560: Call SetGoalToTarget ( .Actor:Self )
570: Call SetActorJumpGravity ( .Actor:Self *Fixed[2.0] )
584: Thread
58C: Wait 3`
598: Call SetAnimation ( .Actor:Self 00000001 0021000F )
5B0: Wait 5`
5BC: Call SetAnimation ( .Actor:Self 00000001 00210010 )
5D4: EndThread
5DC: Call JumpToGoal ( .Actor:Self 15` .False .True .False )
5FC: Wait 2`
620: Call EnemyDamageTarget ( .Actor:Self *Var0 ~Flags:DamageType:0 00000000 00000000 00000001 00000020 )
648: Switch *Var0
654: CaseOR == .HitResult:Hit % 0
660: CaseOR == .HitResult:QuakeImmune % 2
66C: Call UseBattleCamPreset ( 00000002 )
67C: Call ResetAllActorSounds ( .Actor:Self )
68C: Call GetGoalPos ( .Actor:Self *Var0 *Var1 *Var2 )
6A8: Add *Var0 00000028
6B8: Set *Var1 00000000
6C8: Call SetActorJumpGravity ( .Actor:Self *Fixed[1.8] )
6DC: Call SetGoalPos ( .Actor:Self *Var0 *Var1 *Var2 )
6F8: Call JumpToGoal ( .Actor:Self 10` .False .True .False )
718: Add *Var0 0000001E
728: Call SetGoalPos ( .Actor:Self *Var0 *Var1 *Var2 )
744: Call JumpToGoal ( .Actor:Self 8` .False .True .False )
764: Add *Var0 00000014
774: Call SetGoalPos ( .Actor:Self *Var0 *Var1 *Var2 )
790: Call JumpToGoal ( .Actor:Self 6` .False .True .False )
7B0: Call SetAnimation ( .Actor:Self 00000001 00210003 )
7C8: Wait 10`
7D4: Call SetGoalToHome ( .Actor:Self )
7E4: Call SetActorSpeed ( .Actor:Self *Fixed[6.0] )
7F8: Call SetAnimation ( .Actor:Self 00000001 00210009 )
810: Call RunToGoal ( .Actor:Self 0` .False )
828: Call SetAnimation ( .Actor:Self 00000001 00210003 )
840: EndCaseGroup
848: EndSwitch
608: Call GetActorVar ( .Actor:Self 00000004 *Var1 )
If *Var1 == 2
Call ActorSpeak ( 002F0003 .Actor:Self 00000001 00210016 00210003 ) % Aw, cranberries.
EndIf
850: Call EnableIdleScript ( .Actor:Self 00000001 )
864: Call UseIdleAnimation ( .Actor:Self .True )
878: Return
880: End
}
Binary file added sprite/npc/src/62/Palette_00.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added sprite/npc/src/62/Palette_01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading