Initial commit.

This commit is contained in:
Deukhoofd committed 2020-04-11 00:23:17 +02:00
commit 5650fd004c
18 files changed
+94793

No files matched your search

+614
View File
@@ -0,0 +1,614 @@
{
"Erratic": [
0,
15,
52,
122,
237,
406,
637,
942,
1326,
1800,
2369,
3041,
3822,
4719,
5737,
6881,
8155,
9564,
11111,
12800,
14632,
16610,
18737,
21012,
23437,
26012,
28737,
31610,
34632,
37800,
41111,
44564,
48155,
51881,
55737,
59719,
63822,
68041,
72369,
76800,
81326,
85942,
90637,
95406,
100237,
105122,
110052,
115015,
120001,
125000,
131324,
137795,
144410,
151165,
158056,
165079,
172229,
179503,
186894,
194400,
202013,
209728,
217540,
225443,
233431,
241496,
249633,
257834,
267406,
276458,
286328,
296358,
305767,
316074,
326531,
336255,
346965,
357812,
367807,
378880,
390077,
400293,
411686,
423190,
433572,
445239,
457001,
467489,
479378,
491346,
501878,
513934,
526049,
536557,
548720,
560922,
571333,
583539,
591882,
600000
],
"Fast": [
0,
6,
21,
51,
100,
172,
274,
409,
583,
800,
1064,
1382,
1757,
2195,
2700,
3276,
3930,
4665,
5487,
6400,
7408,
8518,
9733,
11059,
12500,
14060,
15746,
17561,
19511,
21600,
23832,
26214,
28749,
31443,
34300,
37324,
40522,
43897,
47455,
51200,
55136,
59270,
63605,
68147,
72900,
77868,
83058,
88473,
94119,
100000,
106120,
112486,
119101,
125971,
133100,
140492,
148154,
156089,
164303,
172800,
181584,
190662,
200037,
209715,
219700,
229996,
240610,
251545,
262807,
274400,
286328,
298598,
311213,
324179,
337500,
351180,
365226,
379641,
394431,
409600,
425152,
441094,
457429,
474163,
491300,
508844,
526802,
545177,
563975,
583200,
602856,
622950,
643485,
664467,
685900,
707788,
730138,
752953,
776239,
800000
],
"MediumFast": [
0,
8,
27,
64,
125,
216,
343,
512,
729,
1000,
1331,
1728,
2197,
2744,
3375,
4096,
4913,
5832,
6859,
8000,
9261,
10648,
12167,
13824,
15625,
17576,
19683,
21952,
24389,
27000,
29791,
32768,
35937,
39304,
42875,
46656,
50653,
54872,
59319,
64000,
68921,
74088,
79507,
85184,
91125,
97336,
103823,
110592,
117649,
125000,
132651,
140608,
148877,
157464,
166375,
175616,
185193,
195112,
205379,
216000,
226981,
238328,
250047,
262144,
274625,
287496,
300763,
314432,
328509,
343000,
357911,
373248,
389017,
405224,
421875,
438976,
456533,
474552,
493039,
512000,
531441,
551368,
571787,
592704,
614125,
636056,
658503,
681472,
704969,
729000,
753571,
778688,
804357,
830584,
857375,
884736,
912673,
941192,
970299,
1000000
],
"MediumSlow": [
0,
9,
57,
96,
135,
179,
236,
314,
419,
560,
742,
973,
1261,
1612,
2035,
2535,
3120,
3798,
4575,
5460,
6458,
7577,
8825,
10208,
11735,
13411,
15244,
17242,
19411,
21760,
24294,
27021,
29949,
33084,
36435,
40007,
43808,
47846,
52127,
56660,
61450,
66505,
71833,
77440,
83335,
89523,
96012,
102810,
109923,
117360,
125126,
133229,
141677,
150476,
159635,
169159,
179056,
189334,
199999,
211060,
222522,
234393,
246681,
259392,
272535,
286115,
300140,
314618,
329555,
344960,
360838,
377197,
394045,
411388,
429235,
447591,
466464,
485862,
505791,
526260,
547274,
568841,
590969,
613664,
636935,
660787,
685228,
710266,
735907,
762160,
789030,
816525,
844653,
873420,
902835,
932903,
963632,
995030,
1027103,
1059860
],
"Slow": [
0,
10,
33,
80,
156,
270,
428,
640,
911,
1250,
1663,
2160,
2746,
3430,
4218,
5120,
6141,
7290,
8573,
10000,
11576,
13310,
15208,
17280,
19531,
21970,
24603,
27440,
30486,
33750,
37238,
40960,
44921,
49130,
53593,
58320,
63316,
68590,
74148,
80000,
86151,
92610,
99383,
106480,
113906,
121670,
129778,
138240,
147061,
156250,
165813,
175760,
186096,
196830,
207968,
219520,
231491,
243890,
256723,
270000,
283726,
297910,
312558,
327680,
343281,
359370,
375953,
393040,
410636,
428750,
447388,
466560,
486271,
506530,
527343,
548720,
570666,
593190,
616298,
640000,
664301,
689210,
714733,
740880,
767656,
795070,
823128,
851840,
881211,
911250,
941963,
973360,
1005446,
1038230,
1071718,
1105920,
1140841,
1176490,
1212873,
1250000
],
"Fluctuating": [
0,
4,
13,
32,
65,
112,
178,
276,
393,
540,
745,
967,
1230,
1591,
1957,
2457,
3046,
3732,
4526,
5440,
6482,
7666,
9003,
10506,
12187,
14060,
16140,
18439,
20974,
23760,
26811,
30146,
33780,
37731,
42017,
46656,
50653,
55969,
60505,
66560,
71677,
78533,
84277,
91998,
98415,
107069,
114205,
123863,
131766,
142500,
151222,
163105,
172697,
185807,
196322,
210739,
222231,
238036,
250562,
267840,
281456,
300293,
315059,
335544,
351520,
373744,
390991,
415050,
433631,
459620,
479600,
507617,
529063,
559209,
582187,
614566,
639146,
673863,
700115,
737280,
765275,
804997,
834809,
877201,
908905,
954084,
987754,
1035837,
1071552,
1122660,
1160499,
1214753,
1254796,
1312322,
1354652,
1415577,
1460276,
1524731,
1571884,
1640000
]
}
+6071
View File
File diff suppressed because it is too large. Load diff
+10564
View File
File diff suppressed because it is too large. Load diff
+27
View File
@@ -0,0 +1,27 @@
sep=|
Natures|Increased|Decreased
Hardy||
Lonely|Attack|Defense
Brave|Attack|Speed
Adamant|Attack|SpecialAttack
Naughty|Attack|SpecialDefense
Bold|Defense|Attack
Docile||
Relaxed|Defense|Speed
Impish|Defense|SpecialAttack
Lax|Defense|SpecialDefense
Timid|Speed|Attack
Hasty|Speed|Defense
Serious||
Jolly|Speed|SpecialAttack
Naive|Speed|SpecialDefense
Modest|SpecialAttack|Attack
Mild|SpecialAttack|Defense
Quiet|SpecialAttack|Speed
Bashful||
Rash|SpecialAttack|SpecialDefense
Calm|SpecialDefense|Attack
Gentle|SpecialDefense|Defense
Sassy|SpecialDefense|Speed
Careful|SpecialDefense|SpecialAttack
Quirky||
1 sep=|
2 Natures|Increased|Decreased
3 Hardy||
4 Lonely|Attack|Defense
5 Brave|Attack|Speed
6 Adamant|Attack|SpecialAttack
7 Naughty|Attack|SpecialDefense
8 Bold|Defense|Attack
9 Docile||
10 Relaxed|Defense|Speed
11 Impish|Defense|SpecialAttack
12 Lax|Defense|SpecialDefense
13 Timid|Speed|Attack
14 Hasty|Speed|Defense
15 Serious||
16 Jolly|Speed|SpecialAttack
17 Naive|Speed|SpecialDefense
18 Modest|SpecialAttack|Attack
19 Mild|SpecialAttack|Defense
20 Quiet|SpecialAttack|Speed
21 Bashful||
22 Rash|SpecialAttack|SpecialDefense
23 Calm|SpecialDefense|Attack
24 Gentle|SpecialDefense|Defense
25 Sassy|SpecialDefense|Speed
26 Careful|SpecialDefense|SpecialAttack
27 Quirky||
+77306
View File
File diff suppressed because it is too large. Load diff
+32
View File
@@ -0,0 +1,32 @@
shared abstract class PkmnScript {
// CreatureLib methods
void OnInitialize(const array<EffectParameter@> &in parameters){};
void Stack(){};
void OnRemove(){};
void PreventAttack(ExecutingMove@ attack, bool& result){};
void FailAttack(ExecutingMove@ attack, bool& result){};
void StopBeforeAttack(ExecutingMove@ attack, bool& result){};
void OnBeforeAttack(ExecutingMove@ attack){};
void FailIncomingAttack(ExecutingMove@ attack, Pokemon@ target, bool& result){};
void IsInvulnerable(ExecutingMove@ attack, Pokemon@ target, bool& result){};
void OnAttackMiss(ExecutingMove@ attack, Pokemon@ target){};
void ChangeAttackType(ExecutingMove@ attack, Pokemon@ target, uint8 hit, uint8& outType){};
void OnStatusMove(ExecutingMove@ attack, Pokemon@ target, uint8 hit){};
void PreventSecondaryEffects(ExecutingMove@ attack, Pokemon@ target, uint8 hit, bool& outResult){};
void OnSecondaryEffect(ExecutingMove@ attack, Pokemon@ target, uint8 hit){};
void OnAfterHits(ExecutingMove@ attack, Pokemon@ target){};
void ModifyEffectChance(ExecutingMove@ attack, Pokemon@ target, float& chance){};
void ModifyIncomingEffectChance(ExecutingMove@ attack, Pokemon@ target, float& chance){};
void OverrideBasePower(ExecutingMove@ attack, Pokemon@ target, uint8 hit, uint8& chance){};
void ChangeDamageStatsUser(ExecutingMove@ attack, Pokemon@ target, uint8 hit, Pokemon@& user){};
void BypassDefensiveStat(ExecutingMove@ attack, Pokemon@ target, uint8 hit, bool& bypass){};
void BypassOffensiveStat(ExecutingMove@ attack, Pokemon@ target, uint8 hit, bool& bypass){};
void ModifyStatModifier(ExecutingMove@ attack, Pokemon@ target, uint8 hit, float& modifier){};
void ModifyDamageModifier(ExecutingMove@ attack, Pokemon@ target, uint8 hit, float& modifier){};
void OverrideDamage(ExecutingMove@ attack, Pokemon@ target, uint8 hit, int& damage){};
// PkmnLib methods
void ModifyCriticalStage(ExecutingMove@ attack, Pokemon@ target, uint8 hit, uint8& critStage){};
}
+38
View File
@@ -0,0 +1,38 @@
interface Pokemon{
const Species@ Species { get const; }
const Forme@ Forme { get const; }
const Species@ DisplaySpecies { get const; }
const Forme@ DisplayForme { get const; }
uint8 Level { get const; }
uint32 Experience { get const; }
Gender Gender { get const; }
uint8 Coloring { get const; }
bool Shiny { get const; }
const Item@ HeldItem { get const; }
uint32 CurrentHealth{ get const; }
const string& Nickname { get const; }
const string& ActiveAbility { get const; }
bool IsFainted { get const; }
bool HasType(uint8) const;
uint32 MaxHealth{ get const; };
const Species@ DisplaySpecies { get const; }
uint8[]@ GetTypes() const;
LearnedMove@[]@ GetMoves() const
void ChangeStatBoost(Statistic stat, int8 amount);
uint32 GetFlatStat(Statistic stat) const;
uint32 GetBoostedStat(Statistic stat) const;
uint32 GetBaseStat(Statistic stat) const;
int8 GetStatBoost(Statistic stat) const;
bool HasHeldItem(const string &in name) const;
void Damage(uint32 amount, DamageSource source);
void Heal(uint32 amount);
void OverrideActiveAbility(const string &in ability);
void SetHeldItem(const string &in name);
void SetHeldItem(const Item@ name);
Battle Battle{ get const; }
}
+11
View File
@@ -0,0 +1,11 @@
namespace Gen7 {
[Move effect=Acrobatics]
class Acrobatics : PkmnScript{
void OverrideBasePower(ExecutingMove@ attack, Pokemon@ target, uint8 hit, uint8& basePower) override {
if (attack.User.HeldItem is null){
if (basePower >= 128) basePower = 255;
else basePower *= 2;
}
};
}
}
+13
View File
@@ -0,0 +1,13 @@
namespace Gen7{
[Move effect=Acupressure]
class Acupressure : PkmnScript {
void OnSecondaryEffect(ExecutingMove@ attack, Pokemon@ target, uint8 hit) override {
if (attack.User is target){
// TODO: Fail.
return;
}
auto randStat = Statistic(target.Battle.Random.Get(0, 6));
target.ChangeStatBoost(randStat, 2);
};
}
}
+11
View File
@@ -0,0 +1,11 @@
namespace Gen7 {
[Move effect=AfterYou]
class AfterYou : PkmnScript{
void OnSecondaryEffect(ExecutingMove@ attack, Pokemon@ target, uint8 hit) override {
bool result = target.Battle.TurnQueue.MovePokemonChoiceNext(target);
if (!result){
// TODO: Failed
}
};
}
}
+14
View File
@@ -0,0 +1,14 @@
namespace Gen7 {
[Move effect=ChangeTargetDef]
shared class ChangeTargetDefense : PkmnScript{
int8 _amount;
void OnInitialize(const array<EffectParameter@> &in parameters) override{
_amount = int8(parameters[0].AsInt());
}
void OnSecondaryEffect(ExecutingMove@ attack, Pokemon@ target, uint8 hit) override{
target.ChangeStatBoost(Statistic::Defense, _amount);
}
}
}
+14
View File
@@ -0,0 +1,14 @@
namespace Gen7 {
[Move effect=ChangeTargetSpDef]
shared class ChangeTargetSpecialDefense : PkmnScript{
int8 _amount;
void OnInitialize(const array<EffectParameter@> &in parameters) override{
_amount = int8(parameters[0].AsInt());
}
void OnSecondaryEffect(ExecutingMove@ attack, Pokemon@ target, uint8 hit) override{
target.ChangeStatBoost(Statistic::SpecialDefense, _amount);
}
}
}
+14
View File
@@ -0,0 +1,14 @@
namespace Gen7 {
[Move effect=ChangeTargetSpeed]
shared class ChangeTargetSpeed : PkmnScript{
int8 _amount;
void OnInitialize(const array<EffectParameter@> &in parameters) override{
_amount = int8(parameters[0].AsInt());
}
void OnSecondaryEffect(ExecutingMove@ attack, Pokemon@ target, uint8 hit) override{
target.ChangeStatBoost(Statistic::Speed, _amount);
}
}
}
+20
View File
@@ -0,0 +1,20 @@
namespace Gen7{
[Move effect=drain]
shared class DrainMove : PkmnScript{
private float _healModifier = 0;
void OnInitialize(const array<EffectParameter@> &in parameters) override{
_healModifier = parameters[0].AsFloat();
}
void OnSecondaryEffect(ExecutingMove@ attack, Pokemon@ target, uint8 hit) override{
auto hitData = attack.GetAttackDataForTarget(target).GetHit(hit);
auto damage = hitData.Damage;
float mod = _healModifier;
if (attack.User.HasHeldItem("big_root")){
mod *= 1.3;
}
attack.User.Heal(uint(damage * mod));
}
}
}
+8
View File
@@ -0,0 +1,8 @@
namespace Gen7{
[Move effect=Flinch]
class Flinch : PkmnScript {
void OnSecondaryEffect(ExecutingMove@ attack, Pokemon@ target, uint8 hit) override{
target.AddVolatile("flinch");
}
}
}
+8
View File
@@ -0,0 +1,8 @@
namespace Gen7 {
[Move effect=IncreasedCriticalStage]
shared class IncreasedCriticalStage : PkmnScript {
void ModifyCriticalStage(ExecutingMove@ attack, Pokemon@ target, uint8 hit, uint8& critStage) override{
critStage++;
};
}
}
+8
View File
@@ -0,0 +1,8 @@
namespace Pokemon{
[Pokemon effect=Flinch]
class Flinch : PkmnScript{
void PreventAttack(ExecutingMove@ attack, bool& result) override {
result = true;
}
}
}
+20
View File
@@ -0,0 +1,20 @@
sep=|
Types|Normal|Fighting|Flying|Poison|Ground|Rock|Bug|Ghost|Steel|Fire|Water|Grass|Electric|Psychic|Ice|Dragon|Dark|Fairy
Normal|1|1|1|1|1|0.5|1|0|0.5|1|1|1|1|1|1|1|1|1
Fighting|2|1|0.5|0.5|1|2|0.5|0|2|1|1|1|1|0.5|2|1|2|0.5
Flying|1|2|1|1|1|0.5|2|1|0.5|1|1|2|0.5|1|1|1|1|1
Poison|1|1|1|0.5|0.5|0.5|1|0.5|0|1|1|2|1|1|1|1|1|2
Ground|1|1|0|2|1|2|0.5|1|2|2|1|0.5|2|1|1|1|1|1
Rock|1|0.5|2|1|0.5|1|2|1|0.5|2|1|1|1|1|2|1|1|1
Bug|1|0.5|0.5|0.5|1|1|1|0.5|0.5|0.5|1|2|1|2|1|1|2|0.5
Ghost|0|1|1|1|1|1|1|2|1|1|1|1|1|2|1|1|0.5|1
Steel|1|1|1|1|1|2|1|1|0.5|0.5|0.5|1|0.5|1|2|1|1|2
Fire|1|1|1|1|1|0.5|2|1|2|0.5|0.5|2|1|1|2|0.5|1|1
Water|1|1|1|1|2|2|1|1|1|2|0.5|0.5|1|1|1|0.5|1|1
Grass|1|1|0.5|0.5|2|2|0.5|1|0.5|0.5|2|0.5|1|1|1|0.5|1|1
Electric|1|1|2|1|0|1|1|1|1|1|2|0.5|0.5|1|1|0.5|1|1
Psychic|1|2|1|2|1|1|1|1|0.5|1|1|1|1|0.5|1|1|0|1
Ice|1|1|2|1|2|1|1|1|0.5|0.5|0.5|2|1|1|0.5|2|1|1
Dragon|1|1|1|1|1|1|1|1|0.5|1|1|1|1|1|1|2|1|0
Dark|1|0.5|1|1|1|1|1|2|1|1|1|1|1|2|1|1|0.5|0.5
Fairy|1|2|1|0.5|1|1|1|1|0.5|0.5|1|1|1|1|1|2|2|1
1 sep=|
2 Types|Normal|Fighting|Flying|Poison|Ground|Rock|Bug|Ghost|Steel|Fire|Water|Grass|Electric|Psychic|Ice|Dragon|Dark|Fairy
3 Normal|1|1|1|1|1|0.5|1|0|0.5|1|1|1|1|1|1|1|1|1
4 Fighting|2|1|0.5|0.5|1|2|0.5|0|2|1|1|1|1|0.5|2|1|2|0.5
5 Flying|1|2|1|1|1|0.5|2|1|0.5|1|1|2|0.5|1|1|1|1|1
6 Poison|1|1|1|0.5|0.5|0.5|1|0.5|0|1|1|2|1|1|1|1|1|2
7 Ground|1|1|0|2|1|2|0.5|1|2|2|1|0.5|2|1|1|1|1|1
8 Rock|1|0.5|2|1|0.5|1|2|1|0.5|2|1|1|1|1|2|1|1|1
9 Bug|1|0.5|0.5|0.5|1|1|1|0.5|0.5|0.5|1|2|1|2|1|1|2|0.5
10 Ghost|0|1|1|1|1|1|1|2|1|1|1|1|1|2|1|1|0.5|1
11 Steel|1|1|1|1|1|2|1|1|0.5|0.5|0.5|1|0.5|1|2|1|1|2
12 Fire|1|1|1|1|1|0.5|2|1|2|0.5|0.5|2|1|1|2|0.5|1|1
13 Water|1|1|1|1|2|2|1|1|1|2|0.5|0.5|1|1|1|0.5|1|1
14 Grass|1|1|0.5|0.5|2|2|0.5|1|0.5|0.5|2|0.5|1|1|1|0.5|1|1
15 Electric|1|1|2|1|0|1|1|1|1|1|2|0.5|0.5|1|1|0.5|1|1
16 Psychic|1|2|1|2|1|1|1|1|0.5|1|1|1|1|0.5|1|1|0|1
17 Ice|1|1|2|1|2|1|1|1|0.5|0.5|0.5|2|1|1|0.5|2|1|1
18 Dragon|1|1|1|1|1|1|1|1|0.5|1|1|1|1|1|1|2|1|0
19 Dark|1|0.5|1|1|1|1|1|2|1|1|1|1|1|2|1|1|0.5|0.5
20 Fairy|1|2|1|0.5|1|1|1|1|0.5|0.5|1|1|1|1|1|2|2|1