Browse Source

some more moves

entrainment, worry seed (update), simple beam, role play (update),
skill swap (update), hone claws, seed flare, guard split, power split,
veno shock
SBird1337 8 years ago
parent
commit
2970c8f5d3

+ 9
- 5
data/moves/effect_table.S View File

16
 	.word 0x081D6A76 @7
16
 	.word 0x081D6A76 @7
17
 	.word 0x081D6AF6 @8
17
 	.word 0x081D6AF6 @8
18
 	.word 0x081D6B5F @9
18
 	.word 0x081D6B5F @9
19
-	.word 0x081D6B77 @10
19
+	.word bs_hone_claws @10
20
 	.word 0x081D6B82 @11
20
 	.word 0x081D6B82 @11
21
 	.word 0x081D6900 @12
21
 	.word 0x081D6900 @12
22
 	.word 0x081D6B8D @13
22
 	.word 0x081D6B8D @13
75
 	.word 0x081D7181 @66
75
 	.word 0x081D7181 @66
76
 	.word 0x081D71E2 @67
76
 	.word 0x081D71E2 @67
77
 	.word 0x081D725F @68
77
 	.word 0x081D725F @68
78
-	.word 0x081D726A @69
78
+	.word bs_lower_def_moves @69
79
 	.word 0x081D7275 @70
79
 	.word 0x081D7275 @70
80
 	.word 0x081D7280 @71
80
 	.word 0x081D7280 @71
81
 	.word 0x081D728B @72
81
 	.word 0x081D728B @72
184
 	.word 0x081D80C7 @175
184
 	.word 0x081D80C7 @175
185
 	.word 0x081D80E3 @176
185
 	.word 0x081D80E3 @176
186
 	.word 0x081D80F8 @177
186
 	.word 0x081D80F8 @177
187
-	.word 0x081D8126 @178
187
+	.word bs_change_ability  @178       used for role play, skill swap, worry seed, simple beam and entrainment
188
 	.word 0x081D8142 @179
188
 	.word 0x081D8142 @179
189
 	.word 0x081D8152 @180
189
 	.word 0x081D8152 @180
190
 	.word 0x081D8169 @181
190
 	.word 0x081D8169 @181
197
 	.word 0x081D8263 @188
197
 	.word 0x081D8263 @188
198
 	.word 0x081D826E @189
198
 	.word 0x081D826E @189
199
 	.word 0x081D82A9 @190
199
 	.word 0x081D82A9 @190
200
-	.word 0x081D82AF @191
200
+	.word 0x081D82AF @191   THIS IS AN UNUSED EFFECT
201
 	.word 0x081D82CB @192
201
 	.word 0x081D82CB @192
202
 	.word 0x081D82E0 @193
202
 	.word 0x081D82E0 @193
203
 	.word 0x081D82F7 @194
203
 	.word 0x081D82F7 @194
232
         .word bs_gastro_acid        @223
232
         .word bs_gastro_acid        @223
233
         .word bs_swap_moves         @224
233
         .word bs_swap_moves         @224
234
         .word bs_punishment         @225
234
         .word bs_punishment         @225
235
-        .word bs_change_ability     @226
235
+
236
+        .word bs_change_ability     @226        THIS IS AN UNUSED EFFECT
237
+
236
         .word bs_magnet_rise        @227
238
         .word bs_magnet_rise        @227
237
         .word bs_rooms              @228
239
         .word bs_rooms              @228
238
         .word bs_healing_wish       @229
240
         .word bs_healing_wish       @229
241
+        .word bs_split_status       @230
242
+        .word bs_venoshock          @231

+ 10
- 9
data/moves/move_data.S View File

292
 move_data_abschlag:		.byte	188,			65,		17,		100,		25,		100,		0,		0,		19,		0,		0,		0
292
 move_data_abschlag:		.byte	188,			65,		17,		100,		25,		100,		0,		0,		19,		0,		0,		0
293
 move_data_notsituation:		.byte	189,			1,		0,		100,		5,		0,		0,		0,		51,		0,		0,		0
293
 move_data_notsituation:		.byte	189,			1,		0,		100,		5,		0,		0,		0,		51,		0,		0,		0
294
 move_data_eruption:		.byte	190,			1,		10,		100,		5,		0,		8,		0,		50,		0,		1,		0
294
 move_data_eruption:		.byte	190,			1,		10,		100,		5,		0,		8,		0,		50,		0,		1,		0
295
-move_data_wertewechsel:		.byte	191,			0,		14,		0,		10,		0,		0,		0,		18,		0,		2,		0
295
+move_data_wertewechsel:		.byte	178,			0,		14,		0,		10,		0,		0,		0,		18,		0,		2,		0
296
 move_data_begrenzer:		.byte	192,			0,		14,		0,		10,		0,		8,		0,		2,		0,		2,		0
296
 move_data_begrenzer:		.byte	192,			0,		14,		0,		10,		0,		8,		0,		2,		0,		2,		0
297
 move_data_heilung:		.byte	193,			0,		0,		0,		20,		0,		16,		0,		4,		0,		2,		0
297
 move_data_heilung:		.byte	193,			0,		0,		0,		20,		0,		16,		0,		4,		0,		2,		0
298
 move_data_nachspiel:		.byte	194,			0,		7,		0,		5,		0,		16,		0,		18,		0,		2,		0
298
 move_data_nachspiel:		.byte	194,			0,		7,		0,		5,		0,		16,		0,		18,		0,		2,		0
406
 move_data_strafattacke:		.byte	225,            	1,		17,		100,		5,		0,		0,		0,		51,		0,		0,		0
406
 move_data_strafattacke:		.byte	225,            	1,		17,		100,		5,		0,		0,		0,		51,		0,		0,		0
407
 @TODO LAST RESORT
407
 @TODO LAST RESORT
408
 move_data_zuflucht:		.byte	MOVE_EFFECT_NONE,	140,		0,		100,		5,		0,		0,		0,		51,		0,		0,		0
408
 move_data_zuflucht:		.byte	MOVE_EFFECT_NONE,	140,		0,		100,		5,		0,		0,		0,		51,		0,		0,		0
409
-move_data_sorgensamen:		.byte	226,            	0,		12,		100,		10,		0,		0,		0,		26,		0,		2,		0
409
+move_data_sorgensamen:		.byte	178,            	0,		12,		100,		10,		0,		0,		0,		26,		0,		2,		0
410
 move_data_tiefschlag:		.byte	MOVE_EFFECT_NONE,	80,		17,		100,		5,		0,		0,		1,		51,		0,		0,		0
410
 move_data_tiefschlag:		.byte	MOVE_EFFECT_NONE,	80,		17,		100,		5,		0,		0,		1,		51,		0,		0,		0
411
 move_data_giftspitzen:		.byte	112,            	0,		3,		0,		20,		0,		64,		0,		0,		0,		2,		0
411
 move_data_giftspitzen:		.byte	112,            	0,		3,		0,		20,		0,		64,		0,		0,		0,		2,		0
412
 move_data_statustausch:		.byte	224,            	0,		14,		0,		10,		0,		0,		0,		2,		0,		2,		0
412
 move_data_statustausch:		.byte	224,            	0,		14,		0,		10,		0,		0,		0,		2,		0,		2,		0
483
 move_data_quetschgriff:		.byte	220,            	120,		0,		100,		5,		0,		0,		0,		51,		0,		0,		0
483
 move_data_quetschgriff:		.byte	220,            	120,		0,		100,		5,		0,		0,		0,		51,		0,		0,		0
484
 move_data_lavasturm:		.byte	42,			100,		10,		75,		5,		100,		0,		0,		50,		0,		1,		0
484
 move_data_lavasturm:		.byte	42,			100,		10,		75,		5,		100,		0,		0,		50,		0,		1,		0
485
 move_data_schlummerort:		.byte	1,			0,		17,		80,		10,		100,		8,		0,		26,		0,		2,		0
485
 move_data_schlummerort:		.byte	1,			0,		17,		80,		10,		100,		8,		0,		26,		0,		2,		0
486
-move_data_schocksamen:		.byte	MOVE_EFFECT_NONE,	120,		12,		85,		5,		40,		0,		0,		50,		0,		1,		0
486
+move_data_schocksamen:		.byte	69,             	120,		12,		85,		5,		40,		0,		0,		50,		0,		1,		0
487
 move_data_unheilboeen:		.byte	140,			60,		7,		100,		5,		10,		0,		0,		50,		0,		1,		0
487
 move_data_unheilboeen:		.byte	140,			60,		7,		100,		5,		10,		0,		0,		50,		0,		1,		0
488
 move_data_schemenkraft:		.byte	MOVE_EFFECT_NONE,	120,		7,		100,		5,		0,		0,		0,		49,		0,		0,		0
488
 move_data_schemenkraft:		.byte	MOVE_EFFECT_NONE,	120,		7,		100,		5,		0,		0,		0,		49,		0,		0,		0
489
-move_data_klauenwetzer:		.byte	MOVE_EFFECT_NONE,	0,		17,		0,		15,		0,		16,		0,		4,		0,		2,		0
489
+move_data_klauenwetzer:		.byte	10,             	0,		17,		0,		15,		0,		16,		0,		4,		0,		2,		0
490
 move_data_rundumschutz:		.byte	MOVE_EFFECT_NONE,	0,		5,		0,		10,		0,		16,		3,		0,		0,		2,		0
490
 move_data_rundumschutz:		.byte	MOVE_EFFECT_NONE,	0,		5,		0,		10,		0,		16,		3,		0,		0,		2,		0
491
-move_data_schutzteiler:		.byte	MOVE_EFFECT_NONE,	0,		14,		0,		10,		0,		16,		0,		0,		0,		2,		0
492
-move_data_kraftteiler:		.byte	MOVE_EFFECT_NONE,	0,		14,		0,		10,		0,		16,		0,		0,		0,		2,		0
491
+move_data_schutzteiler:		.byte	230,            	0,		14,		0,		10,		0,		16,		0,		0,		0,		2,		0
492
+move_data_kraftteiler:		.byte	230,                	0,		14,		0,		10,		0,		16,		0,		0,		0,		2,		0
493
 move_data_wunderraum:		.byte	228,                	0,		14,		0,		10,		0,		16,		0,		0,		0,		2,		0
493
 move_data_wunderraum:		.byte	228,                	0,		14,		0,		10,		0,		16,		0,		0,		0,		2,		0
494
+@@TODO PHYCHOSCHOK (rewrite damage calc)
494
 move_data_psychoschock:		.byte	MOVE_EFFECT_NONE,	80,		14,		100,		10,		0,		0,		0,		50,		0,		1,		0
495
 move_data_psychoschock:		.byte	MOVE_EFFECT_NONE,	80,		14,		100,		10,		0,		0,		0,		50,		0,		1,		0
495
-move_data_giftschock:		.byte	MOVE_EFFECT_NONE,	65,		3,		100,		10,		0,		0,		0,		50,		0,		1,		0
496
+move_data_giftschock:		.byte	231,            	65,		3,		100,		10,		0,		0,		0,		50,		0,		1,		0
496
 move_data_autotomie:		.byte	MOVE_EFFECT_NONE,	0,		8,		0,		15,		0,		0,		0,		4,		0,		2,		0
497
 move_data_autotomie:		.byte	MOVE_EFFECT_NONE,	0,		8,		0,		15,		0,		0,		0,		4,		0,		2,		0
497
 move_data_wutpulver:		.byte	172,			0,		6,		0,		20,		0,		16,		2,		0,		0,		2,		0
498
 move_data_wutpulver:		.byte	172,			0,		6,		0,		20,		0,		16,		2,		0,		0,		2,		0
498
 move_data_telekinese:		.byte	MOVE_EFFECT_NONE,	0,		14,		0,		15,		0,		0,		0,		26,		0,		2,		0
499
 move_data_telekinese:		.byte	MOVE_EFFECT_NONE,	0,		14,		0,		15,		0,		0,		0,		26,		0,		2,		0
511
 move_data_fusstritt:		.byte	70,			65,		1,		100,		20,		100,		0,		0,		51,		0,		0,		0
512
 move_data_fusstritt:		.byte	70,			65,		1,		100,		20,		100,		0,		0,		51,		0,		0,		0
512
 move_data_saeurespeier:		.byte	72,			40,		3,		100,		20,		100,		0,		0,		50,		0,		1,		0
513
 move_data_saeurespeier:		.byte	72,			40,		3,		100,		20,		100,		0,		0,		50,		0,		1,		0
513
 move_data_schmarotzer:		.byte	MOVE_EFFECT_NONE,	95,		17,		100,		15,		0,		0,		0,		51,		0,		0,		0
514
 move_data_schmarotzer:		.byte	MOVE_EFFECT_NONE,	95,		17,		100,		15,		0,		0,		0,		51,		0,		0,		0
514
-move_data_wankelstrahl:		.byte	MOVE_EFFECT_NONE,	0,		0,		100,		15,		0,		0,		0,		26,		0,		2,		0
515
-move_data_zwango:		.byte	MOVE_EFFECT_NONE,	0,		0,		100,		15,		0,		0,		0,		26,		0,		2,		0
515
+move_data_wankelstrahl:		.byte	178,            	0,		0,		100,		15,		0,		0,		0,		26,		0,		2,		0
516
+move_data_zwango:		.byte	178,                	0,		0,		100,		15,		0,		0,		0,		26,		0,		2,		0
516
 move_data_galanterie:		.byte	MOVE_EFFECT_NONE,	0,		0,		0,		15,		0,		0,		0,		0,		0,		2,		0
517
 move_data_galanterie:		.byte	MOVE_EFFECT_NONE,	0,		0,		0,		15,		0,		0,		0,		0,		0,		2,		0
517
 move_data_kanon:		.byte	MOVE_EFFECT_NONE,	60,		0,		100,		15,		0,		0,		0,		50,		0,		1,		0
518
 move_data_kanon:		.byte	MOVE_EFFECT_NONE,	60,		0,		100,		15,		0,		0,		0,		50,		0,		1,		0
518
 move_data_widerhall:		.byte	MOVE_EFFECT_NONE,	40,		0,		100,		15,		0,		0,		0,		50,		0,		1,		0
519
 move_data_widerhall:		.byte	MOVE_EFFECT_NONE,	40,		0,		100,		15,		0,		0,		0,		50,		0,		1,		0

+ 4
- 4
data/pkmn_tables/pokemon_moveset_table.S View File

1218
 .byte 0x1 
1218
 .byte 0x1 
1219
 .hword MOVE_HOWL 
1219
 .hword MOVE_HOWL 
1220
 .byte 0x3 
1220
 .byte 0x3 
1221
-.hword MOVE_LUNAR_DANCE
1221
+.hword MOVE_SKILL_SWAP
1222
 .byte 0x7 
1222
 .byte 0x7 
1223
-.hword MOVE_WONDER_ROOM
1223
+.hword MOVE_ENTRAINMENT
1224
 .byte 0x7
1224
 .byte 0x7
1225
-.hword 0x4D 
1226
-.byte 0xD 
1225
+.hword MOVE_ROLE_PLAY 
1226
+.byte 0x7 
1227
 .hword 0x4F 
1227
 .hword 0x4F 
1228
 .byte 0xD 
1228
 .byte 0xD 
1229
 .hword 0x24 
1229
 .hword 0x24 

+ 49
- 5
nbproject/configurations.xml View File

4647
         </df>
4647
         </df>
4648
         <df name="moves">
4648
         <df name="moves">
4649
           <df name="ability_changers">
4649
           <df name="ability_changers">
4650
+            <in>ability_change.c</in>
4650
             <in>ability_change_script.S</in>
4651
             <in>ability_change_script.S</in>
4651
-            <in>worry_seed.c</in>
4652
           </df>
4652
           </df>
4653
           <df name="assurance">
4653
           <df name="assurance">
4654
             <in>assurance.c</in>
4654
             <in>assurance.c</in>
4701
             <in>healing_wish.c</in>
4701
             <in>healing_wish.c</in>
4702
             <in>healing_wish_script.S</in>
4702
             <in>healing_wish_script.S</in>
4703
           </df>
4703
           </df>
4704
+          <df name="hone_claws">
4705
+            <in>hone_claws_script.S</in>
4706
+          </df>
4704
           <df name="lucky_chant">
4707
           <df name="lucky_chant">
4705
             <in>lucky_chant.c</in>
4708
             <in>lucky_chant.c</in>
4706
             <in>lucky_chant_script.S</in>
4709
             <in>lucky_chant_script.S</in>
4733
             <in>roost.c</in>
4736
             <in>roost.c</in>
4734
             <in>roost_scripts.S</in>
4737
             <in>roost_scripts.S</in>
4735
           </df>
4738
           </df>
4739
+          <df name="seed_flare">
4740
+            <in>seed_flare_script.S</in>
4741
+          </df>
4742
+          <df name="split_moves">
4743
+            <in>split_moves.c</in>
4744
+            <in>split_moves_script.S</in>
4745
+          </df>
4736
           <df name="swap_moves">
4746
           <df name="swap_moves">
4737
             <in>swap_moves.c</in>
4747
             <in>swap_moves.c</in>
4738
             <in>swap_moves_script.S</in>
4748
             <in>swap_moves_script.S</in>
4744
           <df name="uturn">
4754
           <df name="uturn">
4745
             <in>u_turn_script.S</in>
4755
             <in>u_turn_script.S</in>
4746
           </df>
4756
           </df>
4757
+          <df name="veno_shock">
4758
+            <in>veno_shock_script.S</in>
4759
+            <in>venoshock_has_multiplier.c</in>
4760
+          </df>
4747
         </df>
4761
         </df>
4748
         <df name="music">
4762
         <df name="music">
4749
           <in>main_mixer.S</in>
4763
           <in>main_mixer.S</in>
27379
       </item>
27393
       </item>
27380
       <item path="src/item/tmhm/tm_save_block.S" ex="false" tool="4" flavor2="0">
27394
       <item path="src/item/tmhm/tm_save_block.S" ex="false" tool="4" flavor2="0">
27381
       </item>
27395
       </item>
27382
-      <item path="src/moves/ability_changers/ability_change_script.S"
27396
+      <item path="src/moves/ability_changers/ability_change.c"
27383
             ex="false"
27397
             ex="false"
27384
-            tool="4"
27398
+            tool="0"
27385
             flavor2="0">
27399
             flavor2="0">
27386
       </item>
27400
       </item>
27387
-      <item path="src/moves/ability_changers/worry_seed.c"
27401
+      <item path="src/moves/ability_changers/ability_change_script.S"
27388
             ex="false"
27402
             ex="false"
27389
-            tool="0"
27403
+            tool="4"
27390
             flavor2="0">
27404
             flavor2="0">
27391
       </item>
27405
       </item>
27392
       <item path="src/moves/assurance/assurance.c" ex="false" tool="0" flavor2="0">
27406
       <item path="src/moves/assurance/assurance.c" ex="false" tool="0" flavor2="0">
27497
             tool="4"
27511
             tool="4"
27498
             flavor2="0">
27512
             flavor2="0">
27499
       </item>
27513
       </item>
27514
+      <item path="src/moves/hone_claws/hone_claws_script.S"
27515
+            ex="false"
27516
+            tool="4"
27517
+            flavor2="0">
27518
+      </item>
27500
       <item path="src/moves/lucky_chant/lucky_chant.c"
27519
       <item path="src/moves/lucky_chant/lucky_chant.c"
27501
             ex="false"
27520
             ex="false"
27502
             tool="0"
27521
             tool="0"
27559
       </item>
27578
       </item>
27560
       <item path="src/moves/roost/roost_scripts.S" ex="false" tool="4" flavor2="0">
27579
       <item path="src/moves/roost/roost_scripts.S" ex="false" tool="4" flavor2="0">
27561
       </item>
27580
       </item>
27581
+      <item path="src/moves/seed_flare/seed_flare_script.S"
27582
+            ex="false"
27583
+            tool="4"
27584
+            flavor2="0">
27585
+      </item>
27586
+      <item path="src/moves/split_moves/split_moves.c"
27587
+            ex="false"
27588
+            tool="0"
27589
+            flavor2="0">
27590
+      </item>
27591
+      <item path="src/moves/split_moves/split_moves_script.S"
27592
+            ex="false"
27593
+            tool="4"
27594
+            flavor2="0">
27595
+      </item>
27562
       <item path="src/moves/swap_moves/swap_moves.c" ex="false" tool="0" flavor2="0">
27596
       <item path="src/moves/swap_moves/swap_moves.c" ex="false" tool="0" flavor2="0">
27563
       </item>
27597
       </item>
27564
       <item path="src/moves/swap_moves/swap_moves_script.S"
27598
       <item path="src/moves/swap_moves/swap_moves_script.S"
27575
       </item>
27609
       </item>
27576
       <item path="src/moves/uturn/u_turn_script.S" ex="false" tool="4" flavor2="0">
27610
       <item path="src/moves/uturn/u_turn_script.S" ex="false" tool="4" flavor2="0">
27577
       </item>
27611
       </item>
27612
+      <item path="src/moves/veno_shock/veno_shock_script.S"
27613
+            ex="false"
27614
+            tool="4"
27615
+            flavor2="0">
27616
+      </item>
27617
+      <item path="src/moves/veno_shock/venoshock_has_multiplier.c"
27618
+            ex="false"
27619
+            tool="0"
27620
+            flavor2="0">
27621
+      </item>
27578
       <item path="src/music/main_mixer.S" ex="false" tool="4" flavor2="0">
27622
       <item path="src/music/main_mixer.S" ex="false" tool="4" flavor2="0">
27579
       </item>
27623
       </item>
27580
       <item path="src/music/music_override.c" ex="false" tool="0" flavor2="0">
27624
       <item path="src/music/music_override.c" ex="false" tool="0" flavor2="0">

+ 23
- 1
nbproject/private/configurations.xml View File

4073
             </df>
4073
             </df>
4074
             <df name="healing_wish">
4074
             <df name="healing_wish">
4075
             </df>
4075
             </df>
4076
+            <df name="hone_claws">
4077
+            </df>
4076
             <df name="lucky_chant">
4078
             <df name="lucky_chant">
4077
             </df>
4079
             </df>
4078
             <df name="magnet_rise">
4080
             <df name="magnet_rise">
4089
             </df>
4091
             </df>
4090
             <df name="roost">
4092
             <df name="roost">
4091
             </df>
4093
             </df>
4094
+            <df name="seed_flare">
4095
+            </df>
4096
+            <df name="split_moves">
4097
+            </df>
4092
             <df name="swap_moves">
4098
             <df name="swap_moves">
4093
             </df>
4099
             </df>
4094
             <df name="tailwind">
4100
             <df name="tailwind">
4095
             </df>
4101
             </df>
4096
             <df name="uturn">
4102
             <df name="uturn">
4097
             </df>
4103
             </df>
4104
+            <df name="veno_shock">
4105
+            </df>
4098
           </df>
4106
           </df>
4099
           <df name="music">
4107
           <df name="music">
4100
           </df>
4108
           </df>
5826
         </df>
5834
         </df>
5827
         <df name="moves">
5835
         <df name="moves">
5828
           <df name="ability_changers">
5836
           <df name="ability_changers">
5837
+            <in>ability_change.c</in>
5829
             <in>ability_change_script.S</in>
5838
             <in>ability_change_script.S</in>
5830
-            <in>worry_seed.c</in>
5831
           </df>
5839
           </df>
5832
           <df name="assurance">
5840
           <df name="assurance">
5833
             <in>assurance.c</in>
5841
             <in>assurance.c</in>
5880
             <in>healing_wish.c</in>
5888
             <in>healing_wish.c</in>
5881
             <in>healing_wish_script.S</in>
5889
             <in>healing_wish_script.S</in>
5882
           </df>
5890
           </df>
5891
+          <df name="hone_claws">
5892
+            <in>hone_claws_script.S</in>
5893
+          </df>
5883
           <df name="lucky_chant">
5894
           <df name="lucky_chant">
5884
             <in>lucky_chant.c</in>
5895
             <in>lucky_chant.c</in>
5885
             <in>lucky_chant_script.S</in>
5896
             <in>lucky_chant_script.S</in>
5912
             <in>roost.c</in>
5923
             <in>roost.c</in>
5913
             <in>roost_scripts.S</in>
5924
             <in>roost_scripts.S</in>
5914
           </df>
5925
           </df>
5926
+          <df name="seed_flare">
5927
+            <in>seed_flare_script.S</in>
5928
+          </df>
5929
+          <df name="split_moves">
5930
+            <in>split_moves.c</in>
5931
+            <in>split_moves_script.S</in>
5932
+          </df>
5915
           <df name="swap_moves">
5933
           <df name="swap_moves">
5916
             <in>swap_moves.c</in>
5934
             <in>swap_moves.c</in>
5917
             <in>swap_moves_script.S</in>
5935
             <in>swap_moves_script.S</in>
5923
           <df name="uturn">
5941
           <df name="uturn">
5924
             <in>u_turn_script.S</in>
5942
             <in>u_turn_script.S</in>
5925
           </df>
5943
           </df>
5944
+          <df name="veno_shock">
5945
+            <in>veno_shock_script.S</in>
5946
+            <in>venoshock_has_multiplier.c</in>
5947
+          </df>
5926
         </df>
5948
         </df>
5927
         <df name="music">
5949
         <df name="music">
5928
           <in>main_mixer.S</in>
5950
           <in>main_mixer.S</in>

+ 106
- 0
src/moves/ability_changers/ability_change.c View File

1
+#include <battle.h>
2
+
3
+extern void* str_worry_seed_ref;
4
+extern void* str_entrainment_ref;
5
+extern void* str_simple_beam_ref;
6
+extern void* str_role_play_ref;
7
+extern void* str_skill_swap_ref;
8
+
9
+u8 worry_seed() {
10
+    u8 def_ability = battle_participants[battle_defender_bank].ability_id;
11
+    if (def_ability == ABILITY_STANCE_CHANGE && def_ability == ABILITY_MULTITYPE && def_ability == ABILITY_TRUANT) {
12
+        //we fail
13
+        battlescript_cursor = (void*) (0x081D7DF0);
14
+        return true;
15
+    } else {
16
+        battle_participants[battle_defender_bank].ability_id = ABILITY_INSOMNIA;
17
+        battle_last_used_ability = ABILITY_INSOMNIA;
18
+        battle_string_chooser = str_worry_seed_ref;
19
+        return false;
20
+    }
21
+    return false;
22
+}
23
+
24
+u8 entrainment() {
25
+    u8 def_ability = battle_participants[battle_defender_bank].ability_id;
26
+    if (def_ability == ABILITY_TRACE || def_ability == ABILITY_TRUANT || def_ability == ABILITY_FLOWER_GIFT || def_ability == ABILITY_IMPOSTER || def_ability == ABILITY_STANCE_CHANGE || def_ability == ABILITY_MULTITYPE) {
27
+        //we fail
28
+        battlescript_cursor = (void*) (0x081D7DF0);
29
+        return true;
30
+    } else {
31
+        battle_participants[battle_defender_bank].ability_id = battle_participants[battle_attacker_bank].ability_id;
32
+        battle_last_used_ability = battle_participants[battle_defender_bank].ability_id;
33
+        battle_string_chooser = str_entrainment_ref;
34
+        return false;
35
+    }
36
+    return false;
37
+}
38
+
39
+u8 simple_beam() {
40
+    u8 def_ability = battle_participants[battle_defender_bank].ability_id;
41
+    if (def_ability == ABILITY_STANCE_CHANGE && def_ability == ABILITY_MULTITYPE && def_ability == ABILITY_TRUANT) {
42
+        //we fail
43
+        battlescript_cursor = (void*) (0x081D7DF0);
44
+        return true;
45
+    } else {
46
+        battle_participants[battle_defender_bank].ability_id = ABILITY_SIMPLE;
47
+        battle_last_used_ability = ABILITY_SIMPLE;
48
+        battle_string_chooser = str_simple_beam_ref;
49
+        return false;
50
+    }
51
+    return false;
52
+}
53
+
54
+u8 role_play() {
55
+    u8 def_ability = battle_participants[battle_defender_bank].ability_id;
56
+    if (def_ability == ABILITY_ZEN_MODE || def_ability == ABILITY_WONDER_GUARD || def_ability == ABILITY_MULTITYPE || def_ability == ABILITY_IMPOSTER || def_ability == ABILITY_ILLUSION || def_ability == ABILITY_STANCE_CHANGE) {
57
+        //we fail
58
+        battlescript_cursor = (void*) (0x081D7DF0);
59
+        return true;
60
+    } else {
61
+        battle_participants[battle_attacker_bank].ability_id = battle_participants[battle_defender_bank].ability_id;
62
+        battle_last_used_ability = battle_participants[battle_attacker_bank].ability_id;
63
+        battle_string_chooser = str_role_play_ref;
64
+        return false;
65
+    }
66
+    return false;
67
+}
68
+
69
+u8 skill_swap() {
70
+    u8 check_ability = battle_participants[battle_defender_bank].ability_id;
71
+    if (check_ability == ABILITY_ZEN_MODE || check_ability == ABILITY_WONDER_GUARD || check_ability == ABILITY_MULTITYPE || check_ability == ABILITY_STANCE_CHANGE) {
72
+        //we fail
73
+        battlescript_cursor = (void*) (0x081D7DF0);
74
+        return true;
75
+    } else {
76
+
77
+        check_ability = battle_participants[battle_attacker_bank].ability_id;
78
+        if (check_ability == ABILITY_ZEN_MODE || check_ability == ABILITY_WONDER_GUARD || check_ability == ABILITY_MULTITYPE || check_ability == ABILITY_STANCE_CHANGE) {
79
+            //we fail
80
+            battlescript_cursor = (void*) (0x081D7DF0);
81
+            return true;
82
+        } else {
83
+            u8 swap = battle_participants[battle_defender_bank].ability_id;
84
+            battle_participants[battle_defender_bank].ability_id = battle_participants[battle_attacker_bank].ability_id;
85
+            battle_participants[battle_attacker_bank].ability_id = swap;
86
+            battle_string_chooser = str_skill_swap_ref;
87
+            return false;
88
+        }
89
+    }
90
+    return false;
91
+}
92
+
93
+u8 ability_change() {
94
+    switch (battle_executed_move) {
95
+        case MOVE_WORRY_SEED:
96
+            return worry_seed();
97
+        case MOVE_ENTRAINMENT:
98
+            return entrainment();
99
+        case MOVE_SIMPLE_BEAM:
100
+            return simple_beam();
101
+        case MOVE_ROLE_PLAY:
102
+            return role_play();
103
+        case MOVE_SKILL_SWAP:
104
+            return skill_swap();
105
+    }
106
+}

+ 3
- 2
src/moves/ability_changers/ability_change_script.S View File

9
     attackcanceler
9
     attackcanceler
10
     attackstring
10
     attackstring
11
     ppreduce
11
     ppreduce
12
-    callasm worry_seed+1
12
+    accuracycheck 0x81D7DF2 0xFFFF
13
+    callasm ability_change+1
13
     attackanimation
14
     attackanimation
14
     waitanimation
15
     waitanimation
15
     printstring 0x184
16
     printstring 0x184
16
     waitmessage 0x40
17
     waitmessage 0x40
17
-    goto 0x081D694E
18
+    goto 0x81D694E
18
 
19
 
19
 
20
 

+ 0
- 22
src/moves/ability_changers/worry_seed.c View File

1
-#include <battle.h>
2
-
3
-extern void* str_worry_seed_ref;
4
-
5
-u8 worry_seed()
6
-{
7
-    u8 def_ability = battle_participants[battle_defender_bank].ability_id;
8
-    if(def_ability == ABILITY_STANCE_CHANGE && def_ability == ABILITY_MULTITYPE && def_ability == ABILITY_TRUANT)
9
-    {
10
-        //we fail
11
-        battlescript_cursor = (void*) (0x081D7DF0);
12
-        return true;
13
-    }
14
-    else
15
-    {
16
-        battle_participants[battle_defender_bank].ability_id = ABILITY_INSOMNIA;
17
-        battle_last_used_ability = ABILITY_INSOMNIA;
18
-        battle_string_chooser = str_worry_seed_ref;
19
-        return false;
20
-    }
21
-    return false;
22
-}

+ 1
- 1
src/moves/bride/bride_scripts.S View File

7
 .global bs_bride
7
 .global bs_bride
8
 bs_bride:
8
 bs_bride:
9
     callasm bride_has_multiplier+1
9
     callasm bride_has_multiplier+1
10
-    goto 0x81D6926
10
+    goto 0x81D6900
11
 
11
 
12
 
12
 

+ 39
- 0
src/moves/hone_claws/hone_claws_script.S View File

1
+#include <battle_script.h>
2
+#include <moves.h>
3
+
4
+.align 2
5
+.thumb
6
+.text
7
+
8
+.global bs_hone_claws
9
+bs_hone_claws:
10
+    jumpifhalfword 0x0 0x2023D4A MOVE_HONE_CLAWS hone_claws
11
+    goto 0x1D6B77
12
+
13
+hone_claws:
14
+    attackcanceler
15
+    attackstring
16
+    ppreduce
17
+    jumpifstat BANK_USER 0x3 0x1 0xC attack
18
+    jumpifstat BANK_USER 0 0x6 0xC 0x81D85E7
19
+
20
+attack:
21
+    attackanimation
22
+    waitanimation
23
+    setbyte 0x2023FDF 0x0
24
+    playstatchangeanimation 0x0 0x42 0x0
25
+    setbyte 0x2023FDE 0x11
26
+    statbuffchange 0x41 accuracy
27
+    jumpifbyte 0x0 0x2023E87 0x2 accuracy
28
+    printfromtable 0x83FE57C
29
+    waitmessage 0x40
30
+
31
+accuracy:
32
+    setbyte 0x2023FDE 0x16
33
+    statbuffchange 0x41 0x81D85E2
34
+    jumpifbyte 0x0 0x2023E87 0x2 0x81D85E2
35
+    printfromtable 0x83FE57C
36
+    waitmessage 0x40
37
+    goto 0x1D694E
38
+
39
+

+ 16
- 0
src/moves/seed_flare/seed_flare_script.S View File

1
+#include <battle_script.h>
2
+#include <moves.h>
3
+
4
+.align 2
5
+.text
6
+.thumb
7
+
8
+.global bs_lower_def_moves
9
+bs_lower_def_moves:
10
+    jumpifhalfword 0x0 0x2023D4A MOVE_SEED_FLARE set_seed_flare
11
+    goto 0x81D6900
12
+set_acid:
13
+    setbyte 0x2023E85 0x17
14
+set_seed_flare:
15
+    setbyte 0x02023E85 0x32
16
+    goto 0x81D6900

+ 28
- 0
src/moves/split_moves/split_moves.c View File

1
+#include <battle.h>
2
+
3
+extern void* str_guard_split_ref;
4
+extern void* str_power_split_ref;
5
+
6
+u8 split_status() {
7
+    if (battle_executed_move == MOVE_GUARD_SPLIT) {
8
+        u16 defense = (battle_participants[battle_attacker_bank].def + battle_participants[battle_defender_bank].def) >> 1;
9
+        u16 sdefense = (battle_participants[battle_attacker_bank].sp_def + battle_participants[battle_defender_bank].sp_def) >> 1;
10
+
11
+        battle_participants[battle_attacker_bank].def = defense;
12
+        battle_participants[battle_attacker_bank].sp_def = sdefense;
13
+        battle_participants[battle_defender_bank].def = defense;
14
+        battle_participants[battle_defender_bank].sp_def = sdefense;
15
+        battle_string_chooser = str_guard_split_ref;
16
+    }
17
+    else if (battle_executed_move == MOVE_POWER_SPLIT) {
18
+        u16 attack = (battle_participants[battle_attacker_bank].atk + battle_participants[battle_defender_bank].atk) >> 1;
19
+        u16 sattack = (battle_participants[battle_attacker_bank].sp_atk + battle_participants[battle_defender_bank].sp_atk) >> 1;
20
+
21
+        battle_participants[battle_attacker_bank].atk = attack;
22
+        battle_participants[battle_attacker_bank].sp_atk = sattack;
23
+        battle_participants[battle_defender_bank].atk = attack;
24
+        battle_participants[battle_defender_bank].sp_atk = sattack;
25
+        battle_string_chooser = str_power_split_ref;
26
+    }
27
+    return false;
28
+}

+ 21
- 0
src/moves/split_moves/split_moves_script.S View File

1
+#include <battle_script.h>
2
+#include <moves.h>
3
+
4
+.align 2
5
+.thumb
6
+.text
7
+
8
+.global bs_split_status
9
+bs_split_status:
10
+    attackcanceler
11
+    callasm split_status+1
12
+    attackstring
13
+    ppreduce
14
+    attackanimation
15
+    waitanimation
16
+    printstring 0x184
17
+    waitmessage 0x40
18
+    goto 0x081D694E
19
+
20
+
21
+

+ 12
- 0
src/moves/veno_shock/veno_shock_script.S View File

1
+#include <battle_script.h>
2
+
3
+.align 2
4
+.thumb
5
+.text
6
+
7
+.global bs_venoshock
8
+bs_venoshock:
9
+    callasm venoshock_has_multiplier+1
10
+    goto 0x81D6900
11
+
12
+

+ 8
- 0
src/moves/veno_shock/venoshock_has_multiplier.c View File

1
+#include <battle.h>
2
+
3
+u8 venoshock_has_multiplier()
4
+{
5
+    if(battle_participants[battle_defender_bank].status.flags.poison || battle_participants[battle_defender_bank].status.flags.toxic_poison)
6
+        battle_damage_multiplier *= 2;
7
+    return false;
8
+}

+ 7
- 1
string/de/move_strings.txt View File

15
 str_magic_room_off=Der Magieraum verschwindet!
15
 str_magic_room_off=Der Magieraum verschwindet!
16
 str_wonder_room_on=Es entsteht ein Raum in dem Verteidigung\nund Spezialverteidigung getauscht sind.
16
 str_wonder_room_on=Es entsteht ein Raum in dem Verteidigung\nund Spezialverteidigung getauscht sind.
17
 str_wonder_room_off=Der Wunderraum verschwindet!
17
 str_wonder_room_off=Der Wunderraum verschwindet!
18
-str_lunardance_executed=Das Opfer erreicht \hFD\h13!
18
+str_lunardance_executed=Das Opfer erreicht \hFD\h13!
19
+str_power_split=\hFD\h0F teilt Kräfte auf!
20
+str_guard_split=\hFD\h0F teilt Schutzkräfte auf!
21
+str_role_play=\hFD\h0F kopiert \hFD\h19\nvon \hFD\h10!
22
+str_skill_swap=\hFD\h0F tauscht Fähigkeiten mit\ndem Ziel!
23
+str_entrainment=\hFD\h10 nimmt die Fähigkeit\n\hFD\h19 an!
24
+str_simple_beam=\hFD\h10 nimmt die Fähigkeit\nWankelmut an!