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,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!