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 10 years ago
parent
commit
2970c8f5d3

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

@@ -16,7 +16,7 @@ m_effect_table:
16 16
 	.word 0x081D6A76 @7
17 17
 	.word 0x081D6AF6 @8
18 18
 	.word 0x081D6B5F @9
19
-	.word 0x081D6B77 @10
19
+	.word bs_hone_claws @10
20 20
 	.word 0x081D6B82 @11
21 21
 	.word 0x081D6900 @12
22 22
 	.word 0x081D6B8D @13
@@ -75,7 +75,7 @@ m_effect_table:
75 75
 	.word 0x081D7181 @66
76 76
 	.word 0x081D71E2 @67
77 77
 	.word 0x081D725F @68
78
-	.word 0x081D726A @69
78
+	.word bs_lower_def_moves @69
79 79
 	.word 0x081D7275 @70
80 80
 	.word 0x081D7280 @71
81 81
 	.word 0x081D728B @72
@@ -184,7 +184,7 @@ m_effect_table:
184 184
 	.word 0x081D80C7 @175
185 185
 	.word 0x081D80E3 @176
186 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 188
 	.word 0x081D8142 @179
189 189
 	.word 0x081D8152 @180
190 190
 	.word 0x081D8169 @181
@@ -197,7 +197,7 @@ m_effect_table:
197 197
 	.word 0x081D8263 @188
198 198
 	.word 0x081D826E @189
199 199
 	.word 0x081D82A9 @190
200
-	.word 0x081D82AF @191
200
+	.word 0x081D82AF @191   THIS IS AN UNUSED EFFECT
201 201
 	.word 0x081D82CB @192
202 202
 	.word 0x081D82E0 @193
203 203
 	.word 0x081D82F7 @194
@@ -232,7 +232,11 @@ m_effect_table:
232 232
         .word bs_gastro_acid        @223
233 233
         .word bs_swap_moves         @224
234 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 238
         .word bs_magnet_rise        @227
237 239
         .word bs_rooms              @228
238 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,7 +292,7 @@ move_data_gaehner:		.byte	187,			0,		0,		0,		10,		0,		0,		0,		26,		0,		2,		0
292 292
 move_data_abschlag:		.byte	188,			65,		17,		100,		25,		100,		0,		0,		19,		0,		0,		0
293 293
 move_data_notsituation:		.byte	189,			1,		0,		100,		5,		0,		0,		0,		51,		0,		0,		0
294 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 296
 move_data_begrenzer:		.byte	192,			0,		14,		0,		10,		0,		8,		0,		2,		0,		2,		0
297 297
 move_data_heilung:		.byte	193,			0,		0,		0,		20,		0,		16,		0,		4,		0,		2,		0
298 298
 move_data_nachspiel:		.byte	194,			0,		7,		0,		5,		0,		16,		0,		18,		0,		2,		0
@@ -406,7 +406,7 @@ move_data_schutztausch:		.byte	224,                	0,		14,		0,		10,		0,		0,		0,
406 406
 move_data_strafattacke:		.byte	225,            	1,		17,		100,		5,		0,		0,		0,		51,		0,		0,		0
407 407
 @TODO LAST RESORT
408 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 410
 move_data_tiefschlag:		.byte	MOVE_EFFECT_NONE,	80,		17,		100,		5,		0,		0,		1,		51,		0,		0,		0
411 411
 move_data_giftspitzen:		.byte	112,            	0,		3,		0,		20,		0,		64,		0,		0,		0,		2,		0
412 412
 move_data_statustausch:		.byte	224,            	0,		14,		0,		10,		0,		0,		0,		2,		0,		2,		0
@@ -483,16 +483,17 @@ move_data_lunartanz:		.byte	229,            	0,		14,		0,		10,		0,		0,		0,		0,		0
483 483
 move_data_quetschgriff:		.byte	220,            	120,		0,		100,		5,		0,		0,		0,		51,		0,		0,		0
484 484
 move_data_lavasturm:		.byte	42,			100,		10,		75,		5,		100,		0,		0,		50,		0,		1,		0
485 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 487
 move_data_unheilboeen:		.byte	140,			60,		7,		100,		5,		10,		0,		0,		50,		0,		1,		0
488 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 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 493
 move_data_wunderraum:		.byte	228,                	0,		14,		0,		10,		0,		16,		0,		0,		0,		2,		0
494
+@@TODO PHYCHOSCHOK (rewrite damage calc)
494 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 497
 move_data_autotomie:		.byte	MOVE_EFFECT_NONE,	0,		8,		0,		15,		0,		0,		0,		4,		0,		2,		0
497 498
 move_data_wutpulver:		.byte	172,			0,		6,		0,		20,		0,		16,		2,		0,		0,		2,		0
498 499
 move_data_telekinese:		.byte	MOVE_EFFECT_NONE,	0,		14,		0,		15,		0,		0,		0,		26,		0,		2,		0
@@ -511,8 +512,8 @@ move_data_einrollen:		.byte	MOVE_EFFECT_NONE,	0,		3,		0,		20,		0,		16,		0,		4,
511 512
 move_data_fusstritt:		.byte	70,			65,		1,		100,		20,		100,		0,		0,		51,		0,		0,		0
512 513
 move_data_saeurespeier:		.byte	72,			40,		3,		100,		20,		100,		0,		0,		50,		0,		1,		0
513 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 517
 move_data_galanterie:		.byte	MOVE_EFFECT_NONE,	0,		0,		0,		15,		0,		0,		0,		0,		0,		2,		0
517 518
 move_data_kanon:		.byte	MOVE_EFFECT_NONE,	60,		0,		100,		15,		0,		0,		0,		50,		0,		1,		0
518 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,12 +1218,12 @@ moveset_bisasam:
1218 1218
 .byte 0x1 
1219 1219
 .hword MOVE_HOWL 
1220 1220
 .byte 0x3 
1221
-.hword MOVE_LUNAR_DANCE
1221
+.hword MOVE_SKILL_SWAP
1222 1222
 .byte 0x7 
1223
-.hword MOVE_WONDER_ROOM
1223
+.hword MOVE_ENTRAINMENT
1224 1224
 .byte 0x7
1225
-.hword 0x4D 
1226
-.byte 0xD 
1225
+.hword MOVE_ROLE_PLAY 
1226
+.byte 0x7 
1227 1227
 .hword 0x4F 
1228 1228
 .byte 0xD 
1229 1229
 .hword 0x24 

+ 49
- 5
nbproject/configurations.xml View File

@@ -4647,8 +4647,8 @@
4647 4647
         </df>
4648 4648
         <df name="moves">
4649 4649
           <df name="ability_changers">
4650
+            <in>ability_change.c</in>
4650 4651
             <in>ability_change_script.S</in>
4651
-            <in>worry_seed.c</in>
4652 4652
           </df>
4653 4653
           <df name="assurance">
4654 4654
             <in>assurance.c</in>
@@ -4701,6 +4701,9 @@
4701 4701
             <in>healing_wish.c</in>
4702 4702
             <in>healing_wish_script.S</in>
4703 4703
           </df>
4704
+          <df name="hone_claws">
4705
+            <in>hone_claws_script.S</in>
4706
+          </df>
4704 4707
           <df name="lucky_chant">
4705 4708
             <in>lucky_chant.c</in>
4706 4709
             <in>lucky_chant_script.S</in>
@@ -4733,6 +4736,13 @@
4733 4736
             <in>roost.c</in>
4734 4737
             <in>roost_scripts.S</in>
4735 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 4746
           <df name="swap_moves">
4737 4747
             <in>swap_moves.c</in>
4738 4748
             <in>swap_moves_script.S</in>
@@ -4744,6 +4754,10 @@
4744 4754
           <df name="uturn">
4745 4755
             <in>u_turn_script.S</in>
4746 4756
           </df>
4757
+          <df name="veno_shock">
4758
+            <in>veno_shock_script.S</in>
4759
+            <in>venoshock_has_multiplier.c</in>
4760
+          </df>
4747 4761
         </df>
4748 4762
         <df name="music">
4749 4763
           <in>main_mixer.S</in>
@@ -27379,14 +27393,14 @@
27379 27393
       </item>
27380 27394
       <item path="src/item/tmhm/tm_save_block.S" ex="false" tool="4" flavor2="0">
27381 27395
       </item>
27382
-      <item path="src/moves/ability_changers/ability_change_script.S"
27396
+      <item path="src/moves/ability_changers/ability_change.c"
27383 27397
             ex="false"
27384
-            tool="4"
27398
+            tool="0"
27385 27399
             flavor2="0">
27386 27400
       </item>
27387
-      <item path="src/moves/ability_changers/worry_seed.c"
27401
+      <item path="src/moves/ability_changers/ability_change_script.S"
27388 27402
             ex="false"
27389
-            tool="0"
27403
+            tool="4"
27390 27404
             flavor2="0">
27391 27405
       </item>
27392 27406
       <item path="src/moves/assurance/assurance.c" ex="false" tool="0" flavor2="0">
@@ -27497,6 +27511,11 @@
27497 27511
             tool="4"
27498 27512
             flavor2="0">
27499 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 27519
       <item path="src/moves/lucky_chant/lucky_chant.c"
27501 27520
             ex="false"
27502 27521
             tool="0"
@@ -27559,6 +27578,21 @@
27559 27578
       </item>
27560 27579
       <item path="src/moves/roost/roost_scripts.S" ex="false" tool="4" flavor2="0">
27561 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 27596
       <item path="src/moves/swap_moves/swap_moves.c" ex="false" tool="0" flavor2="0">
27563 27597
       </item>
27564 27598
       <item path="src/moves/swap_moves/swap_moves_script.S"
@@ -27575,6 +27609,16 @@
27575 27609
       </item>
27576 27610
       <item path="src/moves/uturn/u_turn_script.S" ex="false" tool="4" flavor2="0">
27577 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 27622
       <item path="src/music/main_mixer.S" ex="false" tool="4" flavor2="0">
27579 27623
       </item>
27580 27624
       <item path="src/music/music_override.c" ex="false" tool="0" flavor2="0">

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

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

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

@@ -0,0 +1,106 @@
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,11 +9,12 @@ bs_change_ability:
9 9
     attackcanceler
10 10
     attackstring
11 11
     ppreduce
12
-    callasm worry_seed+1
12
+    accuracycheck 0x81D7DF2 0xFFFF
13
+    callasm ability_change+1
13 14
     attackanimation
14 15
     waitanimation
15 16
     printstring 0x184
16 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,22 +0,0 @@
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,6 +7,6 @@
7 7
 .global bs_bride
8 8
 bs_bride:
9 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

@@ -0,0 +1,39 @@
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

@@ -0,0 +1,16 @@
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

@@ -0,0 +1,28 @@
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

@@ -0,0 +1,21 @@
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

@@ -0,0 +1,12 @@
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

@@ -0,0 +1,8 @@
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,4 +15,10 @@ str_magic_room_on=Es entsteht ein Raum in dem\ngetragene Items ihre Wirkung verl
15 15
 str_magic_room_off=Der Magieraum verschwindet!
16 16
 str_wonder_room_on=Es entsteht ein Raum in dem Verteidigung\nund Spezialverteidigung getauscht sind.
17 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!