Skip to content

Commit

Permalink
Implements SC_STONEWAIT (rathena#6794)
Browse files Browse the repository at this point in the history
* Fixes rathena#6748.
* Implements SC_STONEWAIT to be used with OPT1_STONEWAIT.
* Removes a lot of hard coded OPT1_STONE checks now that the two states are split to their own statuses.
* Fixes SC_STONE not ending when the target receives damage.
* Fixes SC_STONE getting overwritten by other statuses the have OPT1 states.
* SC_STONE should damage the target by 1% of MaxHP, not CurrentHP.
* All skills that give StoneWait aside from Stone Curse are 100ms.
* Confirmed that Sienna Execrate is 8 + 2 * SkillLv seconds of Stone.
* Moves Provoke and Mind Breaker status clearings to the status database.
* Converts EndReturn in the status database from a boolean to a list of statuses. Statuses defined in this list will be ended and then the status making the call will not take affect.
Thanks to @Singe-Horizontal, @Playtester, and @Lemongrass3110!
  • Loading branch information
aleos89 authored Apr 8, 2022
1 parent 3b47def commit cee161e
Show file tree
Hide file tree
Showing 11 changed files with 233 additions and 181 deletions.
4 changes: 2 additions & 2 deletions db/import-tmpl/status.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@
# MinDuration Minimum duration in milliseconds after status change reduction. (Default: 1)
# Fail: List of Status Changes that causes the status to fail to activate. (Optional)
# End: List of Status Changes that will end when the status activates. (Optional)
# EndReturn If the status has an End list and succeeds to remove these status changes, it won't give its effect. (Default: false)
# EndReturn: List of Status Changes that will end when the status activates and won't give its effect. (Optional)
###########################################################################

Header:
Type: STATUS_DB
Version: 1
Version: 2
16 changes: 9 additions & 7 deletions db/pre-re/skill_db.yml
Original file line number Diff line number Diff line change
Expand Up @@ -796,8 +796,8 @@ Body:
Element: Earth
CastCancel: true
CastTime: 1000
Duration1: 5000
Duration2: 20000
Duration1: 20000
Duration2: 5000
Requires:
SpCost:
- Level: 1
Expand All @@ -823,7 +823,7 @@ Body:
ItemCost:
- Item: Red_Gemstone
Amount: 1
Status: Stone
Status: StoneWait
- Id: 17
Name: MG_FIREBALL
Description: Fire Ball
Expand Down Expand Up @@ -5663,8 +5663,9 @@ Body:
Hit: Single
HitCount: 1
Element: Weapon
Duration2: 20000
Status: Stone
Duration1: 20000
Duration2: 100
Status: StoneWait
- Id: 181
Name: NPC_CURSEATTACK
Description: Curse Attack
Expand Down Expand Up @@ -15911,8 +15912,9 @@ Body:
Area: 11
- Level: 5
Area: 14
Duration2: 20000
Status: Stone
Duration1: 20000
Duration2: 100
Status: StoneWait
- Id: 667
Name: NPC_WIDECONFUSE
Description: Wide Confusion
Expand Down
53 changes: 43 additions & 10 deletions db/pre-re/status.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,37 +36,63 @@
# MinDuration Minimum duration in milliseconds after status change reduction. (Default: 1)
# Fail: List of Status Changes that causes the status to fail to activate. (Optional)
# End: List of Status Changes that will end when the status activates. (Optional)
# EndReturn If the status has an End list and succeeds to remove these status changes, it won't give its effect. (Default: false)
# EndReturn: List of Status Changes that will end when the status activates and won't give its effect. (Optional)
###########################################################################

Header:
Type: STATUS_DB
Version: 1
Version: 2

Body:
- Status: Stone
DurationLookup: NPC_PETRIFYATTACK
States:
NoMove: true
NoMoveCond: true
NoCast: true
NoAttack: true
CalcFlags:
Def_Ele: true
Def: true
Mdef: true
Opt1: Stone
Flags:
SendOption: true
BossResist: true
StopAttacking: true
StopCasting: true
RemoveOnDamaged: true
Fail:
Refresh: true
Inspiration: true
Power_Of_Gaia: true
Gvg_Stone: true
Freeze: true
Stun: true
Sleep: true
Burning: true
#Undead: true
End:
Dancing: true
Aeterna: true
EndReturn:
StoneWait: true
Stone: true
- Status: StoneWait
DurationLookup: NPC_PETRIFYATTACK
States:
NoCast: true
Opt1: StoneWait
Flags:
SendOption: true
StopAttacking: true
Fail:
Freeze: true
Stun: true
Sleep: true
Burning: true
#Undead: true
EndReturn:
StoneWait: true
Stone: true
- Status: Freeze
DurationLookup: NPC_WIDEFREEZE
States:
Expand Down Expand Up @@ -247,6 +273,11 @@ Body:
BossResist: true
Debuff: true
NoSaveInfinite: true
End:
Freeze: true
Stone: true
Sleep: true
TrickDead: true
- Status: Endure
Icon: EFST_ENDURE
DurationLookup: SM_ENDURE
Expand Down Expand Up @@ -505,6 +536,7 @@ Body:
Flags:
NoSave: true
Fail:
Stone: true
Freeze: true
- Status: Adrenaline
Icon: EFST_ADRENALINE
Expand Down Expand Up @@ -1229,9 +1261,8 @@ Body:
Fail:
Quagmire: true
Dontforgetme: true
End:
EndReturn:
Decreaseagi: true
EndReturn: true
- Status: Chasewalk
Icon: EFST_CHASEWALK
DurationLookup: ST_CHASEWALK
Expand Down Expand Up @@ -1317,6 +1348,10 @@ Body:
Flags:
NoSave: true
Debuff: true
End:
Freeze: true
Stone: true
Sleep: true
- Status: Memorize
Icon: EFST_MEMORIZE
DurationLookup: PF_MEMORIZE
Expand Down Expand Up @@ -4179,9 +4214,8 @@ Body:
Fail:
Quagmire: true
Dontforgetme: true
End:
EndReturn:
Decreaseagi: true
EndReturn: true
- Status: Thornstrap
Icon: EFST_THORNS_TRAP
DurationLookup: GN_THORNS_TRAP
Expand Down Expand Up @@ -5698,9 +5732,8 @@ Body:
NoBanishingBuster: true
NoClearance: true
NoForcedEnd: true
End:
EndReturn:
All_Riding: true
EndReturn: true
- Status: Teargas_Sob
Flags:
BossResist: true
Expand Down
20 changes: 12 additions & 8 deletions db/re/skill_db.yml
Original file line number Diff line number Diff line change
Expand Up @@ -780,8 +780,8 @@ Body:
Element: Earth
CastCancel: true
CastTime: 800
Duration1: 5000
Duration2: 17000
Duration1: 17000
Duration2: 5000
FixedCastTime: 200
Requires:
SpCost:
Expand All @@ -808,7 +808,7 @@ Body:
ItemCost:
- Item: Red_Gemstone
Amount: 1
Status: Stone
Status: StoneWait
- Id: 17
Name: MG_FIREBALL
Description: Fire Ball
Expand Down Expand Up @@ -5933,8 +5933,9 @@ Body:
Hit: Single
HitCount: 1
Element: Weapon
Duration2: 17000
Status: Stone
Duration1: 17000
Duration2: 100
Status: StoneWait
- Id: 181
Name: NPC_CURSEATTACK
Description: Curse Attack
Expand Down Expand Up @@ -16310,8 +16311,9 @@ Body:
Area: 11
- Level: 5
Area: 14
Duration2: 17000
Status: Stone
Duration1: 17000
Duration2: 100
Status: StoneWait
- Id: 667
Name: NPC_WIDECONFUSE
Description: Wide Confusion
Expand Down Expand Up @@ -19241,6 +19243,7 @@ Body:
Time: 13000
- Level: 5
Time: 15000
Duration2: 100
Requires:
SpCost:
- Level: 1
Expand All @@ -19256,7 +19259,7 @@ Body:
ItemCost:
- Item: Red_Gemstone
Amount: 2
Status: Stone
Status: StoneWait
- Id: 2208
Name: WL_RADIUS
Description: Radius
Expand Down Expand Up @@ -32010,6 +32013,7 @@ Body:
CastCancel: true
AfterCastActDelay: 1000
Duration1: 10000
Duration2: 5000
Requires:
SpCost: 30
Unit:
Expand Down
55 changes: 45 additions & 10 deletions db/re/status.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,37 +36,65 @@
# MinDuration Minimum duration in milliseconds after status change reduction. (Default: 1)
# Fail: List of Status Changes that causes the status to fail to activate. (Optional)
# End: List of Status Changes that will end when the status activates. (Optional)
# EndReturn If the status has an End list and succeeds to remove these status changes, it won't give its effect. (Default: false)
# EndReturn: List of Status Changes that will end when the status activates and won't give its effect. (Optional)
###########################################################################

Header:
Type: STATUS_DB
Version: 1
Version: 2

Body:
- Status: Stone
DurationLookup: NPC_PETRIFYATTACK
States:
NoMove: true
NoMoveCond: true
NoCast: true
NoAttack: true
CalcFlags:
Def_Ele: true
Def: true
Mdef: true
Opt1: Stone
Flags:
SendOption: true
BossResist: true
StopAttacking: true
StopCasting: true
RemoveOnDamaged: true
Fail:
Refresh: true
Inspiration: true
Power_Of_Gaia: true
Gvg_Stone: true
Whiteimprison: true
Freeze: true
Stun: true
Sleep: true
Burning: true
#Undead: true
End:
Dancing: true
Aeterna: true
EndReturn:
StoneWait: true
Stone: true
- Status: StoneWait
DurationLookup: NPC_PETRIFYATTACK
States:
NoCast: true
Opt1: StoneWait
Flags:
SendOption: true
StopAttacking: true
Fail:
Whiteimprison: true
Freeze: true
Stun: true
Sleep: true
Burning: true
#Undead: true
EndReturn:
StoneWait: true
Stone: true
- Status: Freeze
DurationLookup: NPC_WIDEFREEZE
States:
Expand Down Expand Up @@ -253,6 +281,11 @@ Body:
BossResist: true
Debuff: true
NoSaveInfinite: true
End:
Freeze: true
Stone: true
Sleep: true
TrickDead: true
- Status: Endure
Icon: EFST_ENDURE
DurationLookup: SM_ENDURE
Expand Down Expand Up @@ -515,6 +548,7 @@ Body:
Flags:
NoSave: true
Fail:
Stone: true
Freeze: true
- Status: Adrenaline
Icon: EFST_ADRENALINE
Expand Down Expand Up @@ -1242,9 +1276,8 @@ Body:
NoDispell: true
Fail:
Quagmire: true
End:
EndReturn:
Decreaseagi: true
EndReturn: true
- Status: Chasewalk
Icon: EFST_CHASEWALK
DurationLookup: ST_CHASEWALK
Expand Down Expand Up @@ -1330,6 +1363,10 @@ Body:
Flags:
NoSave: true
Debuff: true
End:
Freeze: true
Stone: true
Sleep: true
- Status: Memorize
Icon: EFST_MEMORIZE
DurationLookup: PF_MEMORIZE
Expand Down Expand Up @@ -4323,9 +4360,8 @@ Body:
Fail:
Quagmire: true
Dontforgetme: true
End:
EndReturn:
Decreaseagi: true
EndReturn: true
- Status: Thornstrap
Icon: EFST_THORNS_TRAP
DurationLookup: GN_THORNS_TRAP
Expand Down Expand Up @@ -5931,9 +5967,8 @@ Body:
NoBanishingBuster: true
NoClearance: true
NoForcedEnd: true
End:
EndReturn:
All_Riding: true
EndReturn: true
- Status: Teargas_Sob
Flags:
BossResist: true
Expand Down
Loading

0 comments on commit cee161e

Please sign in to comment.