Преглед изворни кода

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 пре 10 година
родитељ
комит
2970c8f5d3

+ 9
- 5
data/moves/effect_table.S Прегледај датотеку

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 Прегледај датотеку

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 Прегледај датотеку

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 Прегледај датотеку

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 Прегледај датотеку

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 Прегледај датотеку

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 Прегледај датотеку

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 Прегледај датотеку

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 Прегледај датотеку

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 Прегледај датотеку

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 Прегледај датотеку

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 Прегледај датотеку

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 Прегледај датотеку

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 Прегледај датотеку

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 Прегледај датотеку

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 Прегледај датотеку

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!