-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathtodo.txt
More file actions
66 lines (48 loc) · 2.71 KB
/
Copy pathtodo.txt
File metadata and controls
66 lines (48 loc) · 2.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# TODO
---------------------------------------------------------------------------------------------
Volthare:
- New move at lv 6: Quickstorm, 2 stamina, 30 power, inflicts zap on opponent, can only be used first turn volthare comes out
Aurox:
- New move at lv 6: Big Bellow, 1 stamina, Metal, Other (any target)
- Reduces target's SpATK and Speed by 50% (until switch out)
Embursa
- Q5 can only be active once per side (unique across mons)
- Heat Beacon rework:
+1 to next turn's move
if Embursa is Burned, apply Burn on opponent
0 stamina
Iblivion
- Change Baselight to be acquired only when taking damage, not at end of turn
Xmon
- Change Somniphobia to affect opponents only (still stackable)
- Add new move, Old Vengeance, 40 power, Cosmic, 3 stamina +1 priority
- at the end of the turn, hits an additional time for each stamina the opponent spent this turn
- Remove Night Terrors
Nirvamma
- Change Hard Reset to Inversion, 0 stamina Math, normal priority:
- Change direction of all stat boosts from opponent
Blessed Status rework
- A Blessed mon takes no damage from the next source of damage, and the status, when removed, heals 1/16 max hp
Audit:
- Which effects should be global, which should be stackable across mons?
---------------------------------------------------------------------------------------------
KNOWN BUGGY INTERACTIONS
1) If a move forces a switch and triggers before the other player can make its move, then the new mon will try to execute its move still
- The Engine handles the case where the stamina is insufficient (it just skips the move)
Ways to mitigate:
- avoid forcing opponent swap outs unless it's at low priority
- have the engine set the skipTurn flag on newly swapped in mons (if they have yet to run their turn yet)
- look into this later
- or do this w/ a custom condition that can set the flag, and then remove at end of turn
2) If an effect calls dealDamage() and triggers AfterDamage, it can potentially cause an infinite loop!
(either if it calls dealDamage() on the opposing mon who also has a damaging attack with an AfterDamage trigger)
Ways to mitigate:
- deal damage directly (but skip calling dealDamage) on the Engine
- avoid dealing damage in the afterDamage hook itself
- maintain manual mutex to prevent infinite recurse
3) Malicious p0 can commit to a team that has an array of mons, but modify the mon moves prior to starting a battle (after p1 commits)
Ways to mitigate:
- Need to handle on the team registry angle probably
- Atm, restricting it to the same array of mon indices reduces the attack surface somewhat
- OR, just add the move indices to the integrity hash
---------------------------------------------------------------------------------------------