Przeglądaj źródła

Implementation of Status Changes in YAML (#1685)

* Removes the initialization of Status Changes via hard-code and puts it into YAML form.
* From this database it is much easier to delegate icons, calc flags, opt flags, miscellaneous flags, and several other things for all stats changes.
* Statuses can quickly be reloaded via atcommand reloadstatus.
Thanks to @cydh, @Atemo, @Lemongrass3110, and the others who helped!
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
Co-authored-by: atemo <capucrath@gmail.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Cydh Ramdh 3 lat temu
rodzic
commit
f28d207274

+ 0 - 3
conf/battle/skill.conf

@@ -220,9 +220,6 @@ backstab_bow_penalty: yes
 // Use 0 to disable (max allowed value is 255)
 skill_steal_max_tries: 0
 
-// Does Berserk/Frenzy cancel other self-buffs when used?
-berserk_cancels_buffs: no
-
 // Level and Strength of "MVP heal". When someone casts a heal of this level or
 // above, the heal formula is bypassed and this value is used instead.
 max_heal: 9999

+ 5 - 7
conf/battle/status.conf

@@ -13,13 +13,11 @@
 status_cast_cancel: 0
 
 // Will certain skill status-changes be removed on logout?
-// This mimics official servers, where Extremity Fist's no SP regen,
-// Strip Equipment, and some other buffs are removed when you logout. Setting is:
-// 0 = remove nothing.
-// 1 = remove negative buffs (stripping, EF)
-// 2 = remove positive buffs (maximize power, steel body...)
-// 3 = remove both negative and positive buffs.
-debuff_on_logout: 3
+// 0 = (Default) Only remove status that has the SCF_NO_SAVE flag.
+// 1 = Remove negative buffs (status that are flagged as debuff)
+// 2 = Remove positive buffs.
+// 3 = Remove all.
+debuff_on_logout: 0
 
 // Adjustment for the natural rate of resistance from status changes.
 // If 50, status defense is halved, and you need twice as much stats to block

+ 1 - 0
db/import-tmpl/skill_db.yml

@@ -135,6 +135,7 @@
 #     Interval                Skill unit interval in milliseconds. (Default: 0)
 #     Target                  Skill unit target type. (Default: All)
 #     Flag:                   Skill unit flags. (Default: None)
+#   Status                    Status Change that is associated to the skill. (Optional)
 ###########################################################################
 
 Header:

+ 44 - 0
db/import-tmpl/status.yml

@@ -0,0 +1,44 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2022 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Status Change Database
+###########################################################################
+#
+# Status Change Settings
+#
+###########################################################################
+# - Status                    Status change name.
+#   Icon                      Status change icon. (Default: EFST_BLANK)
+#   DurationLookup            Default status change duration. (Default: 0)
+#   States:                   Status change state to determine player states. (Default: None)
+#   CalcFlags:                Status change calculation to indicate which stat is adjusted. (Default: None)
+#   Opt1                      Special effect when a status change is active. Non-stackable. (Default: None)
+#   Opt2:                     Special options/client effects when a status change is active. (Default: None)
+#   Opt3:                     Special options/client effects when a status change is active. (Default: Normal)
+#   Options:                  Special options/client effects when a status change is active. (Default: Nothing)
+#   Flags:                    Special flags which trigger during certain events.  (Default: None)
+#   MinRate                   Minimum rate after status change reduction (10000 = 100%). (Default: 0)
+#   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)
+###########################################################################
+
+Header:
+  Type: STATUS_DB
+  Version: 1

Plik diff jest za duży
+ 126 - 0
db/pre-re/skill_db.yml


+ 6817 - 0
db/pre-re/status.yml

@@ -0,0 +1,6817 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2022 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Status Change Database
+###########################################################################
+#
+# Status Change Settings
+#
+###########################################################################
+# - Status                    Status change name.
+#   Icon                      Status change icon. (Default: EFST_BLANK)
+#   DurationLookup            Default status change duration. (Default: 0)
+#   States:                   Status change state to determine player states. (Default: None)
+#   CalcFlags:                Status change calculation to indicate which stat is adjusted. (Default: None)
+#   Opt1                      Special effect when a status change is active. Non-stackable. (Default: None)
+#   Opt2:                     Special options/client effects when a status change is active. (Default: None)
+#   Opt3:                     Special options/client effects when a status change is active. (Default: Normal)
+#   Options:                  Special options/client effects when a status change is active. (Default: Nothing)
+#   Flags:                    Special flags which trigger during certain events.  (Default: None)
+#   MinRate                   Minimum rate after status change reduction (10000 = 100%). (Default: 0)
+#   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)
+###########################################################################
+
+Header:
+  Type: STATUS_DB
+  Version: 1
+
+Body:
+  - Status: Stone
+    DurationLookup: NPC_PETRIFYATTACK
+    States:
+      NoMove: true
+      NoMoveCond: true
+      NoCast: true
+      NoAttack: true
+    CalcFlags:
+      Def_Ele: true
+      Def: true
+      Mdef: true
+    Flags:
+      SendOption: true
+      BossResist: true
+      StopAttacking: true
+      StopCasting: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Power_Of_Gaia: true
+      Gvg_Stone: true
+    End:
+      Dancing: true
+  - Status: Freeze
+    DurationLookup: NPC_WIDEFREEZE
+    States:
+      NoMove: true
+      NoCast: true
+      NoAttack: true
+    CalcFlags:
+      Def_Ele: true
+      Def: true
+      Mdef: true
+    Opt1: Freeze
+    Flags:
+      SendOption: true
+      BossResist: true
+      StopAttacking: true
+      StopCasting: true
+      RemoveOnDamaged: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Warmer: true
+      Gvg_Freez: true
+    End:
+      Dancing: true
+      Aeterna: true
+  - Status: Stun
+    DurationLookup: NPC_STUNATTACK
+    States:
+      NoMove: true
+      NoCast: true
+      NoAttack: true
+    Opt1: Stun
+    Flags:
+      SendOption: true
+      BossResist: true
+      StopAttacking: true
+      StopCasting: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Gvg_Stun: true
+    End:
+      Dancing: true
+  - Status: Sleep
+    DurationLookup: NPC_SLEEPATTACK
+    States:
+      NoMove: true
+      NoCast: true
+      NoAttack: true
+    Opt1: Sleep
+    Flags:
+      SendOption: true
+      BossResist: true
+      StopAttacking: true
+      StopCasting: true
+      RemoveOnDamaged: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Gvg_Sleep: true
+    End:
+      Dancing: true
+  - Status: Poison
+    DurationLookup: NPC_POISON
+    CalcFlags:
+      Def2: true
+      Regen: true
+    Opt2:
+      Poison: true
+    Flags:
+      SendOption: true
+      BossResist: true
+      StopAttacking: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+  - Status: Curse
+    DurationLookup: NPC_CURSEATTACK
+    CalcFlags:
+      Luk: true
+      Batk: true
+      Watk: true
+      Speed: true
+    Opt2:
+      Curse: true
+    Flags:
+      SendOption: true
+      BossResist: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Gvg_Curse: true
+  - Status: Silence
+    DurationLookup: NPC_SILENCEATTACK
+    States:
+      NoCast: true
+    Opt2:
+      Silence: true
+    Flags:
+      SendOption: true
+      BossResist: true
+      StopCasting: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Gvg_Silence: true
+  - Status: Confusion
+    DurationLookup: NPC_WIDECONFUSE
+    Flags:
+      BossResist: true
+      StopWalking: true
+      RemoveOnDamaged: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Confusion: true
+  - Status: Blind
+    DurationLookup: NPC_BLINDATTACK
+    CalcFlags:
+      Hit: true
+      Flee: true
+    Opt2:
+      Blind: true
+    Flags:
+      SendOption: true
+      BossResist: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Fear: true
+      Gvg_Blind: true
+  - Status: Bleeding
+    Icon: EFST_BLOODING
+    DurationLookup: NPC_BLEEDING
+    CalcFlags:
+      Regen: true
+    Opt2:
+      Bleeding: true
+    Flags:
+      SendOption: true
+      BossResist: true
+      NoSave: true
+      NoClearance: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+  - Status: Dpoison
+    DurationLookup: NPC_POISON
+    CalcFlags:
+      Def2: true
+      Regen: true
+    Opt2:
+      Dpoison: true
+    Flags:
+      SendOption: true
+      BossResist: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+  - Status: Provoke
+    Icon: EFST_PROVOKE
+    DurationLookup: SM_PROVOKE
+    CalcFlags:
+      Def: true
+      Def2: true
+      Batk: true
+      Watk: true
+    Flags:
+      BossResist: true
+      Debuff: true
+      NoSaveInfinite: true
+  - Status: Endure
+    Icon: EFST_ENDURE
+    DurationLookup: SM_ENDURE
+    CalcFlags:
+      Mdef: true
+      Dspd: true
+    Flags:
+      NoRemoveOnDead: true
+      NoSaveInfinite: true
+  - Status: Twohandquicken
+    Icon: EFST_TWOHANDQUICKEN
+    DurationLookup: KN_TWOHANDQUICKEN
+    CalcFlags:
+      Aspd: true
+    Opt3:
+      Quicken: true
+    Flags:
+      RequireWeapon: true
+    Fail:
+      Decreaseagi: true
+  - Status: Concentrate
+    Icon: EFST_CONCENTRATION
+    DurationLookup: AC_CONCENTRATION
+    CalcFlags:
+      Agi: true
+      Dex: true
+    Flags:
+      FailedMado: true
+    Fail:
+      Quagmire: true
+  - Status: Hiding
+    Icon: EFST_HIDING
+    DurationLookup: TF_HIDING
+    States:
+      NoMove: true
+      NoMoveCond: true
+      NoPickItem: true
+      NoConsumeItem: true
+    CalcFlags:
+      Speed: true
+    Options:
+      Hide: true
+    Flags:
+      OnTouch: true
+      StopAttacking: true
+      RemoveOnDamaged: true
+      RemoveOnChangeMap: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+    End:
+      Closeconfine: true
+      Closeconfine2: true
+  - Status: Cloaking
+    Icon: EFST_CLOAKING
+    DurationLookup: AS_CLOAKING
+    States:
+      NoPickItem: true
+    CalcFlags:
+      Cri: true
+      Speed: true
+    Options:
+      Cloak: true
+    Flags:
+      OnTouch: true
+      StopAttacking: true
+      RemoveOnDamaged: true
+      RemoveOnMapWarp: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Encpoison
+    Icon: EFST_ENCHANTPOISON
+    DurationLookup: AS_ENCHANTPOISON
+    CalcFlags:
+      Atk_Ele: true
+    Fail:
+      Fireweapon: true
+      Waterweapon: true
+      Windweapon: true
+      Earthweapon: true
+      Shadowweapon: true
+      Ghostweapon: true
+  - Status: Poisonreact
+    Icon: EFST_POISONREACT
+    DurationLookup: AS_POISONREACT
+  - Status: Quagmire
+    Icon: EFST_QUAGMIRE
+    DurationLookup: WZ_QUAGMIRE
+    CalcFlags:
+      Agi: true
+      Dex: true
+      Aspd: true
+      Speed: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+      Debuff: true
+    Fail:
+      Speedup1: true
+    End:
+      Loud: true
+      Concentrate: true
+      Truesight: true
+      Windwalk: true
+      Magneticfield: true
+      Cartboost: true
+      Gn_Cartboost: true
+      Increaseagi: true
+      Adrenaline: true
+      Adrenaline2: true
+      Spearquicken: true
+      Twohandquicken: true
+      Onehand: true
+      Merc_Quicken: true
+      Acceleration: true
+  - Status: Angelus
+    Icon: EFST_ANGELUS
+    DurationLookup: AL_ANGELUS
+    CalcFlags:
+      Def2: true
+    Opt2:
+      Angelus: true
+    Flags:
+      SendOption: true
+  - Status: Blessing
+    Icon: EFST_BLESSING
+    DurationLookup: AL_BLESSING
+    CalcFlags:
+      Str: true
+      Int: true
+      Dex: true
+    Flags:
+      BossResist: true
+      TaekwonAngel: true
+  - Status: Signumcrucis
+    Icon: EFST_CRUCIS
+    DurationLookup: AL_CRUCIS
+    CalcFlags:
+      Def: true
+    Opt2:
+      SignumCrucis: true
+    Flags:
+      SendOption: true
+      Debuff: true
+  - Status: Increaseagi
+    Icon: EFST_INC_AGI
+    DurationLookup: AL_INCAGI
+    CalcFlags:
+      Agi: true
+      Speed: true
+    Flags:
+      FailedMado: true
+      TaekwonAngel: true
+    Fail:
+      Quagmire: true
+    End:
+      Decreaseagi: true
+      Adoramus: true
+  - Status: Decreaseagi
+    Icon: EFST_DEC_AGI
+    DurationLookup: AL_DECAGI
+    CalcFlags:
+      Agi: true
+      Speed: true
+    Flags:
+      BossResist: true
+      NoSave: true
+      Debuff: true
+    Fail:
+      Speedup1: true
+    End:
+      Cartboost: true
+      Gn_Cartboost: true
+      Increaseagi: true
+      Adrenaline: true
+      Adrenaline2: true
+      Spearquicken: true
+      Twohandquicken: true
+      Onehand: true
+      Merc_Quicken: true
+      Acceleration: true
+  - Status: Slowpoison
+    Icon: EFST_SLOWPOISON
+    DurationLookup: PR_SLOWPOISON
+    Flags:
+      NoClearance: true
+  - Status: Impositio
+    Icon: EFST_IMPOSITIO
+    DurationLookup: PR_IMPOSITIO
+    CalcFlags:
+      Watk: true
+    Flags:
+      SuperNoviceAngel: true
+    End:
+      Impositio: true
+  - Status: Suffragium
+    Icon: EFST_SUFFRAGIUM
+    DurationLookup: PR_SUFFRAGIUM
+    Flags:
+      SuperNoviceAngel: true
+  - Status: Aspersio
+    Icon: EFST_ASPERSIO
+    DurationLookup: PR_ASPERSIO
+    CalcFlags:
+      Atk_Ele: true
+  - Status: Benedictio
+    Icon: EFST_BENEDICTIO
+    DurationLookup: PR_BENEDICTIO
+    CalcFlags:
+      Def_Ele: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Kyrie
+    Icon: EFST_KYRIE
+    DurationLookup: PR_KYRIE
+    Flags:
+      SuperNoviceAngel: true
+    End:
+      Assumptio: true
+  - Status: Magnificat
+    Icon: EFST_MAGNIFICAT
+    DurationLookup: PR_MAGNIFICAT
+    CalcFlags:
+      Regen: true
+    Flags:
+      FailedMado: true
+      NoSave: true
+      SuperNoviceAngel: true
+    Fail:
+      Offertorium: true
+  - Status: Gloria
+    Icon: EFST_GLORIA
+    DurationLookup: PR_GLORIA
+    CalcFlags:
+      Luk: true
+    Flags:
+      SuperNoviceAngel: true
+  - Status: Aeterna
+    Icon: EFST_LEXAETERNA
+    DurationLookup: PR_LEXAETERNA
+    Flags:
+      NoSave: true
+    Fail:
+      Freeze: true
+  - Status: Adrenaline
+    Icon: EFST_ADRENALINE
+    DurationLookup: BS_ADRENALINE
+    CalcFlags:
+      Aspd: true
+    Flags:
+      MadoCancel: true
+      RequireWeapon: true
+    Fail:
+      Quagmire: true
+      Decreaseagi: true
+  - Status: Weaponperfection
+    Icon: EFST_WEAPONPERFECT
+    DurationLookup: BS_WEAPONPERFECT
+    Flags:
+      MadoCancel: true
+  - Status: Overthrust
+    Icon: EFST_OVERTHRUST
+    DurationLookup: BS_OVERTHRUST
+    Opt3:
+      OverThrust: true
+    Flags:
+      MadoCancel: true
+    Fail:
+      Maxoverthrust: true
+  - Status: Maximizepower
+    Icon: EFST_MAXIMIZE
+    DurationLookup: BS_MAXIMIZE
+    CalcFlags:
+      Regen: true
+    Flags:
+      MadoCancel: true
+  - Status: Trickdead
+    Icon: EFST_TRICKDEAD
+    DurationLookup: NV_TRICKDEAD
+    States:
+      NoMove: true
+      NoPickItem: true
+      NoConsumeItem: true
+      NoAttack: true
+      NoInteract: true
+    CalcFlags:
+      Regen: true
+    Flags:
+      StopWalking: true
+      StopAttacking: true
+      StopCasting: true
+      RemoveOnDamaged: true
+      NoSave: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+    End:
+      Dancing: true
+  - Status: Loud
+    Icon: EFST_SHOUT
+    DurationLookup: MC_LOUD
+    CalcFlags:
+      Str: true
+    Flags:
+      MadoCancel: true
+  - Status: Energycoat
+    Icon: EFST_ENERGYCOAT
+    DurationLookup: MG_ENERGYCOAT
+    Opt3:
+      EnergyCoat: true
+  - Status: Brokenarmor
+    Icon: EFST_BROKENARMOR
+    DurationLookup: NPC_ARMORBRAKE
+  - Status: Brokenweapon
+    Icon: EFST_BROKENWEAPON
+    DurationLookup: NPC_WEAPONBRAKER
+  - Status: Hallucination
+    Icon: EFST_ILLUSION
+    DurationLookup: NPC_HALLUCINATION
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      Debuff: true
+    Fail:
+      Inspiration: true
+  - Status: Weight50
+    Icon: EFST_WEIGHTOVER50
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Weight90
+    Icon: EFST_WEIGHTOVER90
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      StopAttacking: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Aspdpotion0
+    Icon: EFST_ATTHASTE_POTION1
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoClearance: true
+      OverlapIgnoreLevel: true
+  - Status: Aspdpotion1
+    Icon: EFST_ATTHASTE_POTION2
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoClearance: true
+      OverlapIgnoreLevel: true
+  - Status: Aspdpotion2
+    Icon: EFST_ATTHASTE_POTION3
+    CalcFlags:
+      Aspd: true
+    Flags:
+      OverlapIgnoreLevel: true
+  - Status: Aspdpotion3
+    Icon: EFST_ATTHASTE_INFINITY
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoClearance: true
+      OverlapIgnoreLevel: true
+  - Status: Speedup0
+    Icon: EFST_MOVHASTE_HORSE
+    CalcFlags:
+      Speed: true
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Speedup1
+    Icon: EFST_MOVHASTE_POTION
+    CalcFlags:
+      Speed: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Atkpotion
+    Icon: EFST_PLUSATTACKPOWER
+    CalcFlags:
+      Batk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearance: true
+      OverlapIgnoreLevel: true
+  - Status: Matkpotion
+    Icon: EFST_PLUSMAGICPOWER
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearance: true
+      OverlapIgnoreLevel: true
+  - Status: Wedding
+    States:
+      NoAttack: true
+    CalcFlags:
+      Speed: true
+    Options:
+      Wedding: true
+    Flags:
+      SendLook: true
+      StopAttacking: true
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Slowdown
+    CalcFlags:
+      Speed: true
+    Flags:
+      Debuff: true
+  - Status: Ankle
+    Icon: EFST_ANKLESNARE
+    DurationLookup: HT_ANKLESNARE
+    States:
+      NoMove: true
+    Flags:
+      NoClearbuff: true
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+    MinDuration: 5000
+  - Status: Keeping
+    DurationLookup: NPC_KEEPING
+    CalcFlags:
+      Def: true
+  - Status: Barrier
+    Icon: EFST_BARRIER
+    DurationLookup: NPC_BARRIER
+    CalcFlags:
+      Mdef: true
+      Def: true
+  - Status: Stripweapon
+    Icon: EFST_NOEQUIPWEAPON
+    DurationLookup: RG_STRIPWEAPON
+    CalcFlags:
+      Watk: true
+    Flags:
+      Debuff: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Stripshield
+    Icon: EFST_NOEQUIPSHIELD
+    DurationLookup: RG_STRIPSHIELD
+    CalcFlags:
+      Def: true
+    Flags:
+      Debuff: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Striparmor
+    Icon: EFST_NOEQUIPARMOR
+    DurationLookup: RG_STRIPARMOR
+    CalcFlags:
+      Vit: true
+    Flags:
+      Debuff: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Striphelm
+    Icon: EFST_NOEQUIPHELM
+    DurationLookup: RG_STRIPHELM
+    CalcFlags:
+      Int: true
+    Flags:
+      Debuff: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Cp_Weapon
+    Icon: EFST_PROTECTWEAPON
+    DurationLookup: AM_CP_WEAPON
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveChemicalProtect: true
+  - Status: Cp_Shield
+    Icon: EFST_PROTECTSHIELD
+    DurationLookup: AM_CP_SHIELD
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveChemicalProtect: true
+  - Status: Cp_Armor
+    Icon: EFST_PROTECTARMOR
+    DurationLookup: AM_CP_ARMOR
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveChemicalProtect: true
+  - Status: Cp_Helm
+    Icon: EFST_PROTECTHELM
+    DurationLookup: AM_CP_HELM
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveChemicalProtect: true
+  - Status: Autoguard
+    Icon: EFST_AUTOGUARD
+    DurationLookup: CR_AUTOGUARD
+    Flags:
+      NoClearance: true
+      RequireShield: true
+  - Status: Reflectshield
+    Icon: EFST_REFLECTSHIELD
+    DurationLookup: CR_REFLECTSHIELD
+    Flags:
+      NoClearance: true
+      RequireShield: true
+    End:
+      Reflectdamage: true
+  - Status: Splasher
+    Icon: EFST_SPLASHER
+    DurationLookup: AS_SPLASHER
+  - Status: Providence
+    Icon: EFST_PROVIDENCE
+    DurationLookup: CR_PROVIDENCE
+    CalcFlags:
+      All: true
+    Flags:
+      NoSave: true
+  - Status: Defender
+    Icon: EFST_DEFENDER
+    DurationLookup: CR_DEFENDER
+    CalcFlags:
+      Speed: true
+      Aspd: true
+    Flags:
+      RequireShield: true
+  - Status: Magicrod
+    Icon: EFST_MAGICROD
+    DurationLookup: SA_MAGICROD
+    Flags:
+      NoSave: true
+  - Status: Spellbreaker
+  - Status: Autospell
+    Icon: EFST_AUTOSPELL
+    DurationLookup: SA_AUTOSPELL
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoRemoveOnDead: true
+      NoClearance: true
+  - Status: Sighttrasher
+  - Status: Autoberserk
+    Icon: EFST_AUTOBERSERK
+    DurationLookup: SM_AUTOBERSERK
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Spearquicken
+    Icon: EFST_SPEARQUICKEN
+    DurationLookup: CR_SPEARQUICKEN
+    CalcFlags:
+      Aspd: true
+      Cri: true
+      Flee: true
+    Opt3:
+      Quicken: true
+    Flags:
+      FailedMado: true
+      RequireWeapon: true
+    Fail:
+      Quagmire: true
+  - Status: Autocounter
+    Icon: EFST_AUTOCOUNTER
+    DurationLookup: KN_AUTOCOUNTER
+    States:
+      NoAttack: true
+      NoMove: true
+      NoDropItem: true
+      NoInteract: true
+  - Status: Sight
+    DurationLookup: MG_SIGHT
+    Options:
+      Sight: true
+    Flags:
+      SendOption: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoSave: true
+  - Status: Safetywall
+    DurationLookup: MG_SAFETYWALL
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Ruwach
+    DurationLookup: AL_RUWACH
+    Options:
+      Ruwach: true
+    Flags:
+      SendOption: true
+  - Status: Extremityfist
+    DurationLookup: MO_EXTREMITYFIST
+    CalcFlags:
+      Regen: true
+    Flags:
+      Debuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Explosionspirits
+    Icon: EFST_EXPLOSIONSPIRITS
+    DurationLookup: MO_EXPLOSIONSPIRITS
+    CalcFlags:
+      Cri: true
+      Regen: true
+    Opt3:
+      ExplosionSpirits: true
+    Flags:
+      Debuff: true
+      NoClearance: true
+  - Status: Combo
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapIgnoreLevel: true
+  - Status: Bladestop_Wait
+    DurationLookup: MO_BLADESTOP
+    States:
+      NoMove: true
+    Flags:
+      RemoveOnChangeMap: true
+  - Status: Bladestop
+    Icon: EFST_BLADESTOP
+    DurationLookup: MO_BLADESTOP
+    States:
+      NoMove: true
+      NoPickItem: true
+      NoDropItem: true
+      NoAttack: true
+      NoInteract: true
+    Opt3:
+      BladeStop: true
+    Flags:
+      MobLoseTarget: true
+      NoClearbuff: true
+      NoSave: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+  - Status: Fireweapon
+    Icon: EFST_PROPERTYFIRE
+    DurationLookup: SA_FLAMELAUNCHER
+    CalcFlags:
+      Atk_Ele: true
+    Flags:
+      NoRemoveOnDead: true
+  - Status: Waterweapon
+    Icon: EFST_PROPERTYWATER
+    DurationLookup: SA_FROSTWEAPON
+    CalcFlags:
+      Atk_Ele: true
+    Flags:
+      NoRemoveOnDead: true
+  - Status: Windweapon
+    Icon: EFST_PROPERTYWIND
+    DurationLookup: SA_LIGHTNINGLOADER
+    CalcFlags:
+      Atk_Ele: true
+    Flags:
+      NoRemoveOnDead: true
+  - Status: Earthweapon
+    Icon: EFST_PROPERTYGROUND
+    DurationLookup: SA_SEISMICWEAPON
+    CalcFlags:
+      Atk_Ele: true
+    Flags:
+      NoRemoveOnDead: true
+  - Status: Volcano
+    Icon: EFST_GROUNDMAGIC
+    DurationLookup: SA_VOLCANO
+    CalcFlags:
+      Watk: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Deluge
+    Icon: EFST_GROUNDMAGIC
+    DurationLookup: SA_DELUGE
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Violentgale
+    Icon: EFST_GROUNDMAGIC
+    DurationLookup: SA_VIOLENTGALE
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Watk_Element
+    DurationLookup: MS_MAGNUM
+  - Status: Armor
+    DurationLookup: NPC_DEFENDER
+  - Status: Armor_Element_Water
+    Icon: EFST_RESIST_PROPERTY_WATER
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      OverlapIgnoreLevel: true
+  - Status: Nochat
+    States:
+      NoPickItem: true
+      NoPickItemCond: true
+      NoDropItem: true
+      NoDropItemCond: true
+      NoChat: true
+      NoChatCond: true
+      NoConsumeItem: true
+      NoConsumeItemCond: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      OverlapFail: true
+      NoClearance: true
+  - Status: Protectexp
+    Icon: EFST_PROTECTEXP
+    DurationLookup: WE_BABY
+    States:
+      NoDeathPenalty: true
+  - Status: Aurablade
+    Icon: EFST_AURABLADE
+    DurationLookup: LK_AURABLADE
+    Opt3:
+      AuraBlade: true
+    Flags:
+      NoSave: true
+      RequireWeapon: true
+  - Status: Parrying
+    Icon: EFST_PARRYING
+    DurationLookup: LK_PARRYING
+    Flags:
+      NoSave: true
+      NoClearance: true
+      RequireWeapon: true
+  - Status: Concentration
+    Icon: EFST_LKCONCENTRATION
+    DurationLookup: LK_CONCENTRATION
+    CalcFlags:
+      Batk: true
+      Watk: true
+      Hit: true
+      Def: true
+      Def2: true
+    Opt3:
+      Quicken: true
+    Flags:
+      NoSave: true
+  - Status: Tensionrelax
+    Icon: EFST_TENSIONRELAX
+    DurationLookup: LK_TENSIONRELAX
+    CalcFlags:
+      Regen: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Berserk
+    Icon: EFST_BERSERK
+    DurationLookup: LK_BERSERK
+    States:
+      NoCast: true
+      NoChat: true
+      NoEquipItem: true
+      NoUnEquipItem: true
+      NoConsumeItem: true
+    CalcFlags:
+      Def: true
+      Def2: true
+      Mdef: true
+      MDef2: true
+      Flee: true
+      Speed: true
+      Aspd: true
+      MaxHp: true
+      Regen: true
+    Opt3:
+      Berserk: true
+    Flags:
+      NoSave: true
+    Fail:
+      Saturdaynightfever: true
+      _Bloodylust: true
+  - Status: Fury
+  - Status: Gospel
+    Icon: EFST_GOSPEL
+    DurationLookup: PA_GOSPEL
+    States:
+      NoMove: true
+      NoMoveCond: true
+    CalcFlags:
+      Speed: true
+      Aspd: true
+    Flags:
+      NoSave: true
+  - Status: Assumptio
+    Icon: EFST_ASSUMPTIO
+    DurationLookup: HP_ASSUMPTIO
+    Opt3:
+      Assumptio: true
+    End:
+      Kyrie: true
+      Kaite: true
+  - Status: Basilica
+    DurationLookup: HP_BASILICA
+    States:
+      NoMove: true
+      NoMoveCond: true
+      NoAttack: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+  - Status: Guildaura
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Magicpower
+    Icon: EFST_MAGICPOWER
+    DurationLookup: HW_MAGICPOWER
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoSave: true
+    End:
+      Magicpower: true
+  - Status: Edp
+    Icon: EFST_EDP
+    DurationLookup: ASC_EDP
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoSave: true
+  - Status: Truesight
+    Icon: EFST_TRUESIGHT
+    DurationLookup: SN_SIGHT
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+      Cri: true
+      Hit: true
+    Flags:
+      FailedMado: true
+      NoSave: true
+    Fail:
+      Quagmire: true
+  - Status: Windwalk
+    Icon: EFST_WINDWALK
+    DurationLookup: SN_WINDWALK
+    CalcFlags:
+      Flee: true
+      Speed: true
+    Flags:
+      FailedMado: true
+      NoSave: true
+    Fail:
+      Quagmire: true
+  - Status: Meltdown
+    Icon: EFST_MELTDOWN
+    DurationLookup: WS_MELTDOWN
+    Flags:
+      MadoCancel: true
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Cartboost
+    Icon: EFST_CARTBOOST
+    DurationLookup: WS_CARTBOOST
+    CalcFlags:
+      Speed: true
+    Flags:
+      MadoCancel: true
+      NoRemoveOnDead: true
+      NoClearance: true
+      NoSave: true
+      NoBanishingBuster: true
+      NoDispell: true
+    Fail:
+      Quagmire: true
+      Dontforgetme: true
+    End:
+      Decreaseagi: true
+    EndReturn: true
+  - Status: Chasewalk
+    Icon: EFST_CHASEWALK
+    DurationLookup: ST_CHASEWALK
+    States:
+      NoPickItem: true
+    CalcFlags:
+      Speed: true
+    Options:
+      ChaseWalk: true
+      Cloak: true
+    Flags:
+      OnTouch: true
+      StopAttacking: true
+      RemoveOnDamaged: true
+      RemoveOnChangeMap: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Rejectsword
+    Icon: EFST_SWORDREJECT
+    DurationLookup: ST_REJECTSWORD
+  - Status: Marionette
+    Icon: EFST_MARIONETTE_MASTER
+    DurationLookup: CG_MARIONETTE
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    Opt3:
+      Marionette: true
+    Flags:
+      RemoveOnChangeMap: true
+      OverlapFail: true
+  - Status: Marionette2
+    Icon: EFST_MARIONETTE
+    DurationLookup: CG_MARIONETTE
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    Opt3:
+      Marionette: true
+    Flags:
+      RemoveOnChangeMap: true
+      OverlapFail: true
+  - Status: Changeundead
+    Icon: EFST_PROPERTYUNDEAD
+    DurationLookup: NPC_CHANGEUNDEAD
+    CalcFlags:
+      Def_Ele: true
+    Opt3:
+      Undead: true
+    Flags:
+      Debuff: true
+      NoClearance: true
+    End:
+      Blessing: true
+      Increaseagi: true
+  - Status: Jointbeat
+    Icon: EFST_JOINTBEAT
+    DurationLookup: LK_JOINTBEAT
+    CalcFlags:
+      Batk: true
+      Def2: true
+      Speed: true
+      Aspd: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+      Debuff: true
+  - Status: Mindbreaker
+    Icon: EFST_MINDBREAKER
+    DurationLookup: PF_MINDBREAKER
+    CalcFlags:
+      Matk: true
+      MDef2: true
+    Flags:
+      NoSave: true
+      Debuff: true
+  - Status: Memorize
+    Icon: EFST_MEMORIZE
+    DurationLookup: PF_MEMORIZE
+    Flags:
+      NoSave: true
+  - Status: Fogwall
+    Icon: EFST_FOGWALL
+    DurationLookup: PF_FOGWALL
+    Flags:
+      BossResist: true
+      NoSave: true
+      NoClearance: true
+  - Status: Spiderweb
+    Icon: EFST_SPIDERWEB
+    DurationLookup: PF_SPIDERWEB
+    CalcFlags:
+      Flee: true
+    Flags:
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+      Debuff: true
+  - Status: Devotion
+    Icon: EFST_DEVOTION
+    DurationLookup: CR_DEVOTION
+    Flags:
+      NoSave: true
+      RemoveOnChangeMap: true
+      OverlapIgnoreLevel: true
+  - Status: Sacrifice
+    DurationLookup: PA_SACRIFICE
+  - Status: Steelbody
+    Icon: EFST_STEELBODY
+    DurationLookup: MO_STEELBODY
+    States:
+      NoCast: true
+    CalcFlags:
+      Def: true
+      Mdef: true
+      Aspd: true
+      Speed: true
+    Opt3:
+      SteelBody: true
+  - Status: Orcish
+    DurationLookup: SA_REVERSEORCISH
+    Flags:
+      Debuff: true
+    Options:
+      Orcish: true
+    Flags:
+      SendOption: true
+  - Status: Readystorm
+    Icon: EFST_STORMKICK_ON
+    DurationLookup: TK_READYSTORM
+    Flags:
+      NoRemoveOnDead: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Readydown
+    Icon: EFST_DOWNKICK_ON
+    DurationLookup: TK_READYDOWN
+    Flags:
+      NoRemoveOnDead: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Readyturn
+    Icon: EFST_TURNKICK_ON
+    DurationLookup: TK_READYTURN
+    Flags:
+      NoRemoveOnDead: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Readycounter
+    Icon: EFST_COUNTER_ON
+    DurationLookup: TK_READYCOUNTER
+    Flags:
+      NoRemoveOnDead: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Dodge
+    Icon: EFST_DODGE_ON
+    DurationLookup: TK_DODGE
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Run
+    Icon: EFST_RUN
+    DurationLookup: TK_RUN
+    CalcFlags:
+      Speed: true
+      Dspd: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+  - Status: Shadowweapon
+    Icon: EFST_PROPERTYDARK
+    DurationLookup: TK_SEVENWIND
+    CalcFlags:
+      Atk_Ele: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Adrenaline2
+    Icon: EFST_ADRENALINE2
+    DurationLookup: BS_ADRENALINE2
+    CalcFlags:
+      Aspd: true
+    Flags:
+      MadoCancel: true
+      NoSave: true
+      RequireWeapon: true
+    Fail:
+      Quagmire: true
+      Decreaseagi: true
+  - Status: Ghostweapon
+    Icon: EFST_PROPERTYTELEKINESIS
+    DurationLookup: TK_SEVENWIND
+    CalcFlags:
+      Atk_Ele: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Kaizel
+    Icon: EFST_KAIZEL
+    DurationLookup: SL_KAIZEL
+  - Status: Kaahi
+    Icon: EFST_KAAHI
+    DurationLookup: SL_KAAHI
+    Flags:
+      NoSave: true
+      NoClearance: true
+    End:
+      Kaahi: true
+  - Status: Kaupe
+    Icon: EFST_KAUPE
+    DurationLookup: SL_KAUPE
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Onehand
+    Icon: EFST_ONEHANDQUICKEN
+    DurationLookup: KN_ONEHAND
+    CalcFlags:
+      Aspd: true
+    Opt3:
+      Quicken: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+      RequireWeapon: true
+    Fail:
+      Decreaseagi: true
+    End:
+      Aspdpotion0: true
+      Aspdpotion1: true
+      Aspdpotion2: true
+      Aspdpotion3: true
+  - Status: Preserve
+    Icon: EFST_PRESERVE
+    DurationLookup: ST_PRESERVE
+    Flags:
+      NoSave: true
+  - Status: Battleorders
+    Icon: EFST_GDSKILL_BATTLEORDER
+    DurationLookup: GD_BATTLEORDER
+    CalcFlags:
+      Str: true
+      Int: true
+      Dex: true
+  - Status: Regeneration
+    Icon: EFST_GDSKILL_REGENERATION
+    DurationLookup: GD_REGENERATION
+    CalcFlags:
+      Regen: true
+    Flags:
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+      NoSaveInfinite: true
+  - Status: Doublecast
+    Icon: EFST_DOUBLECASTING
+    DurationLookup: PF_DOUBLECASTING
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Gravitation
+    Icon: EFST_GRAVITATION
+    DurationLookup: HW_GRAVITATION
+    States:
+      NoMove: true
+      NoMoveCond: true
+      NoConsumeItem: true
+      NoConsumeItemCond: true
+    CalcFlags:
+      Aspd: true
+    Flags:
+      BossResist: true
+      NoSave: true
+      NoClearance: true
+  - Status: Maxoverthrust
+    Icon: EFST_OVERTHRUSTMAX
+    DurationLookup: WS_OVERTHRUSTMAX
+    Opt3:
+      OverThrust: true
+    Flags:
+      MadoCancel: true
+      NoSave: true
+    End:
+      Overthrust: true
+  - Status: Longing
+    Icon: EFST_LONGING
+    DurationLookup: CG_LONGINGFREEDOM
+    CalcFlags:
+      Speed: true
+      Aspd: true
+  - Status: Hermode
+    Icon: EFST_HERMODE
+    DurationLookup: CG_HERMODE
+  - Status: Shrink
+    Icon: EFST_CR_SHRINK
+    DurationLookup: CR_SHRINK
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoSave: true
+  - Status: Sightblaster
+    Icon: EFST_WZ_SIGHTBLASTER
+    DurationLookup: WZ_SIGHTBLASTER
+    Options:
+      Sight: true
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Winkcharm
+    Icon: EFST_DC_WINKCHARM
+    DurationLookup: DC_WINKCHARM
+    Flags:
+      RemoveOnDamaged: true
+      Debuff: true
+  - Status: Closeconfine
+    Icon: EFST_RG_CCONFINE_M
+    DurationLookup: RG_CLOSECONFINE
+    States:
+      NoMove: true
+    CalcFlags:
+      Flee: true
+    Flags:
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      NoRemoveOnDead: true
+      RemoveOnChangeMap: true
+  - Status: Closeconfine2
+    Icon: EFST_RG_CCONFINE_S
+    DurationLookup: RG_CLOSECONFINE
+    States:
+      NoMove: true
+    Flags:
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      NoRemoveOnDead: true
+      RemoveOnChangeMap: true
+      OverlapFail: true
+  - Status: Dancing
+    Icon: EFST_BDPLAYING
+    DurationLookup: BD_ENCORE
+    States:
+      NoMove: true
+      NoMoveCond: true
+    CalcFlags:
+      Speed: true
+      Regen: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+      RequireWeapon: true
+      OverlapIgnoreLevel: true
+  - Status: Elementalchange
+    Icon: EFST_ARMOR_PROPERTY
+    DurationLookup: NPC_ATTRICHANGE
+    CalcFlags:
+      Def_Ele: true
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Richmankim
+    Icon: EFST_RICHMANKIM
+    DurationLookup: BD_RICHMANKIM
+    Flags:
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Eternalchaos
+    Icon: EFST_ETERNALCHAOS
+    DurationLookup: BD_ETERNALCHAOS
+    CalcFlags:
+      Def2: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Drumbattle
+    Icon: EFST_DRUMBATTLEFIELD
+    DurationLookup: BD_DRUMBATTLEFIELD
+    CalcFlags:
+      Watk: true
+      Def: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Nibelungen
+    Icon: EFST_RINGNIBELUNGEN
+    DurationLookup: BD_RINGNIBELUNGEN
+    CalcFlags:
+      Watk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Rokisweil
+    Icon: EFST_ROKISWEIL
+    DurationLookup: BD_ROKISWEIL
+    Flags:
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Intoabyss
+    Icon: EFST_INTOABYSS
+    DurationLookup: BD_INTOABYSS
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Siegfried
+    Icon: EFST_SIEGFRIED
+    DurationLookup: BD_SIEGFRIED
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Whistle
+    Icon: EFST_WHISTLE
+    DurationLookup: BA_WHISTLE
+    CalcFlags:
+      Flee: true
+      Flee2: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearance: true
+  - Status: Assncros
+    Icon: EFST_ASSASSINCROSS
+    DurationLookup: BA_ASSASSINCROSS
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoRemoveOnDead: true
+      FailedMado: true
+      NoClearance: true
+    Fail:
+      Quagmire: true
+  - Status: Poembragi
+    Icon: EFST_POEMBRAGI
+    DurationLookup: BA_POEMBRAGI
+    Flags:
+      NoRemoveOnDead: true
+      NoClearance: true
+  - Status: Appleidun
+    Icon: EFST_APPLEIDUN
+    DurationLookup: BA_APPLEIDUN
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearance: true
+  - Status: Modechange
+    DurationLookup: NPC_EMOTION
+    CalcFlags:
+      Mode: true
+  - Status: Humming
+    Icon: EFST_HUMMING
+    DurationLookup: DC_HUMMING
+    CalcFlags:
+      Hit: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearance: true
+  - Status: Dontforgetme
+    Icon: EFST_DONTFORGETME
+    DurationLookup: DC_DONTFORGETME
+    CalcFlags:
+      Speed: true
+      Aspd: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearance: true
+    Fail:
+      Speedup1: true
+    End:
+      Increaseagi: true
+      Adrenaline: true
+      Adrenaline2: true
+      Spearquicken: true
+      Twohandquicken: true
+      Onehand: true
+      Merc_Quicken: true
+      Acceleration: true
+  - Status: Fortune
+    Icon: EFST_FORTUNEKISS
+    DurationLookup: DC_FORTUNEKISS
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearance: true
+  - Status: Service4u
+    Icon: EFST_SERVICEFORYOU
+    DurationLookup: DC_SERVICEFORYOU
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearance: true
+  - Status: Stop
+    Icon: EFST_STOP
+    DurationLookup: NPC_STOP
+    States:
+      NoMove: true
+    Flags:
+      StopWalking: true
+      NoSave: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+      Debuff: true
+  - Status: Spurt
+    Icon: EFST_STRUP
+    DurationLookup: TK_RUN
+    CalcFlags:
+      Str: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+      RequireWeapon: true
+  - Status: Spirit
+    Icon: EFST_SOULLINK
+    DurationLookup: SL_HIGH
+    CalcFlags:
+      All: true
+    Opt3:
+      SoulLink: true
+    Flags:
+      NoClearance: true
+      NoSave: true
+      NoBanishingBuster: true
+  - Status: Coma
+    DurationLookup: NPC_DARKBLESSING
+    Flags:
+      BossResist: true
+      MvpResist: true
+  - Status: Intravision
+    Icon: EFST_CLAIRVOYANCE
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incallstatus
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Incstr
+    CalcFlags:
+      Str: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Incagi
+    CalcFlags:
+      Agi: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incvit
+    CalcFlags:
+      Vit: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incint
+    CalcFlags:
+      Int: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incdex
+    CalcFlags:
+      Dex: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incluk
+    CalcFlags:
+      Luk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Inchit
+    CalcFlags:
+      Hit: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Inchitrate
+    DurationLookup: NPC_POWERUP
+    CalcFlags:
+      Hit: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incflee
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incfleerate
+    DurationLookup: NPC_AGIUP
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incmhprate
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incmsprate
+    CalcFlags:
+      MaxSp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incatkrate
+    CalcFlags:
+      Batk: true
+      Watk: true
+    Opt3:
+      ExplosionSpirits: true
+    Flags:
+      SendOption: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incmatkrate
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incdefrate
+    CalcFlags:
+      Def: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Strfood
+    Icon: EFST_FOOD_STR
+    CalcFlags:
+      Str: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Food_Str_Cash: true
+  - Status: Agifood
+    Icon: EFST_FOOD_AGI
+    CalcFlags:
+      Agi: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Food_Agi_Cash: true
+  - Status: Vitfood
+    Icon: EFST_FOOD_VIT
+    CalcFlags:
+      Vit: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Food_Vit_Cash: true
+  - Status: Intfood
+    Icon: EFST_FOOD_INT
+    CalcFlags:
+      Int: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Food_Int_Cash: true
+  - Status: Dexfood
+    Icon: EFST_FOOD_DEX
+    CalcFlags:
+      Dex: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Food_Dex_Cash: true
+  - Status: Lukfood
+    Icon: EFST_FOOD_LUK
+    CalcFlags:
+      Luk: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Food_Luk_Cash: true
+  - Status: Hitfood
+    Icon: EFST_FOOD_BASICHIT
+    CalcFlags:
+      Hit: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Fleefood
+    Icon: EFST_FOOD_BASICAVOIDANCE
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Batkfood
+    CalcFlags:
+      Batk: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Watkfood
+    CalcFlags:
+      Watk: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Matkfood
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Scresist
+    DurationLookup: PA_GOSPEL
+  - Status: Xmas
+    States:
+      NoAttack: true
+    Options:
+      Xmas: true
+    Flags:
+      SendLook: true
+      StopAttacking: true
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Warm
+    Icon: EFST_SG_SUN_WARM
+    DurationLookup: SG_SUN_WARM
+    Opt3:
+      Warm: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+      RemoveOnMapWarp: true
+  - Status: Sun_Comfort
+    Icon: EFST_SUN_COMFORT
+    DurationLookup: SG_SUN_COMFORT
+    CalcFlags:
+      Def2: true
+    Flags:
+      RemoveOnMapWarp: true
+  - Status: Moon_Comfort
+    Icon: EFST_MOON_COMFORT
+    DurationLookup: SG_MOON_COMFORT
+    CalcFlags:
+      Flee: true
+    Flags:
+      RemoveOnMapWarp: true
+  - Status: Star_Comfort
+    Icon: EFST_STAR_COMFORT
+    DurationLookup: SG_STAR_COMFORT
+    CalcFlags:
+      Aspd: true
+    Flags:
+      RemoveOnMapWarp: true
+  - Status: Fusion
+    DurationLookup: SG_FUSION
+    CalcFlags:
+      Speed: true
+    Options:
+      Flying: true
+    Flags:
+      SendOption: true
+      NoRemoveOnDead: true
+    End:
+      Spirit: true
+  - Status: Skillrate_Up
+    DurationLookup: SG_FRIEND
+  - Status: Ske
+    DurationLookup: SL_SKE
+    CalcFlags:
+      Batk: true
+      Watk: true
+      Def: true
+      Def2: true
+    Opt3:
+      EnergyCoat: true
+  - Status: Kaite
+    Icon: EFST_KAITE
+    DurationLookup: SL_KAITE
+    Opt3:
+      Kaite: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+    End:
+      Assumptio: true
+  - Status: Swoo
+    Icon: EFST_SWOO
+    DurationLookup: SL_SWOO
+    CalcFlags:
+      Speed: true
+    Opt3:
+      OverThrust: true
+    Flags:
+      NonPlayer: true
+  - Status: Ska
+    DurationLookup: SL_SKA
+    CalcFlags:
+      Def2: true
+      MDef2: true
+      Speed: true
+      Aspd: true
+    Opt3:
+      SteelBody: true
+    Flags:
+      NonPlayer: true
+  - Status: Earthscroll
+    Icon: EFST_EARTHSCROLL
+    DurationLookup: TK_SPTIME
+    CalcFlags:
+      Def: true
+      Mdef: true
+      Aspd: true
+    Flags:
+      NoRemoveOnDead: true
+  - Status: Miracle
+    Icon: EFST_SOULLINK
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      RemoveOnMapWarp: true
+      NoRemoveOnDead: true
+      NoClearance: true
+  - Status: Madnesscancel
+    Icon: EFST_GS_MADNESSCANCEL
+    DurationLookup: GS_MADNESSCANCEL
+    States:
+      NoMove: true
+    CalcFlags:
+      Batk: true
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+    Fail:
+      P_Alter: true
+      Heat_Barrel: true
+    End:
+      Adjustment: true
+  - Status: Adjustment
+    Icon: EFST_GS_ADJUSTMENT
+    DurationLookup: GS_ADJUSTMENT
+    CalcFlags:
+      Hit: true
+      Flee: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+    End:
+      Madnesscancel: true
+  - Status: Increasing
+    Icon: EFST_GS_ACCURACY
+    DurationLookup: GS_INCREASING
+    CalcFlags:
+      Agi: true
+      Dex: true
+      Hit: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Gatlingfever
+    Icon: EFST_GS_GATLINGFEVER
+    DurationLookup: GS_GATLINGFEVER
+    CalcFlags:
+      Flee: true
+      Speed: true
+      Aspd: true
+      Batk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      RequireWeapon: true
+  - Status: Tatamigaeshi
+    DurationLookup: NJ_TATAMIGAESHI
+  - Status: Utsusemi
+    Icon: EFST_NJ_UTSUSEMI
+    DurationLookup: NJ_UTSUSEMI
+    Flags:
+      NoSave: true
+      NoClearance: true
+      NoBanishingBuster: true
+      NoDispell: true
+  - Status: Bunsinjyutsu
+    Icon: EFST_NJ_BUNSINJYUTSU
+    DurationLookup: NJ_BUNSINJYUTSU
+    CalcFlags:
+      Dye: true
+    Opt3:
+      Bunsin: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Kaensin
+  - Status: Suiton
+    Icon: EFST_NJ_SUITON
+    DurationLookup: NJ_SUITON
+    CalcFlags:
+      Agi: true
+      Speed: true
+    Flags:
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      NoRemoveOnDead: true
+      Debuff: true
+  - Status: Nen
+    Icon: EFST_NJ_NEN
+    DurationLookup: NJ_NEN
+    CalcFlags:
+      Str: true
+      Int: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Knowledge
+    DurationLookup: SG_KNOWLEDGE
+    CalcFlags:
+      All: true
+    Flags:
+      RestartOnMapWarp: true
+  - Status: Sma
+    Icon: EFST_SMA_READY
+    DurationLookup: SL_SMA
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Fling
+    DurationLookup: GS_FLING
+    CalcFlags:
+      Def: true
+      Def2: true
+  - Status: Avoid
+    DurationLookup: HLIF_AVOID
+    CalcFlags:
+      Speed: true
+  - Status: Change
+    DurationLookup: HLIF_CHANGE
+    CalcFlags:
+      Vit: true
+      Int: true
+    Flags:
+      RemoveOnChangeMap: true
+    Fail:
+      Change: true
+  - Status: Bloodlust
+    DurationLookup: HAMI_BLOODLUST
+    CalcFlags:
+      Batk: true
+      Watk: true
+  - Status: Fleet
+    DurationLookup: HFLI_FLEET
+    CalcFlags:
+      Aspd: true
+      Batk: true
+      Watk: true
+  - Status: Speed
+    DurationLookup: HFLI_SPEED
+    CalcFlags:
+      Flee: true
+  - Status: Defence
+    DurationLookup: HAMI_DEFENCE
+    CalcFlags:
+      Def: true
+  - Status: Incaspdrate
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incflee2
+    Icon: EFST_PLUSAVOIDVALUE
+    CalcFlags:
+      Flee2: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Jailed
+    States:
+      NoWarp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Enchantarms
+    Icon: EFST_WEAPONPROPERTY
+    DurationLookup: ITEM_ENCHANTARMS
+    CalcFlags:
+      Atk_Ele: true
+    Flags:
+      SendVal1: true
+      OverlapIgnoreLevel: true
+  - Status: Magicalattack
+    DurationLookup: NPC_MAGICALATTACK
+    CalcFlags:
+      Matk: true
+  - Status: Armorchange
+    DurationLookup: NPC_STONESKIN
+    CalcFlags:
+      Def: true
+      Mdef: true
+  - Status: Criticalwound
+    Icon: EFST_CRITICALWOUND
+    DurationLookup: NPC_CRITICALWOUND
+    Flags:
+      Debuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Magicmirror
+    DurationLookup: NPC_MAGICMIRROR
+  - Status: Slowcast
+    Icon: EFST_SLOWCAST
+    DurationLookup: NPC_SLOWCAST
+    Flags:
+      Debuff: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Summer
+    States:
+      NoAttack: true
+    Options:
+      Summer: true
+    Flags:
+      SendLook: true
+      StopAttacking: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Expboost
+    Icon: EFST_CASH_PLUSEXP
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Itemboost
+    Icon: EFST_CASH_RECEIVEITEM
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Bossmapinfo
+    Icon: EFST_CASH_BOSS_ALARM
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveOnMapWarp: true
+      OverlapFail: true
+  - Status: Lifeinsurance
+    Icon: EFST_CASH_DEATHPENALTY
+    States:
+      NoDeathPenalty: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Inccri
+    Icon: EFST_CRITICALPERCENT
+    CalcFlags:
+      Cri: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  #- Status: Incdef
+  #- Status: Incbaseatk
+  #- Status: Fastcast
+  - Status: Mdef_Rate
+    Icon: EFST_PROTECT_MDEF
+    CalcFlags:
+      Mdef: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  #- Status: Hpregen
+  - Status: Inchealrate
+    Icon: EFST_HEALPLUS
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Pneuma
+    DurationLookup: AL_PNEUMA
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Autotrade
+    Flags:
+      NoRemoveOnDead: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Ksprotected
+  - Status: Armor_Resist
+    CalcFlags:
+      All: true
+    Flags:
+      OverlapIgnoreLevel: true
+  - Status: Spcost_Rate
+    Icon: EFST_ATKER_BLOOD
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Commonsc_Resist
+    Icon: EFST_TARGET_BLOOD
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Sevenwind
+    DurationLookup: TK_SEVENWIND
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Def_Rate
+    Icon: EFST_PROTECT_DEF
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  #- Status: Spregen
+  - Status: Walkspeed
+    CalcFlags:
+      Speed: true
+  - Status: Merc_Fleeup
+    Icon: EFST_MER_FLEE
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Merc_Atkup
+    Icon: EFST_MER_ATK
+    CalcFlags:
+      Watk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Merc_Hpup
+    Icon: EFST_MER_HP
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Merc_Spup
+    Icon: EFST_MER_SP
+    CalcFlags:
+      MaxSp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Merc_Hitup
+    Icon: EFST_MER_HIT
+    CalcFlags:
+      Hit: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Merc_Quicken
+    DurationLookup: MER_QUICKEN
+    CalcFlags:
+      Aspd: true
+    Opt3:
+      Quicken: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Decreaseagi: true
+  - Status: Rebirth
+    DurationLookup: NPC_REBIRTH
+  #- Status: Skillcastrate
+  #- Status: Defratioatk
+  #- Status: Hpdrain
+  #- Status: Skillatkbonus
+  - Status: Itemscript
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: S_Lifepotion
+    Icon: EFST_S_LIFEPOTION
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+      NoRemoveOnDead: true
+  - Status: L_Lifepotion
+    Icon: EFST_L_LIFEPOTION
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+      NoRemoveOnDead: true
+  - Status: Jexpboost
+    Icon: EFST_CASH_PLUSONLYJOBEXP
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+  #- Status: Ignoredef
+  - Status: Hellpower
+    Icon: EFST_HELLPOWER
+    DurationLookup: NPC_HELLPOWER
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Invincible
+    Icon: EFST_INVINCIBLE
+    DurationLookup: NPC_INVINCIBLE
+    CalcFlags:
+      Speed: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Invincibleoff: true
+  - Status: Invincibleoff
+    DurationLookup: NPC_INVINCIBLEOFF
+    CalcFlags:
+      Speed: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Invincible: true
+  - Status: Manu_Atk
+    Icon: EFST_MANU_ATK
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Manu_Def
+    Icon: EFST_MANU_DEF
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Spl_Atk
+    Icon: EFST_SPL_ATK
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Spl_Def
+    Icon: EFST_SPL_DEF
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Manu_Matk
+    Icon: EFST_MANU_MATK
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Spl_Matk
+    Icon: EFST_SPL_MATK
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Food_Str_Cash
+    Icon: EFST_FOOD_STR_CASH
+    CalcFlags:
+      Str: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Strfood: true
+  - Status: Food_Agi_Cash
+    Icon: EFST_FOOD_AGI_CASH
+    CalcFlags:
+      Agi: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Agifood: true
+  - Status: Food_Vit_Cash
+    Icon: EFST_FOOD_VIT_CASH
+    CalcFlags:
+      Vit: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Vitfood: true
+  - Status: Food_Dex_Cash
+    Icon: EFST_FOOD_DEX_CASH
+    CalcFlags:
+      Dex: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Intfood: true
+  - Status: Food_Int_Cash
+    Icon: EFST_FOOD_INT_CASH
+    CalcFlags:
+      Int: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Dexfood: true
+  - Status: Food_Luk_Cash
+    Icon: EFST_FOOD_LUK_CASH
+    CalcFlags:
+      Luk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Lukfood: true
+  - Status: Fear
+    DurationLookup: RK_WINDCUTTER
+    States:
+      NoMove: true
+      NoMoveCond: true
+    CalcFlags:
+      Flee: true
+      Hit: true
+    Flags:
+      BossResist: true
+      StopWalking: true
+      OverlapFail: true
+      Debuff: true
+    Fail:
+      Inspiration: true
+    End:
+      Blind: true
+  - Status: Burning
+    Icon: EFST_BURNT
+    DurationLookup: RK_DRAGONBREATH
+    Opt1: Burning
+    Flags:
+      SendOption: true
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      Debuff: true
+      OverlapFail: true
+    MinDuration: 10000
+    Fail:
+      Refresh: true
+      Inspiration: true
+    CalcFlags:
+      Mdef: true
+  - Status: Freezing
+    Icon: EFST_FROSTMISTY
+    DurationLookup: WL_FROSTMISTY
+    CalcFlags:
+      Aspd: true
+      Speed: true
+      Def: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+    MinDuration: 6000
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Warmer: true
+    End:
+      Burning: true
+  - Status: Enchantblade
+    Icon: EFST_ENCHANTBLADE
+    DurationLookup: RK_ENCHANTBLADE
+  - Status: Deathbound
+    Icon: EFST_DEATHBOUND
+    DurationLookup: RK_DEATHBOUND
+    States:
+      NoCast: true
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Millenniumshield
+    Icon: EFST_REUSE_MILLENNIUMSHIELD
+    DurationLookup: RK_MILLENNIUMSHIELD
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Crushstrike
+    Icon: EFST_CRUSHSTRIKE
+    DurationLookup: RK_CRUSHSTRIKE
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+  - Status: Refresh
+    Icon: EFST_REFRESH
+    DurationLookup: RK_REFRESH
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoSave: true
+  - Status: Reuse_Refresh
+    Icon: EFST_REUSE_REFRESH
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Giantgrowth
+    Icon: EFST_GIANTGROWTH
+    DurationLookup: RK_GIANTGROWTH
+    CalcFlags:
+      Str: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Stonehardskin
+    Icon: EFST_STONEHARDSKIN
+    DurationLookup: RK_STONEHARDSKIN
+    CalcFlags:
+      Def: true
+      Mdef: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoRemoveOnDead: true
+      NoSave: true
+  - Status: Vitalityactivation
+    Icon: EFST_VITALITYACTIVATION
+    DurationLookup: RK_VITALITYACTIVATION
+    CalcFlags:
+      Regen: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Stormblast
+    Icon: EFST_REUSE_STORMBLAST
+    DurationLookup: RK_VITALITYACTIVATION
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoRemoveOnDead: true
+  - Status: Fightingspirit
+    Icon: EFST_FIGHTINGSPIRIT
+    DurationLookup: RK_FIGHTINGSPIRIT
+    CalcFlags:
+      Watk: true
+      Aspd: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Fightingspirit: true
+  - Status: Abundance
+    Icon: EFST_ABUNDANCE
+    DurationLookup: RK_ABUNDANCE
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Adoramus
+    Icon: EFST_ADORAMUS
+    DurationLookup: AB_ADORAMUS
+    CalcFlags:
+      Agi: true
+      Speed: true
+    Flags:
+      BossResist: true
+      Debuff: true
+    End:
+      Decreaseagi: true
+  - Status: Epiclesis
+    Icon: EFST_EPICLESIS
+    DurationLookup: AB_EPICLESIS
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Oratio
+    Icon: EFST_ORATIO
+    DurationLookup: AB_ORATIO
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Laudaagnus
+    Icon: EFST_LAUDAAGNUS
+    DurationLookup: AB_LAUDAAGNUS
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Laudaramus
+    Icon: EFST_LAUDARAMUS
+    DurationLookup: AB_LAUDARAMUS
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Renovatio
+    Icon: EFST_RENOVATIO
+    DurationLookup: AB_RENOVATIO
+    CalcFlags:
+      Regen: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Expiatio
+    Icon: EFST_EXPIATIO
+    DurationLookup: AB_EXPIATIO
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Duplelight
+    Icon: EFST_DUPLELIGHT
+    DurationLookup: AB_DUPLELIGHT
+    Flags:
+      DisplayPc: true
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Secrament
+    Icon: EFST_AB_SECRAMENT
+    DurationLookup: AB_SECRAMENT
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Whiteimprison
+    DurationLookup: WL_WHITEIMPRISON
+    States:
+      NoMove: true
+      NoCast: true
+    Opt1: Imprison
+    Flags:
+      SendOption: true
+      BossResist: true
+      SetStand: true
+      StopWalking: true
+      StopAttacking: true
+      OverlapFail: true
+    End:
+      Dancing: true
+      Burning: true
+      Freezing: true
+      Freeze: true
+      Stone: true
+  - Status: Marshofabyss
+    Icon: EFST_MARSHOFABYSS
+    DurationLookup: WL_MARSHOFABYSS
+    CalcFlags:
+      Agi: true
+      Dex: true
+      Speed: true
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+    MinDuration: 5000
+    Fail:
+      Refresh: true
+    End:
+      Increaseagi: true
+      Windwalk: true
+      Aspdpotion0: true
+      Aspdpotion1: true
+      Aspdpotion2: true
+      Aspdpotion3: true
+  - Status: Recognizedspell
+    Icon: EFST_RECOGNIZEDSPELL
+    DurationLookup: WL_RECOGNIZEDSPELL
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Stasis
+    Icon: EFST_STASIS
+    DurationLookup: WL_STASIS
+    MinDuration: 10000
+  - Status: Sphere_1
+    Icon: EFST_SUMMON1
+    Flags:
+      DisplayPc: true
+      NoClearance: true
+  - Status: Sphere_2
+    Icon: EFST_SUMMON2
+    Flags:
+      DisplayPc: true
+      NoClearance: true
+  - Status: Sphere_3
+    Icon: EFST_SUMMON3
+    Flags:
+      DisplayPc: true
+      NoClearance: true
+  - Status: Sphere_4
+    Icon: EFST_SUMMON4
+    Flags:
+      DisplayPc: true
+      NoClearance: true
+  - Status: Sphere_5
+    Icon: EFST_SUMMON5
+    Flags:
+      DisplayPc: true
+      NoClearance: true
+  - Status: Reading_Sb
+  - Status: Freeze_Sp
+    Icon: EFST_FREEZE_SP
+    Flags:
+      BlEffect: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      NoRemoveOnDead: true
+  - Status: Fearbreeze
+    Icon: EFST_FEARBREEZE
+    DurationLookup: RA_FEARBREEZE
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Electricshocker
+    Icon: EFST_ELECTRICSHOCKER
+    DurationLookup: RA_ELECTRICSHOCKER
+    States:
+      NoMove: true
+    Flags:
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoSave: true
+      OverlapFail: true
+      NoClearance: true
+  - Status: Wugdash
+    Icon: EFST_WUGDASH
+    DurationLookup: RA_WUGDASH
+    CalcFlags:
+      Speed: true
+      Dspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      RemoveOnChangeMap: true
+  - Status: Bite
+    Icon: EFST_WUGBITE
+    DurationLookup: RA_WUGBITE
+    States:
+      NoMove: true
+    Flags:
+      BossResist: true
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      Debuff: true
+    MinRate: 5000
+  - Status: Camouflage
+    Icon: EFST_CAMOUFLAGE
+    DurationLookup: RA_CAMOUFLAGE
+    States:
+      NoMove: true
+      NoMoveCond: true
+    CalcFlags:
+      Speed: true
+    Flags:
+      DisplayPc: true
+      OnTouch: true
+      StopAttacking: true
+      RemoveOnDamaged: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      RemoveOnChangeMap: true
+  - Status: Acceleration
+    Icon: EFST_ACCELERATION
+    DurationLookup: NC_ACCELERATION
+    CalcFlags:
+      Speed: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Hovering
+    Icon: EFST_HOVERING
+    DurationLookup: NC_HOVERING
+    CalcFlags:
+      Speed: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Shapeshift
+    Icon: EFST_SHAPESHIFT
+    DurationLookup: NC_SHAPESHIFT
+    CalcFlags:
+      Def_Ele: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Infraredscan
+    Icon: EFST_INFRAREDSCAN
+    DurationLookup: NC_INFRAREDSCAN
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Analyze
+    Icon: EFST_ANALYZE
+    DurationLookup: NC_ANALYZE
+    CalcFlags:
+      Def: true
+      Def2: true
+      Mdef: true
+      MDef2: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Magneticfield
+    Icon: EFST_MAGNETICFIELD
+    DurationLookup: NC_MAGNETICFIELD
+    States:
+      NoMove: true
+    Flags:
+      BossResist: true
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      Debuff: true
+    Fail:
+      Hovering: true
+  - Status: Neutralbarrier
+    Icon: EFST_NEUTRALBARRIER
+    DurationLookup: NC_NEUTRALBARRIER
+    CalcFlags:
+      Def: true
+      Mdef: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Neutralbarrier_Master
+    Icon: EFST_NEUTRALBARRIER_MASTER
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      RemoveOnChangeMap: true
+  - Status: Stealthfield
+    Icon: EFST_STEALTHFIELD
+    DurationLookup: NC_STEALTHFIELD
+    Flags:
+      DisplayPc: true
+      OnTouch: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      StopAttacking: true
+    CalcFlags:
+      Speed: true
+  - Status: Stealthfield_Master
+    Icon: EFST_STEALTHFIELD_MASTER
+    CalcFlags:
+      Speed: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      RemoveOnChangeMap: true
+  - Status: Overheat
+    Icon: EFST_OVERHEAT
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Overheat_Limitpoint
+    Icon: EFST_OVERHEAT_LIMITPOINT
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Venomimpress
+    Icon: EFST_VENOMIMPRESS
+    DurationLookup: GC_VENOMIMPRESS
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Poisoningweapon
+    Icon: EFST_POISONINGWEAPON
+    DurationLookup: GC_POISONINGWEAPON
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Weaponblocking
+    Icon: EFST_WEAPONBLOCKING
+    DurationLookup: GC_WEAPONBLOCKING
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  #- Status: Weaponblocking_Postdelay
+  #  Icon: EFST_WEAPONBLOCKING_POSTDELAY
+  #  Flags:
+  #    NoDispell: true
+  #    NoBanishingBuster: true
+  #    NoClearance: true
+  #    NoRemoveOnDead: true
+  #    NoSave: true
+  - Status: Cloakingexceed
+    Icon: EFST_CLOAKINGEXCEED
+    DurationLookup: GC_CLOAKINGEXCEED
+    States:
+      NoPickItem: true
+    CalcFlags:
+      Speed: true
+    Options:
+      Cloak: true
+    Flags:
+      OnTouch: true
+      StopAttacking: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveOnMapWarp: true
+  - Status: Hallucinationwalk
+    Icon: EFST_HALLUCINATIONWALK
+    DurationLookup: GC_HALLUCINATIONWALK
+    CalcFlags:
+      Flee: true
+    Flags:
+      DisplayPc: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Hallucinationwalk_Postdelay
+    Icon: EFST_HALLUCINATIONWALK_POSTDELAY
+    DurationLookup: GC_HALLUCINATIONWALK
+    CalcFlags:
+      Speed: true
+      Aspd: true
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Rollingcutter
+    Icon: EFST_ROLLINGCUTTER
+    DurationLookup: GC_ROLLINGCUTTER
+    Flags:
+      DisplayPc: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Toxin
+    Icon: EFST_TOXIN
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+  - Status: Paralyse
+    Icon: EFST_PARALYSE
+    CalcFlags:
+      Flee: true
+      Speed: true
+      Aspd: true
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Toxin: true
+      Paralyse: true
+      Venombleed: true
+      Magicmushroom: true
+      Deathhurt: true
+      Pyrexia: true
+      Oblivioncurse: true
+      Leechesend: true
+  - Status: Venombleed
+    Icon: EFST_VENOMBLEED
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Toxin: true
+      Paralyse: true
+      Venombleed: true
+      Magicmushroom: true
+      Deathhurt: true
+      Pyrexia: true
+      Oblivioncurse: true
+      Leechesend: true
+  - Status: Magicmushroom
+    Icon: EFST_MAGICMUSHROOM
+    CalcFlags:
+      Regen: true
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Toxin: true
+      Paralyse: true
+      Venombleed: true
+      Magicmushroom: true
+      Deathhurt: true
+      Pyrexia: true
+      Oblivioncurse: true
+      Leechesend: true
+  - Status: Deathhurt
+    Icon: EFST_DEATHHURT
+    CalcFlags:
+      Regen: true
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Toxin: true
+      Paralyse: true
+      Venombleed: true
+      Magicmushroom: true
+      Deathhurt: true
+      Pyrexia: true
+      Oblivioncurse: true
+      Leechesend: true
+  - Status: Pyrexia
+    Icon: EFST_PYREXIA
+    CalcFlags:
+      All: true
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Toxin: true
+      Paralyse: true
+      Venombleed: true
+      Magicmushroom: true
+      Deathhurt: true
+      Pyrexia: true
+      Oblivioncurse: true
+      Leechesend: true
+  - Status: Oblivioncurse
+    Icon: EFST_OBLIVIONCURSE
+    States:
+      NoCast: true
+      Nocastcond: true
+    CalcFlags:
+      Regen: true
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Toxin: true
+      Paralyse: true
+      Venombleed: true
+      Magicmushroom: true
+      Deathhurt: true
+      Pyrexia: true
+      Oblivioncurse: true
+      Leechesend: true
+  - Status: Leechesend
+    Icon: EFST_LEECHESEND
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Toxin: true
+      Paralyse: true
+      Venombleed: true
+      Magicmushroom: true
+      Deathhurt: true
+      Pyrexia: true
+      Oblivioncurse: true
+      Leechesend: true
+  - Status: Reflectdamage
+    Icon: EFST_LG_REFLECTDAMAGE
+    DurationLookup: LG_REFLECTDAMAGE
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      RequireShield: true
+    End:
+      Reflectshield: true
+  - Status: Forceofvanguard
+    Icon: EFST_FORCEOFVANGUARD
+    DurationLookup: LG_FORCEOFVANGUARD
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Shieldspell_Hp
+    Icon: EFST_SHIELDSPELL_DEF
+    DurationLookup: LG_SHIELDSPELL
+    End:
+      Shieldspell_Sp: true
+      Shieldspell_Atk: true
+  - Status: Shieldspell_Sp
+    Icon: EFST_SHIELDSPELL_MDEF
+    DurationLookup: LG_SHIELDSPELL
+    End:
+      Shieldspell_Hp: true
+      Shieldspell_Atk: true
+  - Status: Shieldspell_Atk
+    Icon: EFST_SHIELDSPELL_REF
+    DurationLookup: LG_SHIELDSPELL
+    CalcFlags:
+      Watk: true
+      Matk: true
+    End:
+      Shieldspell_Hp: true
+      Shieldspell_Sp: true
+  - Status: Exeedbreak
+    Icon: EFST_EXEEDBREAK
+    DurationLookup: LG_EXEEDBREAK
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Prestige
+    Icon: EFST_PRESTIGE
+    DurationLookup: LG_PRESTIGE
+    CalcFlags:
+      Def: true
+  - Status: Banding
+    Icon: EFST_BANDING
+    DurationLookup: LG_BANDING
+    CalcFlags:
+      Def: true
+      Watk: true
+      Regen: true
+    Flags:
+      DisplayPc: true
+      OverlapFail: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Prestige: true
+  - Status: Banding_Defence
+    Icon: EFST_BANDING_DEFENCE
+    CalcFlags:
+      Speed: true
+    Flags:
+      BossResist: true
+      OverlapFail: true
+  - Status: Earthdrive
+    Icon: EFST_EARTHDRIVE
+    DurationLookup: LG_EARTHDRIVE
+    CalcFlags:
+      Def: true
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Inspiration
+    Icon: EFST_INSPIRATION
+    DurationLookup: LG_INSPIRATION
+    CalcFlags:
+      Watk: true
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+      Hit: true
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Spellfist
+    Icon: EFST_SPELLFIST
+    DurationLookup: SO_SPELLFIST
+  - Status: Crystalize
+    Icon: EFST_COLD
+    DurationLookup: SO_DIAMONDDUST
+    States:
+      NoMove: true
+      NoMoveCond: true
+      NoCast: true
+      NoCastCond: true
+      NoConsumeItem: true
+      NoAttack: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      SendOption: true
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      StopWalking: true
+      Debuff: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Warmer: true
+  - Status: Striking
+    Icon: EFST_STRIKING
+    DurationLookup: SO_STRIKING
+    CalcFlags:
+      All: true
+    Flags:
+      NoSave: true
+  - Status: Warmer
+    Icon: EFST_WARMER
+    DurationLookup: SO_WARMER
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Crystalize: true
+      Freezing: true
+      Freeze: true
+  - Status: Vacuum_Extreme
+    Icon: EFST_VACUUM_EXTREME
+    DurationLookup: SO_VACUUM_EXTREME
+    Flags:
+      BossResist: true
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      RemoveOnChangeMap: true
+      Debuff: true
+    Fail:
+      Hallucinationwalk: true
+      Hovering: true
+    States:
+      Nomove: true
+  - Status: Propertywalk
+    Icon: EFST_PROPERTYWALK
+    DurationLookup: SO_FIREWALK
+    Flags:
+      NoSave: true
+      RemoveOnMapWarp: true
+  - Status: Swingdance
+    Icon: EFST_SWING
+    DurationLookup: WA_SWING_DANCE
+    CalcFlags:
+      Speed: true
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Symphonyoflover: true
+      Moonlitserenade: true
+      Rushwindmill: true
+      Echosong: true
+      Harmonize: true
+  - Status: Symphonyoflover
+    Icon: EFST_SYMPHONY_LOVE
+    DurationLookup: WA_SYMPHONY_OF_LOVER
+    CalcFlags:
+      Mdef: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Swingdance: true
+      Moonlitserenade: true
+      Rushwindmill: true
+      Echosong: true
+      Harmonize: true
+  - Status: Moonlitserenade
+    Icon: EFST_MOONLIT_SERENADE
+    DurationLookup: WA_MOONLIT_SERENADE
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Swingdance: true
+      Symphonyoflover: true
+      Rushwindmill: true
+      Echosong: true
+      Harmonize: true
+  - Status: Rushwindmill
+    Icon: EFST_RUSH_WINDMILL
+    DurationLookup: MI_RUSH_WINDMILL
+    CalcFlags:
+      Watk: true
+      Speed: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Swingdance: true
+      Symphonyoflover: true
+      Moonlitserenade: true
+      Echosong: true
+      Harmonize: true
+  - Status: Echosong
+    Icon: EFST_ECHOSONG
+    DurationLookup: MI_ECHOSONG
+    CalcFlags:
+      Def: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Swingdance: true
+      Symphonyoflover: true
+      Moonlitserenade: true
+      Rushwindmill: true
+      Harmonize: true
+  - Status: Harmonize
+    Icon: EFST_HARMONIZE
+    DurationLookup: MI_HARMONIZE
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    End:
+      Swingdance: true
+      Symphonyoflover: true
+      Moonlitserenade: true
+      Rushwindmill: true
+      Echosong: true
+  - Status: Voiceofsiren
+    Icon: EFST_SIREN
+    DurationLookup: WM_VOICEOFSIREN
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      StopAttacking: true
+    MinDuration: 10000
+    End:
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+  - Status: Deepsleep
+    Icon: EFST_HANDICAPSTATE_DEEP_SLEEP
+    DurationLookup: WM_LULLABY_DEEPSLEEP
+    States:
+      NoCast: true
+      NoChat: true
+      NoMove: true
+      NoConsumeItem: true
+      NoAttack: true
+    Opt1: Sleep
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      StopWalking: true
+      StopAttacking: true
+      SetStand: true
+      RemoveOnDamaged: true
+      NoSave: true
+      Debuff: true
+      OverlapFail: true
+    MinDuration: 5000
+    Fail:
+      Refresh: true
+      Inspiration: true
+    End:
+      Dancing: true
+      Voiceofsiren: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+  - Status: Sircleofnature
+    Icon: EFST_SIRCLEOFNATURE
+    DurationLookup: WM_SIRCLEOFNATURE
+    End:
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+    CalcFlags:
+      Regen: true
+  - Status: Gloomyday
+    Icon: EFST_GLOOMYDAY
+    DurationLookup: WM_GLOOMYDAY
+    CalcFlags:
+      Flee: true
+      Speed: true
+      Aspd: true
+    End:
+      Voiceofsiren: true
+      Deepsleep: true
+      Songofmana: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+  - Status: Gloomyday_Sk
+    Icon: EFST_GLOOMYDAY
+  - Status: Songofmana
+    Icon: EFST_SONG_OF_MANA
+    DurationLookup: WM_SONG_OF_MANA
+    End:
+      Voiceofsiren: true
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+    CalcFlags:
+      Regen: true
+  - Status: Dancewithwug
+    Icon: EFST_DANCE_WITH_WUG
+    DurationLookup: WM_DANCE_WITH_WUG
+    CalcFlags:
+      Aspd: true
+    End:
+      Voiceofsiren: true
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+  - Status: Saturdaynightfever
+    Icon: EFST_SATURDAY_NIGHT_FEVER
+    DurationLookup: WM_SATURDAY_NIGHT_FEVER
+    States:
+      NoCast: true
+      NoChat: true
+      NoEquipItem: true
+      NoUnEquipItem: true
+      NoConsumeItem: true
+    CalcFlags:
+      Hit: true
+      Flee: true
+      Regen: true
+    Flags:
+      NoSave: true
+    Fail:
+      Berserk: true
+      Inspiration: true
+    End:
+      Voiceofsiren: true
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Dancewithwug: true
+      Leradsdew: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+  - Status: Leradsdew
+    Icon: EFST_LERADS_DEW
+    DurationLookup: WM_LERADS_DEW
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Voiceofsiren: true
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+  - Status: Melodyofsink
+    Icon: EFST_MELODYOFSINK
+    DurationLookup: WM_MELODYOFSINK
+    CalcFlags:
+      Int: true
+      MaxSp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Voiceofsiren: true
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+  - Status: Beyondofwarcry
+    Icon: EFST_BEYOND_OF_WARCRY
+    DurationLookup: WM_BEYOND_OF_WARCRY
+    CalcFlags:
+      Str: true
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Voiceofsiren: true
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Melodyofsink: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+  - Status: Unlimitedhummingvoice
+    Icon: EFST_UNLIMITED_HUMMING_VOICE
+    DurationLookup: WM_UNLIMITED_HUMMING_VOICE
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Voiceofsiren: true
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Sircleofnature: true
+  - Status: Sitdown_Force
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Netherworld
+    Icon: EFST_NETHERWORLD
+    DurationLookup: WM_POEMOFNETHERWORLD
+    States:
+      NoMove: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      BossResist: true
+      StopWalking: true
+      OverlapFail: true
+      Debuff: true
+  - Status: Crescentelbow
+    Icon: EFST_CRESCENTELBOW
+    DurationLookup: SR_CRESCENTELBOW
+    Flags:
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Cursedcircle_Atker
+    Icon: EFST_CURSEDCIRCLE_ATKER
+    DurationLookup: SR_CURSEDCIRCLE
+    States:
+      NoMove: true
+      NoAttack: true
+    Flags:
+      DisplayPc: true
+      NoClearbuff: true
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      StopAttacking: true
+      RemoveOnChangeMap: true
+  - Status: Cursedcircle_Target
+    Icon: EFST_CURSEDCIRCLE_TARGET
+    DurationLookup: SR_CURSEDCIRCLE
+    States:
+      NoMove: true
+      NoCast: true
+      NoAttack: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      MobLoseTarget: true
+      NoClearbuff: true
+      StopWalking: true
+      StopAttacking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Lightningwalk
+    Icon: EFST_LIGHTNINGWALK
+    DurationLookup: SR_LIGHTNINGWALK
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Raisingdragon
+    Icon: EFST_RAISINGDRAGON
+    DurationLookup: SR_RAISINGDRAGON
+    CalcFlags:
+      Regen: true
+      MaxHp: true
+      MaxSp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Gt_Energygain
+    Icon: EFST_GENTLETOUCH_ENERGYGAIN
+    DurationLookup: SR_GENTLETOUCH_ENERGYGAIN
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Gt_Change
+    Icon: EFST_GENTLETOUCH_CHANGE
+    DurationLookup: SR_GENTLETOUCH_CHANGE
+    CalcFlags:
+      Watk: true
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Gt_Revitalize: true
+  - Status: Gt_Revitalize
+    Icon: EFST_GENTLETOUCH_REVITALIZE
+    DurationLookup: SR_GENTLETOUCH_REVITALIZE
+    CalcFlags:
+      MaxHp: true
+      Regen: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Gt_Change: true
+  - Status: Gn_Cartboost
+    Icon: EFST_GN_CARTBOOST
+    DurationLookup: GN_CARTBOOST
+    CalcFlags:
+      Speed: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Quagmire: true
+      Dontforgetme: true
+    End:
+      Decreaseagi: true
+    EndReturn: true
+  - Status: Thornstrap
+    Icon: EFST_THORNS_TRAP
+    DurationLookup: GN_THORNS_TRAP
+    States:
+      NoMove: true
+    Flags:
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Bloodsucker
+    Icon: EFST_BLOOD_SUCKER
+    DurationLookup: GN_BLOOD_SUCKER
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Smokepowder
+    Icon: EFST_FIRE_EXPANSION_SMOKE_POWDER
+    DurationLookup: GN_FIRE_EXPANSION_SMOKE_POWDER
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Teargas
+    Icon: EFST_FIRE_EXPANSION_TEAR_GAS
+    DurationLookup: GN_FIRE_EXPANSION_TEAR_GAS
+    CalcFlags:
+      Hit: true
+      Flee: true
+    Flags:
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Mandragora
+    Icon: EFST_MANDRAGORA
+    DurationLookup: GN_MANDRAGORA
+    CalcFlags:
+      Int: true
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+  - Status: Stomachache
+    Icon: EFST_STOMACHACHE
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Dex: true
+      Int: true
+      Luk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+  - Status: Mysterious_Powder
+    Icon: EFST_MYSTERIOUS_POWDER
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+  - Status: Melon_Bomb
+    Icon: EFST_MELON_BOMB
+    CalcFlags:
+      Speed: true
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Banana_Bomb
+    Icon: EFST_BANANA_BOMB
+    CalcFlags:
+      Luk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Banana_Bomb_Sitdown
+    Icon: EFST_BANANA_BOMB_SITDOWN_POSTDELAY
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Savage_Steak
+    Icon: EFST_SAVAGE_STEAK
+    CalcFlags:
+      Str: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Cocktail_Warg_Blood
+    Icon: EFST_COCKTAIL_WARG_BLOOD
+    CalcFlags:
+      Int: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Minor_Bbq
+    Icon: EFST_MINOR_BBQ
+    CalcFlags:
+      Vit: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Siroma_Ice_Tea
+    Icon: EFST_SIROMA_ICE_TEA
+    CalcFlags:
+      Dex: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Drocera_Herb_Steamed
+    Icon: EFST_DROCERA_HERB_STEAMED
+    CalcFlags:
+      Agi: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Putti_Tails_Noodles
+    Icon: EFST_PUTTI_TAILS_NOODLES
+    CalcFlags:
+      Luk: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Boost500
+    Icon: EFST_BOOST500
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Full_Swing_K
+    Icon: EFST_FULL_SWING_K
+    CalcFlags:
+      Batk: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mana_Plus
+    Icon: EFST_MANA_PLUS
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mustle_M
+    Icon: EFST_MUSTLE_M
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Life_Force_F
+    Icon: EFST_LIFE_FORCE_F
+    CalcFlags:
+      MaxSp: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Extract_White_Potion_Z
+    Icon: EFST_EXTRACT_WHITE_POTION_Z
+    CalcFlags:
+      Regen: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Vitata_500
+    Icon: EFST_VITATA_500
+    CalcFlags:
+      Regen: true
+      MaxSp: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Extract_Salamine_Juice
+    Icon: EFST_EXTRACT_SALAMINE_JUICE
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: _Reproduce
+    Icon: EFST_REPRODUCE
+    DurationLookup: SC_REPRODUCE
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: _Autoshadowspell
+    Icon: EFST_AUTOSHADOWSPELL
+    DurationLookup: SC_AUTOSHADOWSPELL
+  - Status: _Shadowform
+    Icon: EFST_SHADOWFORM
+    DurationLookup: SC_SHADOWFORM
+    States:
+      NoCast: true
+      NoConsumeItem: true
+      NoAttack: true
+    Flags:
+      DisplayPc: true
+      OnTouch: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      RemoveOnChangeMap: true
+  - Status: _Bodypaint
+    Icon: EFST_BODYPAINT
+    DurationLookup: SC_BODYPAINT
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+    Fail:
+      Inspiration: true
+  - Status: _Invisibility
+    Icon: EFST_INVISIBILITY
+    DurationLookup: SC_INVISIBILITY
+    States:
+      NoCast: true
+      NoConsumeItem: true
+    CalcFlags:
+      Aspd: true
+      Cri: true
+      Atk_Ele: true
+    Options:
+      Cloak: true
+    Flags:
+      OnTouch: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      _Invisibility: true
+  - Status: _Deadlyinfect
+    Icon: EFST_DEADLYINFECT
+    DurationLookup: SC_DEADLYINFECT
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: _Enervation
+    Icon: EFST_ENERVATION
+    DurationLookup: SC_ENERVATION
+    CalcFlags:
+      Batk: true
+      Watk: true
+    Flags:
+      OverlapFail: true
+      BossResist: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Inspiration: true
+  - Status: _Groomy
+    Icon: EFST_GROOMY
+    DurationLookup: SC_GROOMY
+    CalcFlags:
+      Aspd: true
+      Hit: true
+    Flags:
+      OverlapFail: true
+      BossResist: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Inspiration: true
+  - Status: _Ignorance
+    Icon: EFST_IGNORANCE
+    DurationLookup: SC_IGNORANCE
+    States:
+      NoCast: true
+    Flags:
+      OverlapFail: true
+      BossResist: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Inspiration: true
+  - Status: _Laziness
+    Icon: EFST_LAZINESS
+    DurationLookup: SC_LAZINESS
+    CalcFlags:
+      Flee: true
+      Speed: true
+    Flags:
+      OverlapFail: true
+      BossResist: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Inspiration: true
+  - Status: _Unlucky
+    Icon: EFST_UNLUCKY
+    DurationLookup: SC_UNLUCKY
+    CalcFlags:
+      Cri: true
+      Flee2: true
+    Flags:
+      OverlapFail: true
+      BossResist: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Inspiration: true
+  - Status: _Weakness
+    Icon: EFST_WEAKNESS
+    DurationLookup: SC_WEAKNESS
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      OverlapFail: true
+      BossResist: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Inspiration: true
+  - Status: _Stripaccessory
+    Icon: EFST_STRIPACCESSARY
+    DurationLookup: SC_STRIPACCESSARY
+    CalcFlags:
+      Dex: true
+      Int: true
+      Luk: true
+    Flags:
+      Debuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: _Manhole
+    Icon: EFST_MANHOLE
+    DurationLookup: SC_MANHOLE
+    States:
+      NoMove: true
+      NoCast: true
+      NoConsumeItem: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      MobLoseTarget: true
+      NoClearbuff: true
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+  - Status: _Bloodylust
+    Icon: EFST_BLOODYLUST
+    DurationLookup: SC_BLOODYLUST
+    States:
+      NoCast: true
+      NoUnEquipItem: true
+    CalcFlags:
+      Def: true
+      Def2: true
+      Batk: true
+      Watk: true
+    Flags:
+      Debuff: true
+      NoSave: true
+  - Status: Circle_Of_Fire
+    Icon: EFST_CIRCLE_OF_FIRE
+  - Status: Circle_Of_Fire_Option
+    Icon: EFST_CIRCLE_OF_FIRE_OPTION
+    DurationLookup: EL_CIRCLE_OF_FIRE
+    CalcFlags:
+      All: true
+  - Status: Fire_Cloak
+    Icon: EFST_FIRE_CLOAK
+  - Status: Fire_Cloak_Option
+    Icon: EFST_FIRE_CLOAK_OPTION
+    DurationLookup: EL_FIRE_CLOAK
+    CalcFlags:
+      All: true
+  - Status: Water_Screen
+    Icon: EFST_WATER_SCREEN
+  - Status: Water_Screen_Option
+    Icon: EFST_WATER_SCREEN_OPTION
+    DurationLookup: EL_WATER_SCREEN
+    CalcFlags:
+      All: true
+  - Status: Water_Drop
+    Icon: EFST_WATER_DROP
+  - Status: Water_Drop_Option
+    Icon: EFST_WATER_DROP_OPTION
+    DurationLookup: EL_WATER_DROP
+    CalcFlags:
+      All: true
+  - Status: Water_Barrier
+    Icon: EFST_WATER_BARRIER
+    DurationLookup: EL_WATER_BARRIER
+    CalcFlags:
+      Watk: true
+      Flee: true
+  - Status: Wind_Step
+    Icon: EFST_WIND_STEP
+  - Status: Wind_Step_Option
+    Icon: EFST_WIND_STEP_OPTION
+    DurationLookup: EL_WIND_STEP
+    CalcFlags:
+      Speed: true
+      Flee: true
+  - Status: Wind_Curtain
+    Icon: EFST_WIND_CURTAIN
+  - Status: Wind_Curtain_Option
+    Icon: EFST_WIND_CURTAIN_OPTION
+    DurationLookup: EL_WIND_CURTAIN
+    CalcFlags:
+      All: true
+  - Status: Zephyr
+    Icon: EFST_ZEPHYR
+    DurationLookup: EL_ZEPHYR
+    CalcFlags:
+      Flee: true
+  - Status: Solid_Skin
+    Icon: EFST_SOLID_SKIN
+  - Status: Solid_Skin_Option
+    Icon: EFST_SOLID_SKIN_OPTION
+    DurationLookup: EL_SOLID_SKIN
+    CalcFlags:
+      Def: true
+      MaxHp: true
+  - Status: Stone_Shield
+    Icon: EFST_STONE_SHIELD
+  - Status: Stone_Shield_Option
+    Icon: EFST_STONE_SHIELD_OPTION
+    DurationLookup: EL_STONE_SHIELD
+    CalcFlags:
+      All: true
+  - Status: Power_Of_Gaia
+    Icon: EFST_POWER_OF_GAIA
+    DurationLookup: EL_POWER_OF_GAIA
+    CalcFlags:
+      MaxHp: true
+      Def: true
+      Speed: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      NoRemoveOnDead: true
+  - Status: Pyrotechnic
+    Icon: EFST_PYROTECHNIC
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Pyrotechnic_Option
+    Icon: EFST_PYROTECHNIC_OPTION
+    DurationLookup: EL_PYROTECHNIC
+    CalcFlags:
+      Watk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+  - Status: Heater
+    Icon: EFST_HEATER
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Heater_Option
+    Icon: EFST_HEATER_OPTION
+    DurationLookup: EL_HEATER
+    CalcFlags:
+      Watk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+  - Status: Tropic
+    Icon: EFST_TROPIC
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Tropic_Option
+    Icon: EFST_TROPIC_OPTION
+    DurationLookup: EL_TROPIC
+    CalcFlags:
+      Watk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+  - Status: Aquaplay
+    Icon: EFST_AQUAPLAY
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Aquaplay_Option
+    Icon: EFST_AQUAPLAY_OPTION
+    DurationLookup: EL_AQUAPLAY
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+  - Status: Cooler
+    Icon: EFST_COOLER
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Cooler_Option
+    Icon: EFST_COOLER_OPTION
+    DurationLookup: EL_COOLER
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+  - Status: Chilly_Air
+    Icon: EFST_CHILLY_AIR
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Chilly_Air_Option
+    Icon: EFST_CHILLY_AIR_OPTION
+    DurationLookup: EL_CHILLY_AIR
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+  - Status: Gust
+    Icon: EFST_GUST
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Gust_Option
+    Icon: EFST_GUST_OPTION
+    DurationLookup: EL_GUST
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+  - Status: Blast
+    Icon: EFST_BLAST
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Blast_Option
+    Icon: EFST_BLAST_OPTION
+    DurationLookup: EL_BLAST
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+  - Status: Wild_Storm
+    Icon: EFST_WILD_STORM
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Wild_Storm_Option
+    Icon: EFST_WILD_STORM_OPTION
+    DurationLookup: EL_WILD_STORM
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+  - Status: Petrology
+    Icon: EFST_PETROLOGY
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Petrology_Option
+    Icon: EFST_PETROLOGY_OPTION
+    DurationLookup: EL_PETROLOGY
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+  - Status: Cursed_Soil
+    Icon: EFST_CURSED_SOIL
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Cursed_Soil_Option
+    Icon: EFST_CURSED_SOIL_OPTION
+    DurationLookup: EL_CURSED_SOIL
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+  - Status: Upheaval
+    Icon: EFST_UPHEAVAL
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Upheaval_Option
+    Icon: EFST_UPHEAVAL_OPTION
+    DurationLookup: EL_UPHEAVAL
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+  - Status: Tidal_Weapon
+    Icon: EFST_TIDAL_WEAPON
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Tidal_Weapon_Option
+    Icon: EFST_TIDAL_WEAPON_OPTION
+    DurationLookup: EL_TIDAL_WEAPON
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+  - Status: Rock_Crusher
+    Icon: EFST_ROCK_CRUSHER
+    DurationLookup: EL_ROCK_CRUSHER
+    CalcFlags:
+      Def: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Rock_Crusher_Atk
+    Icon: EFST_ROCK_CRUSHER_ATK
+    DurationLookup: EL_ROCK_CRUSHER_ATK
+    CalcFlags:
+      Speed: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Leadership
+    DurationLookup: GD_LEADERSHIP
+    CalcFlags:
+      Str: true
+    Flags:
+      NoClearbuff: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Glorywounds
+    DurationLookup: GD_GLORYWOUNDS
+    CalcFlags:
+      Vit: true
+    Flags:
+      NoClearbuff: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Soulcold
+    DurationLookup: GD_SOULCOLD
+    CalcFlags:
+      Agi: true
+    Flags:
+      NoClearbuff: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Hawkeyes
+    DurationLookup: GD_HAWKEYES
+    CalcFlags:
+      Dex: true
+    Flags:
+      NoClearbuff: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Odins_Power
+    Icon: EFST_ODINS_POWER
+    DurationLookup: ALL_ODINS_POWER
+    CalcFlags:
+      Watk: true
+      Matk: true
+      Mdef: true
+      Def: true
+  - Status: Fire_Insignia
+    Icon: EFST_FIRE_INSIGNIA
+    DurationLookup: SO_FIRE_INSIGNIA
+    CalcFlags:
+      Matk: true
+      Watk: true
+      Atk_Ele: true
+      Regen: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Water_Insignia
+    Icon: EFST_WATER_INSIGNIA
+    DurationLookup: SO_FIRE_INSIGNIA
+    CalcFlags:
+      Matk: true
+      Watk: true
+      Atk_Ele: true
+      Regen: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Wind_Insignia
+    Icon: EFST_WIND_INSIGNIA
+    DurationLookup: SO_WATER_INSIGNIA
+    CalcFlags:
+      Matk: true
+      Watk: true
+      Aspd: true
+      Atk_Ele: true
+      Regen: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Earth_Insignia
+    Icon: EFST_EARTH_INSIGNIA
+    DurationLookup: SO_WIND_INSIGNIA
+    CalcFlags:
+      Mdef: true
+      Def: true
+      MaxHp: true
+      MaxSp: true
+      Matk: true
+      Watk: true
+      Atk_Ele: true
+      Regen: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Push_Cart
+    Icon: EFST_ON_PUSH_CART
+    CalcFlags:
+      Speed: true
+    Flags:
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapIgnoreLevel: true
+  - Status: Spellbook1
+    Icon: EFST_SPELLBOOK1
+    Flags:
+      NoClearance: true
+  - Status: Spellbook2
+    Icon: EFST_SPELLBOOK2
+    Flags:
+      NoClearance: true
+  - Status: Spellbook3
+    Icon: EFST_SPELLBOOK3
+    Flags:
+      NoClearance: true
+  - Status: Spellbook4
+    Icon: EFST_SPELLBOOK4
+    Flags:
+      NoClearance: true
+  - Status: Spellbook5
+    Icon: EFST_SPELLBOOK5
+    Flags:
+      NoClearance: true
+  - Status: Spellbook6
+    Icon: EFST_SPELLBOOK6
+    Flags:
+      NoClearance: true
+  - Status: Maxspellbook
+    Icon: EFST_SPELLBOOK7
+    Flags:
+      NoClearance: true
+  - Status: Incmhp
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+    CalcFlags:
+      MaxHp: true
+  - Status: Incmsp
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+    CalcFlags:
+      MaxSp: true
+  - Status: Partyflee
+    Icon: EFST_PARTYFLEE
+    DurationLookup: ALL_PARTYFLEE
+    Flags:
+      NoClearance: true
+      NoBanishingBuster: true
+  - Status: Meikyousisui
+    Icon: EFST_MEIKYOUSISUI
+    DurationLookup: KO_MEIKYOUSISUI
+    States:
+      NoMove: true
+    Flags:
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Jyumonjikiri
+    Icon: EFST_KO_JYUMONJIKIRI
+    DurationLookup: KO_JYUMONJIKIRI
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Kyougaku
+    Icon: EFST_KYOUGAKU
+    DurationLookup: KO_KYOUGAKU
+    States:
+      NoMove: true
+      NoEquipItem: true
+      NoUnEquipItem: true
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    Flags:
+      StopWalking: true
+      NoSave: true
+      Debuff: true
+  - Status: Izayoi
+    Icon: EFST_IZAYOI
+    DurationLookup: KO_IZAYOI
+    CalcFlags:
+      Matk: true
+  - Status: Zenkai
+    Icon: EFST_ZENKAI
+    DurationLookup: KO_ZENKAI
+  - Status: Kagehumi
+    Icon: EFST_KG_KAGEHUMI
+    DurationLookup: KG_KAGEHUMI
+    States:
+      NoMove: true
+      NoConsumeItem: true
+  - Status: Kyomu
+    Icon: EFST_KYOMU
+    DurationLookup: KG_KYOMU
+  - Status: Kagemusya
+    Icon: EFST_KAGEMUSYA
+    DurationLookup: KG_KAGEMUSYA
+  - Status: Zangetsu
+    Icon: EFST_ZANGETSU
+    DurationLookup: OB_ZANGETSU
+    CalcFlags:
+      Matk: true
+      Batk: true
+  - Status: Gensou
+    Icon: EFST_GENSOU
+    DurationLookup: OB_OBOROGENSOU
+  - Status: Akaitsuki
+    Icon: EFST_AKAITSUKI
+    DurationLookup: OB_AKAITSUKI
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      Debuff: true
+  - Status: Style_Change
+    DurationLookup: MH_STYLE_CHANGE
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Tinder_Breaker
+    Icon: EFST_TINDER_BREAKER_POSTDELAY
+    DurationLookup: MH_TINDER_BREAKER
+    States:
+      NoMove: true
+    CalcFlags:
+      Flee: true
+    Flags:
+      StopWalking: true
+      NoSave: true
+      RemoveOnChangeMap: true
+  - Status: Tinder_Breaker2
+    Icon: EFST_TINDER_BREAKER
+    DurationLookup: MH_TINDER_BREAKER
+    States:
+      NoMove: true
+    CalcFlags:
+      Flee: true
+    Flags:
+      StopWalking: true
+      NoSave: true
+      RemoveOnChangeMap: true
+      OverlapFail: true
+  - Status: Cbc
+    Icon: EFST_CBC
+    DurationLookup: MH_CBC
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoSave: true
+  - Status: Eqc
+    Icon: EFST_EQC
+    DurationLookup: MH_EQC
+    CalcFlags:
+      Def2: true
+      MaxHp: true
+    Flags:
+      NoSave: true
+    End:
+      Tinder_Breaker2: true
+  - Status: Goldene_Ferse
+    Icon: EFST_GOLDENE_FERSE
+    DurationLookup: MH_GOLDENE_FERSE
+    CalcFlags:
+      Aspd: true
+      Flee: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Angriffs_Modus: true
+  - Status: Angriffs_Modus
+    Icon: EFST_ANGRIFFS_MODUS
+    DurationLookup: MH_ANGRIFFS_MODUS
+    CalcFlags:
+      Batk: true
+      Def: true
+      Flee: true
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Goldene_Ferse: true
+  - Status: Overed_Boost
+    Icon: EFST_OVERED_BOOST
+    DurationLookup: MH_OVERED_BOOST
+    CalcFlags:
+      Flee: true
+      Aspd: true
+      Def: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Overed_Boost: true
+  - Status: Light_Of_Regene
+    Icon: EFST_LIGHT_OF_REGENE
+    DurationLookup: MH_LIGHT_OF_REGENE
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Ash
+    Icon: EFST_VOLCANIC_ASH
+    DurationLookup: MH_VOLCANIC_ASH
+    CalcFlags:
+      Def: true
+      Def2: true
+      Hit: true
+      Batk: true
+      Flee: true
+  - Status: Granitic_Armor
+    Icon: EFST_GRANITIC_ARMOR
+    DurationLookup: MH_GRANITIC_ARMOR
+  - Status: Magma_Flow
+    Icon: EFST_MAGMA_FLOW
+    DurationLookup: MH_MAGMA_FLOW
+  - Status: Pyroclastic
+    Icon: EFST_PYROCLASTIC
+    DurationLookup: MH_PYROCLASTIC
+    States:
+      NoEquipItem: true
+    CalcFlags:
+      Batk: true
+      Atk_Ele: true
+  - Status: Paralysis
+    Icon: EFST_NEEDLE_OF_PARALYZE
+    DurationLookup: MH_NEEDLE_OF_PARALYZE
+    States:
+      NoMove: true
+    CalcFlags:
+      Def2: true
+    Flags:
+      BossResist: true
+      StopWalking: true
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Pain_Killer
+    Icon: EFST_PAIN_KILLER
+    DurationLookup: MH_PAIN_KILLER
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Hanbok
+    States:
+      NoAttack: true
+    Options:
+      Hanbok: true
+    Flags:
+      SendLook: true
+      StopAttacking: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Defset
+    Icon: EFST_SET_NUM_DEF
+    CalcFlags:
+      Def: true
+    Flags:
+      OverlapFail: true
+  - Status: Mdefset
+    Icon: EFST_SET_NUM_MDEF
+    CalcFlags:
+      Mdef: true
+    Flags:
+      OverlapFail: true
+  - Status: Darkcrow
+    Icon: EFST_DARKCROW
+    DurationLookup: GC_DARKCROW
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Full_Throttle
+    Icon: EFST_FULL_THROTTLE
+    DurationLookup: ALL_FULL_THROTTLE
+    CalcFlags:
+      Speed: true
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Rebound
+    Icon: EFST_REBOUND
+    CalcFlags:
+      Speed: true
+      Regen: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Unlimit
+    Icon: EFST_UNLIMIT
+    DurationLookup: RA_UNLIMIT
+    CalcFlags:
+      Def: true
+      Def2: true
+      Mdef: true
+      MDef2: true
+    Flags:
+      DisplayPc: true
+  - Status: Kings_Grace
+    Icon: EFST_KINGS_GRACE
+    DurationLookup: LG_KINGS_GRACE
+    States:
+      NoCast: true
+      NoAttack: true
+      Nomove: true
+      NoConsumeItem: true
+    Flags:
+      StopAttacking: true
+    End:
+      Poison: true
+      Blind: true
+      Freeze: true
+      Stone: true
+      Stun: true
+      Sleep: true
+      Bleeding: true
+      Curse: true
+      Confusion: true
+      Hallucination: true
+      Silence: true
+      Burning: true
+      Crystalize: true
+      Freezing: true
+      Deepsleep: true
+      Fear: true
+      Mandragora: true
+  - Status: Telekinesis_Intense
+    Icon: EFST_TELEKINESIS_INTENSE
+    DurationLookup: WL_TELEKINESIS_INTENSE
+    Flags:
+      DisplayPc: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    CalcFlags:
+      Matk: true
+  - Status: Offertorium
+    Icon: EFST_OFFERTORIUM
+    DurationLookup: AB_OFFERTORIUM
+    Flags:
+      DisplayPc: true
+    Fail:
+      Magnificat: true
+    End:
+      Magnificat: true
+      Blind: true
+      Curse: true
+      Poison: true
+      Hallucination: true
+      Confusion: true
+      Bleeding: true
+      Burning: true
+      Freezing: true
+      Mandragora: true
+      Paralyse: true
+      Pyrexia: true
+      Deathhurt: true
+      Leechesend: true
+      Venombleed: true
+      Toxin: true
+      Magicmushroom: true
+  - Status: Frigg_Song
+    Icon: EFST_FRIGG_SONG
+    DurationLookup: WM_FRIGG_SONG
+    CalcFlags:
+      MaxHp: true
+  - Status: Monster_Transform
+    Icon: EFST_MONSTER_TRANSFORM
+    Flags:
+      DisplayPc: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Angel_Protect
+    Icon: EFST_ANGEL_PROTECT
+    Flags:
+      NoClearance: true
+      NoBanishingBuster: true
+      NoDispell: true
+  - Status: Illusiondoping
+    Icon: EFST_ILLUSIONDOPING
+    DurationLookup: GN_ILLUSIONDOPING
+    CalcFlags:
+      Hit: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Flashcombo
+    Icon: EFST_FLASHCOMBO
+    DurationLookup: SR_FLASHCOMBO
+    CalcFlags:
+      Watk: true
+  - Status: Moonstar
+    Icon: EFST_MOONSTAR
+    Flags:
+      NoSave: true
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Super_Star
+    Icon: EFST_SUPER_STAR
+    Flags:
+      NoSave: true
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Heat_Barrel
+    Icon: EFST_HEAT_BARREL
+    DurationLookup: RL_HEAT_BARREL
+    CalcFlags:
+      Hit: true
+      Aspd: true
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      P_Alter: true
+      Madnesscancel: true
+  - Status: P_Alter
+    Icon: EFST_P_ALTER
+    DurationLookup: RL_P_ALTER
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Heat_Barrel: true
+      Madnesscancel: true
+  - Status: E_Chain
+    Icon: EFST_E_CHAIN
+    DurationLookup: RL_E_CHAIN
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: C_Marker
+    Icon: EFST_C_MARKER
+    DurationLookup: RL_C_MARKER
+    CalcFlags:
+      Flee: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Anti_M_Blast
+    Icon: EFST_ANTI_M_BLAST
+    DurationLookup: RL_AM_BLAST
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      Debuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: B_Trap
+    Icon: EFST_B_TRAP
+    DurationLookup: RL_B_TRAP
+    CalcFlags:
+      Speed: true
+    Flags:
+      Debuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: H_Mine
+    Icon: EFST_H_MINE
+    DurationLookup: RL_H_MINE
+    Flags:
+      Debuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Qd_Shot_Ready
+    Icon: EFST_E_QD_SHOT_READY
+    Flags:
+      NoSave: true
+  - Status: Mtf_Aspd
+    Icon: EFST_MTF_ASPD
+    CalcFlags:
+      Aspd: true
+      Hit: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Rangeatk
+    Icon: EFST_MTF_RANGEATK
+    CalcFlags:
+      Batk: true
+      Watk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Matk
+    Icon: EFST_MTF_MATK
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Mleatked
+    Icon: EFST_MTF_MLEATKED
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Cridamage
+    Icon: EFST_MTF_CRIDAMAGE
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Oktoberfest
+    States:
+      NoAttack: true
+    Options:
+      Oktoberfest: true
+    Flags:
+      SendLook: true
+      StopAttacking: true
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Strangelights
+    Icon: EFST_STRANGELIGHTS
+    Flags:
+      NoSave: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      BlEffect: true
+  - Status: Decoration_Of_Music
+    Icon: EFST_DECORATION_OF_MUSIC
+    Flags:
+      NoSave: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      BlEffect: true
+  - Status: Quest_Buff1
+    Icon: EFST_QUEST_BUFF1
+    CalcFlags:
+      Batk: true
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Quest_Buff2
+    Icon: EFST_QUEST_BUFF2
+    CalcFlags:
+      Batk: true
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Quest_Buff3
+    Icon: EFST_QUEST_BUFF3
+    CalcFlags:
+      Batk: true
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: All_Riding
+    Icon: EFST_ALL_RIDING
+    States:
+      NoAttack: true
+    CalcFlags:
+      Speed: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      All_Riding: true
+    EndReturn: true
+  - Status: Teargas_Sob
+    Flags:
+      BossResist: true
+  - Status: _Feintbomb
+    DurationLookup: SC_FEINTBOMB
+    States:
+      NoPickItem: true
+    Options:
+      Invisible: true
+    Flags:
+      SendLook: true
+      OnTouch: true
+      StopAttacking: true
+  - Status: _Chaos
+    Flags:
+      StopWalking: true
+    Fail:
+      _Chaos: true
+  - Status: Chasewalk2
+    Icon: EFST_CHASEWALK2
+    CalcFlags:
+      Str: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+      NoBanishingBuster: true
+      NoDispell: true
+  - Status: Mtf_Aspd2
+    Icon: EFST_MTF_ASPD2
+    CalcFlags:
+      Aspd: true
+      Hit: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Rangeatk2
+    Icon: EFST_MTF_RANGEATK2
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Matk2
+    Icon: EFST_MTF_MATK2
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: 2011rwc_Scroll
+    Icon: EFST_2011RWC_SCROLL
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+      Batk: true
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Food_Str_Cash: true
+      Food_Agi_Cash: true
+      Food_Vit_Cash: true
+      Food_Int_Cash: true
+      Food_Dex_Cash: true
+      Food_Luk_Cash: true
+  - Status: Jp_Event04
+    Icon: EFST_JP_EVENT04
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Mhp
+    Icon: EFST_MTF_MHP
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Msp
+    Icon: EFST_MTF_MSP
+    CalcFlags:
+      MaxSp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Pumpkin
+    Icon: EFST_MTF_PUMPKIN
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Hitflee
+    Icon: EFST_MTF_HITFLEE
+    CalcFlags:
+      Hit: true
+      Flee: true
+      Cri: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Vacuum_Extreme_Postdelay
+    DurationLookup: SO_VACUUM_EXTREME
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Crifood
+    Icon: EFST_FOOD_CRITICALSUCCESSVALUE
+    CalcFlags:
+      Cri: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Atthaste_Cash
+    Icon: EFST_ATTHASTE_CASH
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapIgnoreLevel: true
+  - Status: Reuse_Limit_A
+    Icon: EFST_REUSE_LIMIT_A
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_B
+    Icon: EFST_REUSE_LIMIT_B
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_C
+    Icon: EFST_REUSE_LIMIT_C
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_D
+    Icon: EFST_REUSE_LIMIT_D
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_E
+    Icon: EFST_REUSE_LIMIT_E
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_F
+    Icon: EFST_REUSE_LIMIT_F
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_G
+    Icon: EFST_REUSE_LIMIT_G
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_H
+    Icon: EFST_REUSE_LIMIT_H
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_Mtf
+    Icon: EFST_REUSE_LIMIT_MTF
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_Aspd_Potion
+    Icon: EFST_REUSE_LIMIT_ASPD_POTION
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Millenniumshield
+    Icon: EFST_REUSE_MILLENNIUMSHIELD
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Crushstrike
+    Icon: EFST_REUSE_CRUSHSTRIKE
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Stormblast
+    Icon: EFST_REUSE_STORMBLAST
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: All_Riding_Reuse_Limit
+    Icon: EFST_ALL_RIDING_REUSE_LIMIT
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_Ecl
+    Icon: EFST_REUSE_LIMIT_ECL
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_Recall
+    Icon: EFST_REUSE_LIMIT_RECALL
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Promote_Health_Reserch
+    Icon: EFST_PROMOTE_HEALTH_RESERCH
+    CalcFlags:
+      MaxHp: true
+  - Status: Energy_Drink_Reserch
+    Icon: EFST_ENERGY_DRINK_RESERCH
+    CalcFlags:
+      MaxSp: true
+  - Status: Norecover_State
+    Icon: EFST_HANDICAPSTATE_NORECOVER
+    Flags:
+      OverlapFail: true
+  - Status: Suhide
+    Icon: EFST_SUHIDE
+    DurationLookup: SU_HIDE
+    States:
+      NoMove: true
+      NoPickItem: true
+      NoConsumeItem: true
+    Flags:
+      StopAttacking: true
+      RemoveOnDamaged: true
+      RemoveOnChangeMap: true
+      RemoveOnMapWarp: true
+  - Status: Su_Stoop
+    Icon: EFST_SU_STOOP
+    DurationLookup: SU_STOOP
+  - Status: Spritemable
+    Icon: EFST_SPRITEMABLE
+    Flags:
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      NoClearbuff: true
+  - Status: Catnippowder
+    Icon: EFST_CATNIPPOWDER
+    DurationLookup: SU_CN_POWDERING
+    CalcFlags:
+      Watk: true
+      Matk: true
+      Speed: true
+      Regen: true
+    Flags:
+      BossResist: true
+  - Status: Sv_Roottwist
+    Icon: EFST_SV_ROOTTWIST
+    DurationLookup: SU_SV_ROOTTWIST
+    States:
+      NoMove: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      BossResist: true
+      StopWalking: true
+      NoSave: true
+  - Status: Bitescar
+    Icon: EFST_BITESCAR
+    DurationLookup: SU_SCAROFTAROU
+    Flags:
+      BossResist: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Arclousedash
+    Icon: EFST_ARCLOUSEDASH
+    DurationLookup: SU_ARCLOUSEDASH
+    CalcFlags:
+      Agi: true
+      Speed: true
+  - Status: Tunaparty
+    Icon: EFST_TUNAPARTY
+    DurationLookup: SU_TUNAPARTY
+  - Status: Shrimp
+    Icon: EFST_SHRIMP
+    DurationLookup: SU_BUNCHOFSHRIMP
+    CalcFlags:
+      Batk: true
+      Matk: true
+  - Status: Freshshrimp
+    Icon: EFST_FRESHSHRIMP
+    DurationLookup: SU_FRESHSHRIMP
+    Flags:
+      BossResist: true
+  - Status: Active_Monster_Transform
+    Icon: EFST_ACTIVE_MONSTER_TRANSFORM
+    Flags:
+      DisplayPc: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Ljosalfar
+    Icon: EFST_LJOSALFAR
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mermaid_Longing
+    Icon: EFST_MERMAID_LONGING
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Hat_Effect
+    Icon: EFST_HAT_EFFECT
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Flowersmoke
+    Icon: EFST_FLOWERSMOKE
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Fstone
+    Icon: EFST_FSTONE
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Happiness_Star
+    Icon: EFST_HAPPINESS_STAR
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Maple_Falls
+    Icon: EFST_MAPLE_FALLS
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Time_Accessory
+    Icon: EFST_TIME_ACCESSORY
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Magical_Feather
+    Icon: EFST_MAGICAL_FEATHER
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Gvg_Giant
+    Icon: EFST_GVG_GIANT
+  - Status: Gvg_Golem
+    Icon: EFST_GVG_GOLEM
+  - Status: Gvg_Stun
+    Icon: EFST_GVG_STUN
+    End:
+      Gvg_Stun: true
+  - Status: Gvg_Stone
+    Icon: EFST_GVG_STONE
+    End:
+      Stone: true
+  - Status: Gvg_Freez
+    Icon: EFST_GVG_FREEZ
+    End:
+      Freeze: true
+  - Status: Gvg_Sleep
+    Icon: EFST_GVG_SLEEP
+    End:
+      Sleep: true
+  - Status: Gvg_Curse
+    Icon: EFST_GVG_CURSE
+    End:
+      Curse: true
+  - Status: Gvg_Silence
+    Icon: EFST_GVG_SILENCE
+    End:
+      Silence: true
+  - Status: Gvg_Blind
+    Icon: EFST_GVG_BLIND
+    End:
+      Blind: true
+  - Status: Clan_Info
+    Icon: EFST_CLAN_INFO
+    Flags:
+      DisplayPc: true
+      DisplayNpc: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Swordclan
+    Icon: EFST_SWORDCLAN
+    CalcFlags:
+      Str: true
+      Vit: true
+      MaxHp: true
+      MaxSp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Arcwandclan
+    Icon: EFST_ARCWANDCLAN
+    CalcFlags:
+      Int: true
+      Dex: true
+      MaxHp: true
+      MaxSp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Goldenmaceclan
+    Icon: EFST_GOLDENMACECLAN
+    CalcFlags:
+      Luk: true
+      Int: true
+      MaxHp: true
+      MaxSp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Crossbowclan
+    Icon: EFST_CROSSBOWCLAN
+    CalcFlags:
+      Agi: true
+      Vit: true
+      MaxHp: true
+      MaxSp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Jumpingclan
+    Icon: EFST_JUMPINGCLAN
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Tarotcard
+    Icon: EFST_TAROTCARD
+    DurationLookup: CG_TAROTCARD
+  - Status: Geffen_Magic1
+    Icon: EFST_GEFFEN_MAGIC1
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+  - Status: Geffen_Magic2
+    Icon: EFST_GEFFEN_MAGIC2
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+  - Status: Geffen_Magic3
+    Icon: EFST_GEFFEN_MAGIC3
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+  - Status: Maxpain
+    Icon: EFST_MAXPAIN
+    DurationLookup: NPC_MAXPAIN
+    Flags:
+      BlEffect: true
+  - Status: Armor_Element_Earth
+    Icon: EFST_RESIST_PROPERTY_GROUND
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      OverlapIgnoreLevel: true
+  - Status: Armor_Element_Fire
+    Icon: EFST_RESIST_PROPERTY_FIRE
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      OverlapIgnoreLevel: true
+  - Status: Armor_Element_Wind
+    Icon: EFST_RESIST_PROPERTY_WIND
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      OverlapIgnoreLevel: true
+  - Status: Dailysendmailcnt
+    Icon: EFST_DAILYSENDMAILCNT
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoClearance: true
+      NoBanishingBuster: true
+  - Status: Doram_Buf_01
+    Icon: EFST_DORAM_BUF_01
+    CalcFlags:
+      Regen: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoBanishingBuster: true
+      OverlapFail: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Doram_Buf_02
+    Icon: EFST_DORAM_BUF_02
+    CalcFlags:
+      Regen: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoBanishingBuster: true
+      OverlapFail: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Hiss
+    Icon: EFST_HISS
+    DurationLookup: SU_HISS
+    Flags:
+      NoRemoveOnDead: true
+    CalcFlags:
+      Flee2: true
+  - Status: Nyanggrass
+    Icon: EFST_NYANGGRASS
+    DurationLookup: SU_NYANGGRASS
+    Flags:
+      NoRemoveOnDead: true
+    CalcFlags:
+      Def: true
+      Mdef: true
+  - Status: Grooming
+    Icon: EFST_GROOMING
+    DurationLookup: SU_GROOMING
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoRemoveOnDead: true
+    End:
+      Stun: true
+      Freeze: true
+      Stone: true
+      Sleep: true
+      Silence: true
+      Bleeding: true
+      Poison: true
+      Fear: true
+      Mandragora: true
+      Crystalize: true
+      Freezing: true
+  - Status: Shrimpblessing
+    Icon: EFST_PROTECTIONOFSHRIMP
+    DurationLookup: SU_SHRIMPARTY
+    CalcFlags:
+      Regen: true
+    Flags:
+      NoRemoveOnDead: true
+  - Status: Chattering
+    Icon: EFST_CHATTERING
+    DurationLookup: SU_CHATTERING
+    CalcFlags:
+      Watk: true
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+  - Status: Doram_Walkspeed
+    CalcFlags:
+      Speed: true
+  - Status: Doram_Matk
+    CalcFlags:
+      Matk: true
+  - Status: Doram_Flee2
+    CalcFlags:
+      Flee2: true
+  - Status: Doram_Svsp
+  - Status: Fallen_Angel
+    DurationLookup: RL_FALLEN_ANGEL
+  - Status: Cheerup
+    Icon: EFST_CHEERUP
+    DurationLookup: WE_CHEERUP
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    Flags:
+      NoRemoveOnDead: true
+  - Status: Dressup
+    Icon: EFST_DRESS_UP
+    States:
+      NoAttack: true
+    Options:
+      Summer2: true
+    Flags:
+      DisplayPc: true
+      SendLook: true
+      StopAttacking: true
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Glastheim_Atk
+    Icon: EFST_GLASTHEIM_ATK
+    CalcFlags:
+      All: true
+    Flags:
+      NoSave: true
+  - Status: Glastheim_Def
+    Icon: EFST_GLASTHEIM_DEF
+    Flags:
+      NoSave: true
+  - Status: Glastheim_Heal
+    Icon: EFST_GLASTHEIM_HEAL
+    Flags:
+      NoSave: true
+  - Status: Glastheim_Hidden
+    Icon: EFST_GLASTHEIM_HIDDEN
+    Flags:
+      NoSave: true
+  - Status: Glastheim_State
+    Icon: EFST_GLASTHEIM_STATE
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Dex: true
+      Int: true
+      Luk: true
+    Flags:
+      NoSave: true
+  - Status: Glastheim_Itemdef
+    Icon: EFST_GLASTHEIM_ITEMDEF
+    CalcFlags:
+      Def: true
+      Mdef: true
+    Flags:
+      NoSave: true
+  - Status: Glastheim_Hpsp
+    Icon: EFST_GLASTHEIM_HPSP
+    CalcFlags:
+      MaxHp: true
+      MaxSp: true
+    Flags:
+      NoSave: true
+  - Status: Lhz_Dun_N1
+    Icon: EFST_LHZ_DUN_N1
+    Flags:
+      NoClearbuff: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+  - Status: Lhz_Dun_N2
+    Icon: EFST_LHZ_DUN_N2
+    Flags:
+      NoClearbuff: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+  - Status: Lhz_Dun_N3
+    Icon: EFST_LHZ_DUN_N3
+    Flags:
+      NoClearbuff: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+  - Status: Lhz_Dun_N4
+    Icon: EFST_LHZ_DUN_N4
+    Flags:
+      NoClearbuff: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+  - Status: Ancilla
+    Icon: EFST_ANCILLA
+    Flags:
+      NoRemoveOnDead: true
+    CalcFlags:
+      Regen: true
+  - Status: Earthshaker
+  - Status: Weaponblock_On
+    Icon: EFST_WEAPONBLOCK_ON
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+  - Status: Spore_Explosion
+    Icon: EFST_SPORE_EXPLOSION
+    DurationLookup: GN_SPORE_EXPLOSION
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Basilica_Cell
+    States:
+      NoCast: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoClearbuff: true
+      RemoveOnChangeMap: true
+  - Status: Entry_Queue_Apply_Delay
+    Icon: EFST_ENTRY_QUEUE_APPLY_DELAY
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+  - Status: Entry_Queue_Notify_Admission_Time_Out
+    Icon: EFST_ENTRY_QUEUE_NOTIFY_ADMISSION_TIME_OUT
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+  - Status: Lightofmoon
+    Icon: EFST_LIGHTOFMOON
+    DurationLookup: SJ_LIGHTOFMOON
+    End:
+      Lunarstance: true
+      Universestance: true
+  - Status: Lightofsun
+    Icon: EFST_LIGHTOFSUN
+    DurationLookup: SJ_LIGHTOFSUN
+    End:
+      Lightofsun: true
+      Universestance: true
+  - Status: Lightofstar
+    Icon: EFST_LIGHTOFSTAR
+    DurationLookup: SJ_LIGHTOFSTAR
+    End:
+      Starstance: true
+      Universestance: true
+  - Status: Lunarstance
+    Icon: EFST_LUNARSTANCE
+    DurationLookup: SJ_LUNARSTANCE
+    CalcFlags:
+      MaxHp: true
+    End:
+      Sunstance: true
+      Starstance: true
+      Universestance: true
+  - Status: Universestance
+    Icon: EFST_UNIVERSESTANCE
+    DurationLookup: SJ_UNIVERSESTANCE
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    End:
+      Sunstance: true
+      Lunarstance: true
+      Starstance: true
+  - Status: Sunstance
+    Icon: EFST_SUNSTANCE
+    DurationLookup: SJ_SUNSTANCE
+    CalcFlags:
+      Batk: true
+      Watk: true
+    End:
+      Lunarstance: true
+      Starstance: true
+      Universestance: true
+  - Status: Flashkick
+    Icon: EFST_FLASHKICK
+    DurationLookup: SJ_FLASHKICK
+    Flags:
+      RemoveOnChangeMap: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Newmoon
+    Icon: EFST_NEWMOON
+    DurationLookup: SJ_NEWMOONKICK
+    States:
+      NoPickItem: true
+    Options:
+      Cloak: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      StopAttacking: true
+      RemoveOnDamaged: true
+      RemoveOnChangeMap: true
+    Fail:
+      Bite: true
+  - Status: Starstance
+    Icon: EFST_STARSTANCE
+    DurationLookup: SJ_STARSTANCE
+    CalcFlags:
+      Aspd: true
+    End:
+      Sunstance: true
+      Lunarstance: true
+      Universestance: true
+  - Status: Dimension
+    Icon: EFST_DIMENSION
+    DurationLookup: SJ_BOOKOFDIMENSION
+    Flags:
+      NoClearance: true
+  - Status: Dimension1
+  - Status: Dimension2
+  - Status: Creatingstar
+    Icon: EFST_CREATINGSTAR
+    DurationLookup: SJ_BOOKOFCREATINGSTAR
+    CalcFlags:
+      Speed: true
+    Flags:
+      Debuff: true
+    Fail:
+      Speedup1: true
+  - Status: Fallingstar
+    Icon: EFST_FALLINGSTAR
+    DurationLookup: SJ_FALLINGSTAR
+  - Status: Novaexplosing
+    Icon: EFST_NOVAEXPLOSING
+    DurationLookup: SJ_NOVAEXPLOSING
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Gravitycontrol
+    Icon: EFST_GRAVITYCONTROL
+    DurationLookup: SJ_GRAVITYCONTROL
+    States:
+      NoMove: true
+      NoCast: true
+    Flags:
+      StopCasting: true
+      StopAttacking: true
+      StopWalking: true
+  - Status: Soulcollect
+    Icon: EFST_SOULCOLLECT
+    DurationLookup: SP_SOULCOLLECT
+    MinDuration: 1000
+  - Status: Soulreaper
+    Icon: EFST_SOULREAPER
+    DurationLookup: SP_SOULREAPER
+  - Status: Soulunity
+    Icon: EFST_SOULUNITY
+    DurationLookup: SP_SOULUNITY
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Soulshadow
+    Icon: EFST_SOULSHADOW
+    DurationLookup: SP_SOULSHADOW
+    CalcFlags:
+      Aspd: true
+      Cri: true
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Spirit: true
+      Soulgolem: true
+      Soulfalcon: true
+      Soulfairy: true
+  - Status: Soulfairy
+    Icon: EFST_SOULFAIRY
+    DurationLookup: SP_SOULFAIRY
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Spirit: true
+      Soulgolem: true
+      Soulshadow: true
+      Soulfalcon: true
+  - Status: Soulfalcon
+    Icon: EFST_SOULFALCON
+    DurationLookup: SP_SOULFALCON
+    CalcFlags:
+      Watk: true
+      Hit: true
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Spirit: true
+      Soulgolem: true
+      Soulshadow: true
+      Soulfairy: true
+  - Status: Soulgolem
+    Icon: EFST_SOULGOLEM
+    DurationLookup: SP_SOULGOLEM
+    CalcFlags:
+      Def: true
+      Mdef: true
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Spirit: true
+      Soulshadow: true
+      Soulfalcon: true
+      Soulfairy: true
+  - Status: Souldivision
+    Icon: EFST_SOULDIVISION
+    DurationLookup: SP_SOULDIVISION
+  - Status: Soulenergy
+    Icon: EFST_SOULENERGY
+  - Status: Use_Skill_Sp_Spa
+    Icon: EFST_USE_SKILL_SP_SPA
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Use_Skill_Sp_Sha
+    Icon: EFST_USE_SKILL_SP_SHA
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Sp_Sha
+    Icon: EFST_SP_SHA
+    DurationLookup: SP_SHA
+    CalcFlags:
+      Speed: true
+    Flags:
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Soulcurse
+    Icon: EFST_SOULCURSE
+    DurationLookup: SP_SOULCURSE
+  - Status: Hells_Plant
+    Icon: EFST_HELLS_PLANT_ARMOR
+    DurationLookup: GN_HELLS_PLANT
+    Flags:
+      NoSave: true
+      RemoveOnChangeMap: true
+      DisplayPc: true
+      BlEffect: true
+  - Status: Increase_Maxhp
+    Icon: EFST_ATKER_ASPD
+    CalcFlags:
+      MaxHp: true
+      Regen: true
+  - Status: Increase_Maxsp
+    Icon: EFST_ATKER_MOVESPEED
+    CalcFlags:
+      MaxHp: true
+      Regen: true
+  - Status: Ref_T_Potion
+    Icon: EFST_REF_T_POTION
+  - Status: Add_Atk_Damage
+    Icon: EFST_ADD_ATK_DAMAGE
+  - Status: Add_Matk_Damage
+    Icon: EFST_ADD_MATK_DAMAGE
+  - Status: Soundofdestruction
+    Icon: EFST_SOUND_OF_DESTRUCTION
+    DurationLookup: WM_SOUND_OF_DESTRUCTION
+  - Status: Luxanima
+    Icon: EFST_LUXANIMA
+    DurationLookup: RK_LUXANIMA
+    CalcFlags:
+      All: true
+    Flags:
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+      NoClearbuff: true
+  - Status: Reuse_Limit_Luxanima
+    Flags:
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+      OverlapFail: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+  - Status: Ensemblefatigue
+    Icon: EFST_ENSEMBLEFATIGUE
+    States:
+      NoCast: true
+    CalcFlags:
+      Speed: true
+      Aspd: true
+  - Status: Misty_Frost
+    Icon: EFST_MISTY_FROST
+    Flags:
+      DisplayPc: true
+  - Status: Magic_Poison
+    Icon: EFST_MAGIC_POISON
+    DurationLookup: WL_COMET
+    Flags:
+      DisplayPc: true
+      BlEffect: true
+  - Status: Ep16_2_Buff_Ss
+    Icon: EFST_EP16_2_BUFF_SS
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+      NoClearbuff: true
+  - Status: Ep16_2_Buff_Sc
+    Icon: EFST_EP16_2_BUFF_SC
+    CalcFlags:
+      Cri: true
+    Flags:
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+      NoClearbuff: true
+  - Status: Ep16_2_Buff_Ac
+    Icon: EFST_EP16_2_BUFF_AC
+    Flags:
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+      NoClearbuff: true

Plik diff jest za duży
+ 126 - 0
db/re/skill_db.yml


+ 7946 - 0
db/re/status.yml

@@ -0,0 +1,7946 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2022 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Status Change Database
+###########################################################################
+#
+# Status Change Settings
+#
+###########################################################################
+# - Status                    Status change name.
+#   Icon                      Status change icon. (Default: EFST_BLANK)
+#   DurationLookup            Default status change duration. (Default: 0)
+#   States:                   Status change state to determine player states. (Default: None)
+#   CalcFlags:                Status change calculation to indicate which stat is adjusted. (Default: None)
+#   Opt1                      Special effect when a status change is active. Non-stackable. (Default: None)
+#   Opt2:                     Special options/client effects when a status change is active. (Default: None)
+#   Opt3:                     Special options/client effects when a status change is active. (Default: Normal)
+#   Options:                  Special options/client effects when a status change is active. (Default: Nothing)
+#   Flags:                    Special flags which trigger during certain events.  (Default: None)
+#   MinRate                   Minimum rate after status change reduction (10000 = 100%). (Default: 0)
+#   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)
+###########################################################################
+
+Header:
+  Type: STATUS_DB
+  Version: 1
+
+Body:
+  - Status: Stone
+    DurationLookup: NPC_PETRIFYATTACK
+    States:
+      NoMove: true
+      NoMoveCond: true
+      NoCast: true
+      NoAttack: true
+    CalcFlags:
+      Def_Ele: true
+      Def: true
+      Mdef: true
+    Flags:
+      SendOption: true
+      BossResist: true
+      StopAttacking: true
+      StopCasting: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Power_Of_Gaia: true
+      Gvg_Stone: true
+    End:
+      Dancing: true
+  - Status: Freeze
+    DurationLookup: NPC_WIDEFREEZE
+    States:
+      NoMove: true
+      NoCast: true
+      NoAttack: true
+    CalcFlags:
+      Def_Ele: true
+      Def: true
+      Mdef: true
+    Opt1: Freeze
+    Flags:
+      SendOption: true
+      BossResist: true
+      StopAttacking: true
+      StopCasting: true
+      RemoveOnDamaged: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Warmer: true
+      Gvg_Freez: true
+    End:
+      Dancing: true
+      Aeterna: true
+  - Status: Stun
+    DurationLookup: NPC_STUNATTACK
+    States:
+      NoMove: true
+      NoCast: true
+      NoAttack: true
+    Opt1: Stun
+    Flags:
+      SendOption: true
+      BossResist: true
+      StopAttacking: true
+      StopCasting: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Gvg_Stun: true
+    End:
+      Dancing: true
+  - Status: Sleep
+    DurationLookup: NPC_SLEEPATTACK
+    States:
+      NoMove: true
+      NoCast: true
+      NoAttack: true
+    Opt1: Sleep
+    Flags:
+      SendOption: true
+      BossResist: true
+      StopAttacking: true
+      StopCasting: true
+      RemoveOnDamaged: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Gvg_Sleep: true
+    End:
+      Dancing: true
+  - Status: Poison
+    DurationLookup: NPC_POISON
+    CalcFlags:
+      Def2: true
+      Regen: true
+    Opt2:
+      Poison: true
+    Flags:
+      SendOption: true
+      BossResist: true
+      StopAttacking: true
+      OverlapFail: true
+      SpreadEffect: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+  - Status: Curse
+    DurationLookup: NPC_CURSEATTACK
+    CalcFlags:
+      Luk: true
+      Batk: true
+      Watk: true
+      Speed: true
+    Opt2:
+      Curse: true
+    Flags:
+      SendOption: true
+      BossResist: true
+      OverlapFail: true
+      SpreadEffect: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Gvg_Curse: true
+  - Status: Silence
+    DurationLookup: NPC_SILENCEATTACK
+    States:
+      NoCast: true
+    Opt2:
+      Silence: true
+    Flags:
+      SendOption: true
+      BossResist: true
+      StopCasting: true
+      OverlapFail: true
+      SpreadEffect: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Gvg_Silence: true
+  - Status: Confusion
+    DurationLookup: NPC_WIDECONFUSE
+    Flags:
+      BossResist: true
+      StopWalking: true
+      RemoveOnDamaged: true
+      OverlapFail: true
+      SpreadEffect: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Confusion: true
+  - Status: Blind
+    DurationLookup: NPC_BLINDATTACK
+    CalcFlags:
+      Hit: true
+      Flee: true
+    Opt2:
+      Blind: true
+    Flags:
+      SendOption: true
+      BossResist: true
+      OverlapFail: true
+      SpreadEffect: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Fear: true
+      Gvg_Blind: true
+  - Status: Bleeding
+    Icon: EFST_BLOODING
+    DurationLookup: NPC_BLEEDING
+    CalcFlags:
+      Regen: true
+    Opt2:
+      Bleeding: true
+    Flags:
+      SendOption: true
+      BossResist: true
+      NoSave: true
+      NoClearance: true
+      OverlapFail: true
+      SpreadEffect: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+  - Status: Dpoison
+    DurationLookup: NPC_POISON
+    CalcFlags:
+      Def2: true
+      Regen: true
+    Opt2:
+      Dpoison: true
+    Flags:
+      SendOption: true
+      BossResist: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+  - Status: Provoke
+    Icon: EFST_PROVOKE
+    DurationLookup: SM_PROVOKE
+    CalcFlags:
+      Def: true
+      Def2: true
+      Batk: true
+      Watk: true
+    Flags:
+      BossResist: true
+      Debuff: true
+      NoSaveInfinite: true
+  - Status: Endure
+    Icon: EFST_ENDURE
+    DurationLookup: SM_ENDURE
+    CalcFlags:
+      Mdef: true
+      Dspd: true
+    Flags:
+      NoRemoveOnDead: true
+      NoSaveInfinite: true
+  - Status: Twohandquicken
+    Icon: EFST_TWOHANDQUICKEN
+    DurationLookup: KN_TWOHANDQUICKEN
+    CalcFlags:
+      Aspd: true
+      Hit: true
+      Cri: true
+    Opt3:
+      Quicken: true
+    Flags:
+      RequireWeapon: true
+    Fail:
+      Decreaseagi: true
+  - Status: Concentrate
+    Icon: EFST_CONCENTRATION
+    DurationLookup: AC_CONCENTRATION
+    CalcFlags:
+      Agi: true
+      Dex: true
+    Flags:
+      FailedMado: true
+    Fail:
+      Quagmire: true
+  - Status: Hiding
+    Icon: EFST_HIDING
+    DurationLookup: TF_HIDING
+    States:
+      NoMove: true
+      NoMoveCond: true
+      NoPickItem: true
+      NoConsumeItem: true
+    CalcFlags:
+      Speed: true
+    Options:
+      Hide: true
+    Flags:
+      OnTouch: true
+      StopAttacking: true
+      RemoveOnDamaged: true
+      RemoveOnChangeMap: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+    End:
+      Closeconfine: true
+      Closeconfine2: true
+  - Status: Cloaking
+    Icon: EFST_CLOAKING
+    DurationLookup: AS_CLOAKING
+    States:
+      NoPickItem: true
+    CalcFlags:
+      Cri: true
+      Speed: true
+    Options:
+      Cloak: true
+    Flags:
+      OnTouch: true
+      StopAttacking: true
+      RemoveOnDamaged: true
+      RemoveOnMapWarp: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Encpoison
+    Icon: EFST_ENCHANTPOISON
+    DurationLookup: AS_ENCHANTPOISON
+    CalcFlags:
+      Atk_Ele: true
+    Fail:
+      Fireweapon: true
+      Waterweapon: true
+      Windweapon: true
+      Earthweapon: true
+      Shadowweapon: true
+      Ghostweapon: true
+  - Status: Poisonreact
+    Icon: EFST_POISONREACT
+    DurationLookup: AS_POISONREACT
+  - Status: Quagmire
+    Icon: EFST_QUAGMIRE
+    DurationLookup: WZ_QUAGMIRE
+    CalcFlags:
+      Agi: true
+      Dex: true
+      Aspd: true
+      Speed: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+      Debuff: true
+    Fail:
+      Speedup1: true
+    End:
+      Loud: true
+      Concentrate: true
+      Truesight: true
+      Windwalk: true
+      Magneticfield: true
+      Cartboost: true
+      Gn_Cartboost: true
+      Increaseagi: true
+      Adrenaline: true
+      Adrenaline2: true
+      Spearquicken: true
+      Twohandquicken: true
+      Onehand: true
+      Merc_Quicken: true
+      Acceleration: true
+  - Status: Angelus
+    Icon: EFST_ANGELUS
+    DurationLookup: AL_ANGELUS
+    CalcFlags:
+      Def2: true
+      MaxHp: true
+    Opt2:
+      Angelus: true
+    Flags:
+      SendOption: true
+  - Status: Blessing
+    Icon: EFST_BLESSING
+    DurationLookup: AL_BLESSING
+    CalcFlags:
+      Str: true
+      Int: true
+      Dex: true
+      Hit: true
+    Flags:
+      BossResist: true
+      TaekwonAngel: true
+  - Status: Signumcrucis
+    Icon: EFST_CRUCIS
+    DurationLookup: AL_CRUCIS
+    CalcFlags:
+      Def: true
+    Opt2:
+      SignumCrucis: true
+    Flags:
+      SendOption: true
+      Debuff: true
+  - Status: Increaseagi
+    Icon: EFST_INC_AGI
+    DurationLookup: AL_INCAGI
+    CalcFlags:
+      Agi: true
+      Speed: true
+      Aspd: true
+    Flags:
+      FailedMado: true
+      TaekwonAngel: true
+    Fail:
+      Quagmire: true
+    End:
+      Decreaseagi: true
+      Adoramus: true
+  - Status: Decreaseagi
+    Icon: EFST_DEC_AGI
+    DurationLookup: AL_DECAGI
+    CalcFlags:
+      Agi: true
+      Speed: true
+    Flags:
+      BossResist: true
+      NoSave: true
+      Debuff: true
+    Fail:
+      Speedup1: true
+    End:
+      Cartboost: true
+      Gn_Cartboost: true
+      Increaseagi: true
+      Adrenaline: true
+      Adrenaline2: true
+      Spearquicken: true
+      Twohandquicken: true
+      Onehand: true
+      Merc_Quicken: true
+      Acceleration: true
+  - Status: Slowpoison
+    Icon: EFST_SLOWPOISON
+    DurationLookup: PR_SLOWPOISON
+    Flags:
+      NoClearance: true
+  - Status: Impositio
+    Icon: EFST_IMPOSITIO
+    DurationLookup: PR_IMPOSITIO
+    CalcFlags:
+      Watk: true
+      Matk: true
+    Flags:
+      SuperNoviceAngel: true
+    End:
+      Impositio: true
+  - Status: Suffragium
+    Icon: EFST_SUFFRAGIUM
+    DurationLookup: PR_SUFFRAGIUM
+    Flags:
+      SuperNoviceAngel: true
+  - Status: Aspersio
+    Icon: EFST_ASPERSIO
+    DurationLookup: PR_ASPERSIO
+    CalcFlags:
+      Atk_Ele: true
+  - Status: Benedictio
+    Icon: EFST_BENEDICTIO
+    DurationLookup: PR_BENEDICTIO
+    CalcFlags:
+      Def_Ele: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Kyrie
+    Icon: EFST_KYRIE
+    DurationLookup: PR_KYRIE
+    Flags:
+      SuperNoviceAngel: true
+  - Status: Magnificat
+    Icon: EFST_MAGNIFICAT
+    DurationLookup: PR_MAGNIFICAT
+    CalcFlags:
+      Regen: true
+    Flags:
+      FailedMado: true
+      NoSave: true
+      SuperNoviceAngel: true
+    Fail:
+      Offertorium: true
+  - Status: Gloria
+    Icon: EFST_GLORIA
+    DurationLookup: PR_GLORIA
+    CalcFlags:
+      Luk: true
+    Flags:
+      SuperNoviceAngel: true
+  - Status: Aeterna
+    Icon: EFST_LEXAETERNA
+    DurationLookup: PR_LEXAETERNA
+    Flags:
+      NoSave: true
+    Fail:
+      Freeze: true
+  - Status: Adrenaline
+    Icon: EFST_ADRENALINE
+    DurationLookup: BS_ADRENALINE
+    CalcFlags:
+      Aspd: true
+      Hit: true
+    Flags:
+      MadoCancel: true
+      RequireWeapon: true
+    Fail:
+      Quagmire: true
+      Decreaseagi: true
+  - Status: Weaponperfection
+    Icon: EFST_WEAPONPERFECT
+    DurationLookup: BS_WEAPONPERFECT
+    Flags:
+      MadoCancel: true
+  - Status: Overthrust
+    Icon: EFST_OVERTHRUST
+    DurationLookup: BS_OVERTHRUST
+    Opt3:
+      OverThrust: true
+    Flags:
+      MadoCancel: true
+    Fail:
+      Maxoverthrust: true
+  - Status: Maximizepower
+    Icon: EFST_MAXIMIZE
+    DurationLookup: BS_MAXIMIZE
+    CalcFlags:
+      Regen: true
+    Flags:
+      MadoCancel: true
+  - Status: Trickdead
+    Icon: EFST_TRICKDEAD
+    DurationLookup: NV_TRICKDEAD
+    States:
+      NoMove: true
+      NoPickItem: true
+      NoConsumeItem: true
+      NoAttack: true
+      NoInteract: true
+    CalcFlags:
+      Regen: true
+    Flags:
+      StopWalking: true
+      StopAttacking: true
+      StopCasting: true
+      RemoveOnDamaged: true
+      NoSave: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+    End:
+      Dancing: true
+  - Status: Loud
+    Icon: EFST_SHOUT
+    DurationLookup: MC_LOUD
+    Flags:
+      MadoCancel: true
+    CalcFlags:
+      Str: true
+      Batk: true
+  - Status: Energycoat
+    Icon: EFST_ENERGYCOAT
+    DurationLookup: MG_ENERGYCOAT
+    Opt3:
+      EnergyCoat: true
+  - Status: Brokenarmor
+    Icon: EFST_BROKENARMOR
+    DurationLookup: NPC_ARMORBRAKE
+  - Status: Brokenweapon
+    Icon: EFST_BROKENWEAPON
+    DurationLookup: NPC_WEAPONBRAKER
+  - Status: Hallucination
+    Icon: EFST_ILLUSION
+    DurationLookup: NPC_HALLUCINATION
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      Debuff: true
+      SpreadEffect: true
+    Fail:
+      Inspiration: true
+  - Status: Weight50
+    Icon: EFST_WEIGHTOVER50
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Weight90
+    Icon: EFST_WEIGHTOVER90
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      StopAttacking: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Aspdpotion0
+    Icon: EFST_ATTHASTE_POTION1
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoClearance: true
+      OverlapIgnoreLevel: true
+  - Status: Aspdpotion1
+    Icon: EFST_ATTHASTE_POTION2
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoClearance: true
+      OverlapIgnoreLevel: true
+  - Status: Aspdpotion2
+    Icon: EFST_ATTHASTE_POTION3
+    CalcFlags:
+      Aspd: true
+    Flags:
+      OverlapIgnoreLevel: true
+  - Status: Aspdpotion3
+    Icon: EFST_ATTHASTE_INFINITY
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoClearance: true
+      OverlapIgnoreLevel: true
+  - Status: Speedup0
+    Icon: EFST_MOVHASTE_HORSE
+    CalcFlags:
+      Speed: true
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Speedup1
+    Icon: EFST_MOVHASTE_POTION
+    CalcFlags:
+      Speed: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Atkpotion
+    Icon: EFST_PLUSATTACKPOWER
+    CalcFlags:
+      Batk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearance: true
+      OverlapIgnoreLevel: true
+  - Status: Matkpotion
+    Icon: EFST_PLUSMAGICPOWER
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearance: true
+      OverlapIgnoreLevel: true
+  - Status: Wedding
+    States:
+      NoAttack: true
+    CalcFlags:
+      Speed: true
+    Options:
+      Wedding: true
+    Flags:
+      SendLook: true
+      StopAttacking: true
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Slowdown
+    CalcFlags:
+      Speed: true
+    Flags:
+      Debuff: true
+  - Status: Ankle
+    Icon: EFST_ANKLESNARE
+    DurationLookup: HT_ANKLESNARE
+    States:
+      NoMove: true
+    Flags:
+      NoClearbuff: true
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+    MinDuration: 5000
+  - Status: Keeping
+    DurationLookup: NPC_KEEPING
+    CalcFlags:
+      Def: true
+  - Status: Barrier
+    Icon: EFST_BARRIER
+    DurationLookup: NPC_BARRIER
+    CalcFlags:
+      Mdef: true
+      Def: true
+  - Status: Stripweapon
+    Icon: EFST_NOEQUIPWEAPON
+    DurationLookup: RG_STRIPWEAPON
+    CalcFlags:
+      Watk: true
+    Flags:
+      Debuff: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Stripshield
+    Icon: EFST_NOEQUIPSHIELD
+    DurationLookup: RG_STRIPSHIELD
+    CalcFlags:
+      Def: true
+    Flags:
+      Debuff: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Striparmor
+    Icon: EFST_NOEQUIPARMOR
+    DurationLookup: RG_STRIPARMOR
+    CalcFlags:
+      Vit: true
+    Flags:
+      Debuff: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Striphelm
+    Icon: EFST_NOEQUIPHELM
+    DurationLookup: RG_STRIPHELM
+    CalcFlags:
+      Int: true
+    Flags:
+      Debuff: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Cp_Weapon
+    Icon: EFST_PROTECTWEAPON
+    DurationLookup: AM_CP_WEAPON
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveChemicalProtect: true
+  - Status: Cp_Shield
+    Icon: EFST_PROTECTSHIELD
+    DurationLookup: AM_CP_SHIELD
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveChemicalProtect: true
+  - Status: Cp_Armor
+    Icon: EFST_PROTECTARMOR
+    DurationLookup: AM_CP_ARMOR
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveChemicalProtect: true
+  - Status: Cp_Helm
+    Icon: EFST_PROTECTHELM
+    DurationLookup: AM_CP_HELM
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveChemicalProtect: true
+  - Status: Autoguard
+    Icon: EFST_AUTOGUARD
+    DurationLookup: CR_AUTOGUARD
+    Flags:
+      NoClearance: true
+      RequireShield: true
+  - Status: Reflectshield
+    Icon: EFST_REFLECTSHIELD
+    DurationLookup: CR_REFLECTSHIELD
+    Flags:
+      NoClearance: true
+      RequireShield: true
+    End:
+      Reflectdamage: true
+  - Status: Splasher
+    Icon: EFST_SPLASHER
+    DurationLookup: AS_SPLASHER
+  - Status: Providence
+    Icon: EFST_PROVIDENCE
+    DurationLookup: CR_PROVIDENCE
+    CalcFlags:
+      All: true
+    Flags:
+      NoSave: true
+  - Status: Defender
+    Icon: EFST_DEFENDER
+    DurationLookup: CR_DEFENDER
+    CalcFlags:
+      Speed: true
+      Aspd: true
+    Flags:
+      RequireShield: true
+  - Status: Magicrod
+    Icon: EFST_MAGICROD
+    DurationLookup: SA_MAGICROD
+    Flags:
+      NoSave: true
+  - Status: Spellbreaker
+  - Status: Autospell
+    Icon: EFST_AUTOSPELL
+    DurationLookup: SA_AUTOSPELL
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoRemoveOnDead: true
+      NoClearance: true
+  - Status: Sighttrasher
+  - Status: Autoberserk
+    Icon: EFST_AUTOBERSERK
+    DurationLookup: SM_AUTOBERSERK
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Spearquicken
+    Icon: EFST_SPEARQUICKEN
+    DurationLookup: CR_SPEARQUICKEN
+    CalcFlags:
+      Aspd: true
+      Cri: true
+      Flee: true
+    Opt3:
+      Quicken: true
+    Flags:
+      FailedMado: true
+      RequireWeapon: true
+    Fail:
+      Quagmire: true
+  - Status: Autocounter
+    Icon: EFST_AUTOCOUNTER
+    DurationLookup: KN_AUTOCOUNTER
+    States:
+      NoAttack: true
+      NoMove: true
+      NoDropItem: true
+      NoInteract: true
+  - Status: Sight
+    DurationLookup: MG_SIGHT
+    Options:
+      Sight: true
+    Flags:
+      SendOption: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoSave: true
+  - Status: Safetywall
+    DurationLookup: MG_SAFETYWALL
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Ruwach
+    DurationLookup: AL_RUWACH
+    Options:
+      Ruwach: true
+    Flags:
+      SendOption: true
+  - Status: Extremityfist
+    DurationLookup: MO_EXTREMITYFIST
+    CalcFlags:
+      Regen: true
+    Flags:
+      Debuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Explosionspirits
+    Icon: EFST_EXPLOSIONSPIRITS
+    DurationLookup: MO_EXPLOSIONSPIRITS
+    CalcFlags:
+      Cri: true
+      Regen: true
+    Opt3:
+      ExplosionSpirits: true
+    Flags:
+      Debuff: true
+      NoClearance: true
+  - Status: Combo
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapIgnoreLevel: true
+  - Status: Bladestop_Wait
+    DurationLookup: MO_BLADESTOP
+    States:
+      NoMove: true
+    Flags:
+      RemoveOnChangeMap: true
+  - Status: Bladestop
+    Icon: EFST_BLADESTOP
+    DurationLookup: MO_BLADESTOP
+    States:
+      NoMove: true
+      NoPickItem: true
+      NoDropItem: true
+      NoAttack: true
+      NoInteract: true
+    Opt3:
+      BladeStop: true
+    Flags:
+      MobLoseTarget: true
+      NoClearbuff: true
+      NoSave: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+  - Status: Fireweapon
+    Icon: EFST_PROPERTYFIRE
+    DurationLookup: SA_FLAMELAUNCHER
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+  - Status: Waterweapon
+    Icon: EFST_PROPERTYWATER
+    DurationLookup: SA_FROSTWEAPON
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+  - Status: Windweapon
+    Icon: EFST_PROPERTYWIND
+    DurationLookup: SA_LIGHTNINGLOADER
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+  - Status: Earthweapon
+    Icon: EFST_PROPERTYGROUND
+    DurationLookup: SA_SEISMICWEAPON
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+  - Status: Volcano
+    Icon: EFST_GROUNDMAGIC
+    DurationLookup: SA_VOLCANO
+    CalcFlags:
+      Watk: true
+      Matk: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Deluge
+    Icon: EFST_GROUNDMAGIC
+    DurationLookup: SA_DELUGE
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Violentgale
+    Icon: EFST_GROUNDMAGIC
+    DurationLookup: SA_VIOLENTGALE
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Watk_Element
+    DurationLookup: MS_MAGNUM
+  - Status: Armor
+    DurationLookup: NPC_DEFENDER
+  - Status: Armor_Element_Water
+    Icon: EFST_RESIST_PROPERTY_WATER
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      OverlapIgnoreLevel: true
+  - Status: Nochat
+    States:
+      NoPickItem: true
+      NoPickItemCond: true
+      NoDropItem: true
+      NoDropItemCond: true
+      NoChat: true
+      NoChatCond: true
+      NoConsumeItem: true
+      NoConsumeItemCond: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      OverlapFail: true
+      NoClearance: true
+  - Status: Protectexp
+    Icon: EFST_PROTECTEXP
+    DurationLookup: WE_BABY
+    States:
+      NoDeathPenalty: true
+  - Status: Aurablade
+    Icon: EFST_AURABLADE
+    DurationLookup: LK_AURABLADE
+    Opt3:
+      AuraBlade: true
+    Flags:
+      NoSave: true
+      RequireWeapon: true
+  - Status: Parrying
+    Icon: EFST_PARRYING
+    DurationLookup: LK_PARRYING
+    Flags:
+      NoSave: true
+      NoClearance: true
+      RequireWeapon: true
+  - Status: Concentration
+    Icon: EFST_LKCONCENTRATION
+    DurationLookup: LK_CONCENTRATION
+    CalcFlags:
+      Hit: true
+      Def: true
+    Opt3:
+      Quicken: true
+    Flags:
+      NoSave: true
+  - Status: Tensionrelax
+    Icon: EFST_TENSIONRELAX
+    DurationLookup: LK_TENSIONRELAX
+    CalcFlags:
+      Regen: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Berserk
+    Icon: EFST_BERSERK
+    DurationLookup: LK_BERSERK
+    States:
+      NoCast: true
+      NoChat: true
+      NoEquipItem: true
+      NoUnEquipItem: true
+      NoConsumeItem: true
+    CalcFlags:
+      Def: true
+      Def2: true
+      Mdef: true
+      MDef2: true
+      Flee: true
+      Speed: true
+      Aspd: true
+      MaxHp: true
+      Regen: true
+    Opt3:
+      Berserk: true
+    Flags:
+      NoSave: true
+    Fail:
+      Saturdaynightfever: true
+      _Bloodylust: true
+  - Status: Fury
+  - Status: Gospel
+    Icon: EFST_GOSPEL
+    DurationLookup: PA_GOSPEL
+    States:
+      NoMove: true
+      NoMoveCond: true
+    CalcFlags:
+      Speed: true
+      Aspd: true
+    Flags:
+      NoSave: true
+  - Status: Assumptio
+    Icon: EFST_ASSUMPTIO_BUFF
+    DurationLookup: HP_ASSUMPTIO
+    CalcFlags:
+      Def: true
+    Opt3:
+      Assumptio: true
+    End:
+      Kaite: true
+  - Status: Basilica
+    Icon: EFST_BASILICA_BUFF
+    DurationLookup: HP_BASILICA
+    CalcFlags:
+      All: true
+    States:
+      NoAttack: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Guildaura
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Magicpower
+    Icon: EFST_MAGICPOWER
+    DurationLookup: HW_MAGICPOWER
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoSave: true
+    End:
+      Magicpower: true
+  - Status: Edp
+    Icon: EFST_EDP
+    DurationLookup: ASC_EDP
+    CalcFlags:
+      Watk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoSave: true
+  - Status: Truesight
+    Icon: EFST_TRUESIGHT
+    DurationLookup: SN_SIGHT
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+      Cri: true
+      Hit: true
+    Flags:
+      FailedMado: true
+      NoSave: true
+    Fail:
+      Quagmire: true
+  - Status: Windwalk
+    Icon: EFST_WINDWALK
+    DurationLookup: SN_WINDWALK
+    CalcFlags:
+      Flee: true
+      Speed: true
+    Flags:
+      FailedMado: true
+      NoSave: true
+    Fail:
+      Quagmire: true
+  - Status: Meltdown
+    Icon: EFST_MELTDOWN
+    DurationLookup: WS_MELTDOWN
+    Flags:
+      MadoCancel: true
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Cartboost
+    Icon: EFST_CARTBOOST
+    DurationLookup: WS_CARTBOOST
+    CalcFlags:
+      Speed: true
+    Flags:
+      MadoCancel: true
+      NoRemoveOnDead: true
+      NoClearance: true
+      NoSave: true
+      NoBanishingBuster: true
+      NoDispell: true
+    Fail:
+      Quagmire: true
+    End:
+      Decreaseagi: true
+    EndReturn: true
+  - Status: Chasewalk
+    Icon: EFST_CHASEWALK
+    DurationLookup: ST_CHASEWALK
+    States:
+      NoPickItem: true
+    CalcFlags:
+      Speed: true
+    Options:
+      ChaseWalk: true
+      Cloak: true
+    Flags:
+      OnTouch: true
+      StopAttacking: true
+      RemoveOnDamaged: true
+      RemoveOnChangeMap: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Rejectsword
+    Icon: EFST_SWORDREJECT
+    DurationLookup: ST_REJECTSWORD
+  - Status: Marionette
+    Icon: EFST_MARIONETTE_MASTER
+    DurationLookup: CG_MARIONETTE
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    Opt3:
+      Marionette: true
+    Flags:
+      RemoveOnChangeMap: true
+      OverlapFail: true
+  - Status: Marionette2
+    Icon: EFST_MARIONETTE
+    DurationLookup: CG_MARIONETTE
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    Opt3:
+      Marionette: true
+    Flags:
+      RemoveOnChangeMap: true
+      OverlapFail: true
+  - Status: Changeundead
+    Icon: EFST_PROPERTYUNDEAD
+    DurationLookup: NPC_CHANGEUNDEAD
+    CalcFlags:
+      Def_Ele: true
+    Opt3:
+      Undead: true
+    Flags:
+      Debuff: true
+      NoClearance: true
+    End:
+      Blessing: true
+      Increaseagi: true
+  - Status: Jointbeat
+    Icon: EFST_JOINTBEAT
+    DurationLookup: LK_JOINTBEAT
+    CalcFlags:
+      Batk: true
+      Def2: true
+      Speed: true
+      Aspd: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+      Debuff: true
+  - Status: Mindbreaker
+    Icon: EFST_MINDBREAKER
+    DurationLookup: PF_MINDBREAKER
+    CalcFlags:
+      Matk: true
+      MDef2: true
+    Flags:
+      NoSave: true
+      Debuff: true
+  - Status: Memorize
+    Icon: EFST_MEMORIZE
+    DurationLookup: PF_MEMORIZE
+    Flags:
+      NoSave: true
+  - Status: Fogwall
+    Icon: EFST_FOGWALL
+    DurationLookup: PF_FOGWALL
+    Flags:
+      BossResist: true
+      NoSave: true
+      NoClearance: true
+  - Status: Spiderweb
+    Icon: EFST_SPIDERWEB
+    DurationLookup: PF_SPIDERWEB
+    CalcFlags:
+      Flee: true
+    Flags:
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+      Debuff: true
+  - Status: Devotion
+    Icon: EFST_DEVOTION
+    DurationLookup: CR_DEVOTION
+    Flags:
+      NoSave: true
+      RemoveOnChangeMap: true
+      OverlapIgnoreLevel: true
+  - Status: Sacrifice
+    DurationLookup: PA_SACRIFICE
+  - Status: Steelbody
+    Icon: EFST_STEELBODY
+    DurationLookup: MO_STEELBODY
+    States:
+      NoCast: true
+    CalcFlags:
+      Def: true
+      Mdef: true
+      Aspd: true
+      Speed: true
+    Opt3:
+      SteelBody: true
+  - Status: Orcish
+    DurationLookup: SA_REVERSEORCISH
+    Flags:
+      Debuff: true
+    Options:
+      Orcish: true
+    Flags:
+      SendOption: true
+  - Status: Readystorm
+    Icon: EFST_STORMKICK_ON
+    DurationLookup: TK_READYSTORM
+    Flags:
+      NoRemoveOnDead: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Readydown
+    Icon: EFST_DOWNKICK_ON
+    DurationLookup: TK_READYDOWN
+    Flags:
+      NoRemoveOnDead: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Readyturn
+    Icon: EFST_TURNKICK_ON
+    DurationLookup: TK_READYTURN
+    Flags:
+      NoRemoveOnDead: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Readycounter
+    Icon: EFST_COUNTER_ON
+    DurationLookup: TK_READYCOUNTER
+    Flags:
+      NoRemoveOnDead: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Dodge
+    Icon: EFST_DODGE_ON
+    DurationLookup: TK_DODGE
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Run
+    Icon: EFST_RUN
+    DurationLookup: TK_RUN
+    CalcFlags:
+      Speed: true
+      Dspd: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+  - Status: Shadowweapon
+    Icon: EFST_PROPERTYDARK
+    DurationLookup: TK_SEVENWIND
+    CalcFlags:
+      Atk_Ele: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Adrenaline2
+    Icon: EFST_ADRENALINE2
+    DurationLookup: BS_ADRENALINE2
+    CalcFlags:
+      Aspd: true
+    Flags:
+      MadoCancel: true
+      NoSave: true
+      RequireWeapon: true
+    Fail:
+      Quagmire: true
+      Decreaseagi: true
+  - Status: Ghostweapon
+    Icon: EFST_PROPERTYTELEKINESIS
+    DurationLookup: TK_SEVENWIND
+    CalcFlags:
+      Atk_Ele: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Kaizel
+    Icon: EFST_KAIZEL
+    DurationLookup: SL_KAIZEL
+  - Status: Kaahi
+    Icon: EFST_KAAHI
+    DurationLookup: SL_KAAHI
+    Flags:
+      NoSave: true
+      NoClearance: true
+    End:
+      Kaahi: true
+  - Status: Kaupe
+    Icon: EFST_KAUPE
+    DurationLookup: SL_KAUPE
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Onehand
+    Icon: EFST_ONEHANDQUICKEN
+    DurationLookup: KN_ONEHAND
+    CalcFlags:
+      Aspd: true
+    Opt3:
+      Quicken: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+      RequireWeapon: true
+    Fail:
+      Decreaseagi: true
+    End:
+      Aspdpotion0: true
+      Aspdpotion1: true
+      Aspdpotion2: true
+      Aspdpotion3: true
+  - Status: Preserve
+    Icon: EFST_PRESERVE
+    DurationLookup: ST_PRESERVE
+    Flags:
+      NoSave: true
+  - Status: Battleorders
+    Icon: EFST_GDSKILL_BATTLEORDER
+    DurationLookup: GD_BATTLEORDER
+    CalcFlags:
+      Str: true
+      Int: true
+      Dex: true
+  - Status: Regeneration
+    Icon: EFST_GDSKILL_REGENERATION
+    DurationLookup: GD_REGENERATION
+    CalcFlags:
+      Regen: true
+    Flags:
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+      NoSaveInfinite: true
+  - Status: Doublecast
+    Icon: EFST_DOUBLECASTING
+    DurationLookup: PF_DOUBLECASTING
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Maxoverthrust
+    Icon: EFST_OVERTHRUSTMAX
+    DurationLookup: WS_OVERTHRUSTMAX
+    Opt3:
+      OverThrust: true
+    Flags:
+      MadoCancel: true
+      NoSave: true
+    End:
+      Overthrust: true
+  - Status: Hermode
+    Icon: EFST_HERMODE
+    DurationLookup: CG_HERMODE
+  - Status: Shrink
+    Icon: EFST_CR_SHRINK
+    DurationLookup: CR_SHRINK
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoSave: true
+  - Status: Sightblaster
+    Icon: EFST_WZ_SIGHTBLASTER
+    DurationLookup: WZ_SIGHTBLASTER
+    Options:
+      Sight: true
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Winkcharm
+    Icon: EFST_DC_WINKCHARM
+    DurationLookup: DC_WINKCHARM
+    Flags:
+      RemoveOnDamaged: true
+      Debuff: true
+  - Status: Closeconfine
+    Icon: EFST_RG_CCONFINE_M
+    DurationLookup: RG_CLOSECONFINE
+    States:
+      NoMove: true
+    CalcFlags:
+      Flee: true
+    Flags:
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      NoRemoveOnDead: true
+      RemoveOnChangeMap: true
+  - Status: Closeconfine2
+    Icon: EFST_RG_CCONFINE_S
+    DurationLookup: RG_CLOSECONFINE
+    States:
+      NoMove: true
+    Flags:
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      NoRemoveOnDead: true
+      RemoveOnChangeMap: true
+      OverlapFail: true
+  - Status: Dancing
+    Icon: EFST_BDPLAYING
+    DurationLookup: BD_ENCORE
+    States:
+      NoMove: true
+      NoMoveCond: true
+    CalcFlags:
+      Speed: true
+      Regen: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+      RequireWeapon: true
+      OverlapIgnoreLevel: true
+  - Status: Elementalchange
+    Icon: EFST_ARMOR_PROPERTY
+    DurationLookup: NPC_ATTRICHANGE
+    CalcFlags:
+      Def_Ele: true
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Richmankim
+    Icon: EFST_RICHMANKIM
+    DurationLookup: BD_RICHMANKIM
+    Flags:
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Richmankim: true
+      Eternalchaos: true
+      Drumbattle: true
+      Nibelungen: true
+      Rokisweil: true
+      Intoabyss: true
+      Siegfried: true
+  - Status: Eternalchaos
+    Icon: EFST_ETERNALCHAOS
+    DurationLookup: BD_ETERNALCHAOS
+    CalcFlags:
+      Def2: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Richmankim: true
+      Eternalchaos: true
+      Drumbattle: true
+      Nibelungen: true
+      Rokisweil: true
+      Intoabyss: true
+      Siegfried: true
+  - Status: Drumbattle
+    Icon: EFST_DRUMBATTLEFIELD
+    DurationLookup: BD_DRUMBATTLEFIELD
+    CalcFlags:
+      Def: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Richmankim: true
+      Eternalchaos: true
+      Drumbattle: true
+      Nibelungen: true
+      Rokisweil: true
+      Intoabyss: true
+      Siegfried: true
+  - Status: Nibelungen
+    Icon: EFST_RINGNIBELUNGEN
+    DurationLookup: BD_RINGNIBELUNGEN
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Richmankim: true
+      Eternalchaos: true
+      Drumbattle: true
+      Nibelungen: true
+      Rokisweil: true
+      Intoabyss: true
+      Siegfried: true
+  - Status: Rokisweil
+    Icon: EFST_ROKISWEIL
+    DurationLookup: BD_ROKISWEIL
+    States:
+      NoCast: true
+    Flags:
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Richmankim: true
+      Eternalchaos: true
+      Drumbattle: true
+      Nibelungen: true
+      Rokisweil: true
+      Intoabyss: true
+      Siegfried: true
+  - Status: Intoabyss
+    Icon: EFST_INTOABYSS
+    DurationLookup: BD_INTOABYSS
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Richmankim: true
+      Eternalchaos: true
+      Drumbattle: true
+      Nibelungen: true
+      Rokisweil: true
+      Intoabyss: true
+      Siegfried: true
+  - Status: Siegfried
+    Icon: EFST_SIEGFRIED
+    DurationLookup: BD_SIEGFRIED
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Richmankim: true
+      Eternalchaos: true
+      Drumbattle: true
+      Nibelungen: true
+      Rokisweil: true
+      Intoabyss: true
+      Siegfried: true
+  - Status: Whistle
+    Icon: EFST_WHISTLE
+    DurationLookup: BA_WHISTLE
+    CalcFlags:
+      Flee: true
+      Flee2: true
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Whistle: true
+      Assncros: true
+      Poembragi: true
+      Appleidun: true
+  - Status: Assncros
+    Icon: EFST_ASSASSINCROSS
+    DurationLookup: BA_ASSASSINCROSS
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoRemoveOnDead: true
+      FailedMado: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Quagmire: true
+    End:
+      Whistle: true
+      Assncros: true
+      Poembragi: true
+      Appleidun: true
+  - Status: Poembragi
+    Icon: EFST_POEMBRAGI
+    DurationLookup: BA_POEMBRAGI
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Whistle: true
+      Assncros: true
+      Poembragi: true
+      Appleidun: true
+  - Status: Appleidun
+    Icon: EFST_APPLEIDUN
+    DurationLookup: BA_APPLEIDUN
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Whistle: true
+      Assncros: true
+      Poembragi: true
+      Appleidun: true
+  - Status: Modechange
+    DurationLookup: NPC_EMOTION
+    CalcFlags:
+      Mode: true
+  - Status: Humming
+    Icon: EFST_HUMMING
+    DurationLookup: DC_HUMMING
+    CalcFlags:
+      Hit: true
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Dontforgetme: true
+      Humming: true
+      Fortune: true
+      Service4u: true
+  - Status: Dontforgetme
+    Icon: EFST_DONTFORGETME
+    DurationLookup: DC_DONTFORGETME
+    CalcFlags:
+      Speed: true
+      Aspd: true
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Speedup1: true
+    End:
+      Increaseagi: true
+      Adrenaline: true
+      Adrenaline2: true
+      Spearquicken: true
+      Twohandquicken: true
+      Onehand: true
+      Merc_Quicken: true
+      Acceleration: true
+      Dontforgetme: true
+      Humming: true
+      Fortune: true
+      Service4u: true
+  - Status: Fortune
+    Icon: EFST_FORTUNEKISS
+    DurationLookup: DC_FORTUNEKISS
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Dontforgetme: true
+      Humming: true
+      Fortune: true
+      Service4u: true
+  - Status: Service4u
+    Icon: EFST_SERVICEFORYOU
+    DurationLookup: DC_SERVICEFORYOU
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Dontforgetme: true
+      Humming: true
+      Fortune: true
+      Service4u: true
+  - Status: Stop
+    Icon: EFST_STOP
+    DurationLookup: NPC_STOP
+    States:
+      NoMove: true
+    Flags:
+      StopWalking: true
+      NoSave: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+      Debuff: true
+  - Status: Spurt
+    Icon: EFST_STRUP
+    DurationLookup: TK_RUN
+    CalcFlags:
+      Str: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+      RequireWeapon: true
+  - Status: Spirit
+    Icon: EFST_SOULLINK
+    DurationLookup: SL_HIGH
+    CalcFlags:
+      All: true
+    Opt3:
+      SoulLink: true
+    Flags:
+      NoClearance: true
+      NoSave: true
+      NoBanishingBuster: true
+    End:
+      Soulgolem: true
+      Soulshadow: true
+      Soulfalcon: true
+      Soulfairy: true
+  - Status: Coma
+    DurationLookup: NPC_DARKBLESSING
+    Flags:
+      BossResist: true
+      MvpResist: true
+  - Status: Intravision
+    Icon: EFST_CLAIRVOYANCE
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incallstatus
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Incstr
+    CalcFlags:
+      Str: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Incagi
+    CalcFlags:
+      Agi: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incvit
+    CalcFlags:
+      Vit: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incint
+    CalcFlags:
+      Int: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incdex
+    CalcFlags:
+      Dex: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incluk
+    CalcFlags:
+      Luk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Inchit
+    CalcFlags:
+      Hit: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Inchitrate
+    DurationLookup: NPC_POWERUP
+    CalcFlags:
+      Hit: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incflee
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incfleerate
+    DurationLookup: NPC_AGIUP
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incmhprate
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incmsprate
+    CalcFlags:
+      MaxSp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incatkrate
+    CalcFlags:
+      Batk: true
+      Watk: true
+    Opt3:
+      ExplosionSpirits: true
+    Flags:
+      SendOption: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incmatkrate
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incdefrate
+    CalcFlags:
+      Def: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Strfood
+    Icon: EFST_FOOD_STR
+    CalcFlags:
+      Str: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Food_Str_Cash: true
+  - Status: Agifood
+    Icon: EFST_FOOD_AGI
+    CalcFlags:
+      Agi: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Food_Agi_Cash: true
+  - Status: Vitfood
+    Icon: EFST_FOOD_VIT
+    CalcFlags:
+      Vit: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Food_Vit_Cash: true
+  - Status: Intfood
+    Icon: EFST_FOOD_INT
+    CalcFlags:
+      Int: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Food_Int_Cash: true
+  - Status: Dexfood
+    Icon: EFST_FOOD_DEX
+    CalcFlags:
+      Dex: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Food_Dex_Cash: true
+  - Status: Lukfood
+    Icon: EFST_FOOD_LUK
+    CalcFlags:
+      Luk: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Food_Luk_Cash: true
+  - Status: Hitfood
+    Icon: EFST_FOOD_BASICHIT
+    CalcFlags:
+      Hit: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Fleefood
+    Icon: EFST_FOOD_BASICAVOIDANCE
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Batkfood
+    CalcFlags:
+      Batk: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Watkfood
+    CalcFlags:
+      Watk: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Matkfood
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Scresist
+    DurationLookup: PA_GOSPEL
+  - Status: Xmas
+    States:
+      NoAttack: true
+    Options:
+      Xmas: true
+    Flags:
+      SendLook: true
+      StopAttacking: true
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Warm
+    Icon: EFST_SG_SUN_WARM
+    DurationLookup: SG_SUN_WARM
+    Opt3:
+      Warm: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+      RemoveOnMapWarp: true
+  - Status: Sun_Comfort
+    Icon: EFST_SUN_COMFORT
+    DurationLookup: SG_SUN_COMFORT
+    CalcFlags:
+      Def2: true
+    Flags:
+      RemoveOnMapWarp: true
+  - Status: Moon_Comfort
+    Icon: EFST_MOON_COMFORT
+    DurationLookup: SG_MOON_COMFORT
+    CalcFlags:
+      Flee: true
+    Flags:
+      RemoveOnMapWarp: true
+  - Status: Star_Comfort
+    Icon: EFST_STAR_COMFORT
+    DurationLookup: SG_STAR_COMFORT
+    CalcFlags:
+      Aspd: true
+    Flags:
+      RemoveOnMapWarp: true
+  - Status: Fusion
+    DurationLookup: SG_FUSION
+    CalcFlags:
+      Speed: true
+    Options:
+      Flying: true
+    Flags:
+      SendOption: true
+      NoRemoveOnDead: true
+    End:
+      Spirit: true
+  - Status: Skillrate_Up
+    DurationLookup: SG_FRIEND
+  - Status: Ske
+    DurationLookup: SL_SKE
+    CalcFlags:
+      Batk: true
+      Watk: true
+      Def: true
+      Def2: true
+    Opt3:
+      EnergyCoat: true
+  - Status: Kaite
+    Icon: EFST_KAITE
+    DurationLookup: SL_KAITE
+    Opt3:
+      Kaite: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+    End:
+      Assumptio: true
+  - Status: Swoo
+    Icon: EFST_SWOO
+    DurationLookup: SL_SWOO
+    CalcFlags:
+      Speed: true
+    Opt3:
+      OverThrust: true
+    Flags:
+      NonPlayer: true
+  - Status: Ska
+    DurationLookup: SL_SKA
+    CalcFlags:
+      Def2: true
+      MDef2: true
+      Speed: true
+      Aspd: true
+    Opt3:
+      SteelBody: true
+    Flags:
+      NonPlayer: true
+  - Status: Earthscroll
+    Icon: EFST_EARTHSCROLL
+    DurationLookup: TK_SPTIME
+    CalcFlags:
+      Def: true
+      Mdef: true
+      Aspd: true
+    Flags:
+      NoRemoveOnDead: true
+  - Status: Miracle
+    Icon: EFST_SOULLINK
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      RemoveOnMapWarp: true
+      NoRemoveOnDead: true
+      NoClearance: true
+  - Status: Madnesscancel
+    Icon: EFST_GS_MADNESSCANCEL
+    DurationLookup: GS_MADNESSCANCEL
+    States:
+      NoMove: true
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+    Fail:
+      P_Alter: true
+      Heat_Barrel: true
+    End:
+      Adjustment: true
+  - Status: Adjustment
+    Icon: EFST_GS_ADJUSTMENT
+    DurationLookup: GS_ADJUSTMENT
+    CalcFlags:
+      Hit: true
+      Flee: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+    End:
+      Madnesscancel: true
+  - Status: Increasing
+    Icon: EFST_GS_ACCURACY
+    DurationLookup: GS_INCREASING
+    CalcFlags:
+      Agi: true
+      Dex: true
+      Hit: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Gatlingfever
+    Icon: EFST_GS_GATLINGFEVER
+    DurationLookup: GS_GATLINGFEVER
+    CalcFlags:
+      Flee: true
+      Speed: true
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      RequireWeapon: true
+  - Status: Tatamigaeshi
+    DurationLookup: NJ_TATAMIGAESHI
+  - Status: Utsusemi
+    Icon: EFST_NJ_UTSUSEMI
+    DurationLookup: NJ_UTSUSEMI
+    Flags:
+      NoSave: true
+      NoClearance: true
+      NoBanishingBuster: true
+      NoDispell: true
+  - Status: Bunsinjyutsu
+    Icon: EFST_NJ_BUNSINJYUTSU
+    DurationLookup: NJ_BUNSINJYUTSU
+    CalcFlags:
+      Dye: true
+    Opt3:
+      Bunsin: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+  - Status: Kaensin
+  - Status: Suiton
+    Icon: EFST_NJ_SUITON
+    DurationLookup: NJ_SUITON
+    CalcFlags:
+      Agi: true
+      Speed: true
+    Flags:
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      NoRemoveOnDead: true
+      Debuff: true
+  - Status: Nen
+    Icon: EFST_NJ_NEN
+    DurationLookup: NJ_NEN
+    CalcFlags:
+      Str: true
+      Int: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Knowledge
+    DurationLookup: SG_KNOWLEDGE
+    CalcFlags:
+      All: true
+    Flags:
+      RestartOnMapWarp: true
+  - Status: Sma
+    Icon: EFST_SMA_READY
+    DurationLookup: SL_SMA
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Fling
+    DurationLookup: GS_FLING
+    CalcFlags:
+      Def: true
+      Def2: true
+  - Status: Avoid
+    DurationLookup: HLIF_AVOID
+    CalcFlags:
+      Speed: true
+  - Status: Change
+    DurationLookup: HLIF_CHANGE
+    CalcFlags:
+      Vit: true
+      Int: true
+    Flags:
+      RemoveOnChangeMap: true
+    Fail:
+      Change: true
+  - Status: Bloodlust
+    DurationLookup: HAMI_BLOODLUST
+    CalcFlags:
+      Batk: true
+      Watk: true
+  - Status: Fleet
+    DurationLookup: HFLI_FLEET
+    CalcFlags:
+      Aspd: true
+      Batk: true
+      Watk: true
+  - Status: Speed
+    DurationLookup: HFLI_SPEED
+    CalcFlags:
+      Flee: true
+  - Status: Defence
+    DurationLookup: HAMI_DEFENCE
+    CalcFlags:
+      Vit: true
+  - Status: Incaspdrate
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Incflee2
+    Icon: EFST_PLUSAVOIDVALUE
+    CalcFlags:
+      Flee2: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Jailed
+    States:
+      NoWarp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Enchantarms
+    Icon: EFST_WEAPONPROPERTY
+    DurationLookup: ITEM_ENCHANTARMS
+    CalcFlags:
+      Atk_Ele: true
+    Flags:
+      SendVal1: true
+      OverlapIgnoreLevel: true
+  - Status: Magicalattack
+    DurationLookup: NPC_MAGICALATTACK
+    CalcFlags:
+      Matk: true
+  - Status: Armorchange
+    DurationLookup: NPC_STONESKIN
+    CalcFlags:
+      Def: true
+      Mdef: true
+  - Status: Criticalwound
+    Icon: EFST_CRITICALWOUND
+    DurationLookup: NPC_CRITICALWOUND
+    Flags:
+      Debuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Magicmirror
+    DurationLookup: NPC_MAGICMIRROR
+  - Status: Slowcast
+    Icon: EFST_SLOWCAST
+    DurationLookup: NPC_SLOWCAST
+    Flags:
+      Debuff: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Summer
+    States:
+      NoAttack: true
+    Options:
+      Summer: true
+    Flags:
+      SendLook: true
+      StopAttacking: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Expboost
+    Icon: EFST_CASH_PLUSEXP
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Itemboost
+    Icon: EFST_CASH_RECEIVEITEM
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Bossmapinfo
+    Icon: EFST_CASH_BOSS_ALARM
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveOnMapWarp: true
+      OverlapFail: true
+  - Status: Lifeinsurance
+    Icon: EFST_CASH_DEATHPENALTY
+    States:
+      NoDeathPenalty: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Inccri
+    Icon: EFST_CRITICALPERCENT
+    CalcFlags:
+      Cri: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  #- Status: Incdef
+  #- Status: Incbaseatk
+  #- Status: Fastcast
+  - Status: Mdef_Rate
+    Icon: EFST_PROTECT_MDEF
+    CalcFlags:
+      Mdef: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  #- Status: Hpregen
+  - Status: Inchealrate
+    Icon: EFST_HEALPLUS
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Pneuma
+    DurationLookup: AL_PNEUMA
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Autotrade
+    Flags:
+      NoRemoveOnDead: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Ksprotected
+  - Status: Armor_Resist
+    CalcFlags:
+      All: true
+    Flags:
+      OverlapIgnoreLevel: true
+  - Status: Spcost_Rate
+    Icon: EFST_ATKER_BLOOD
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Commonsc_Resist
+    Icon: EFST_TARGET_BLOOD
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Sevenwind
+    DurationLookup: TK_SEVENWIND
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Def_Rate
+    Icon: EFST_PROTECT_DEF
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  #- Status: Spregen
+  - Status: Walkspeed
+    CalcFlags:
+      Speed: true
+  - Status: Merc_Fleeup
+    Icon: EFST_MER_FLEE
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Merc_Atkup
+    Icon: EFST_MER_ATK
+    CalcFlags:
+      Watk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Merc_Hpup
+    Icon: EFST_MER_HP
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Merc_Spup
+    Icon: EFST_MER_SP
+    CalcFlags:
+      MaxSp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Merc_Hitup
+    Icon: EFST_MER_HIT
+    CalcFlags:
+      Hit: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Merc_Quicken
+    DurationLookup: MER_QUICKEN
+    CalcFlags:
+      Aspd: true
+    Opt3:
+      Quicken: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Decreaseagi: true
+  - Status: Rebirth
+    DurationLookup: NPC_REBIRTH
+  #- Status: Skillcastrate
+  #- Status: Defratioatk
+  #- Status: Hpdrain
+  #- Status: Skillatkbonus
+  - Status: Itemscript
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: S_Lifepotion
+    Icon: EFST_S_LIFEPOTION
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+      NoRemoveOnDead: true
+  - Status: L_Lifepotion
+    Icon: EFST_L_LIFEPOTION
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+      NoRemoveOnDead: true
+  - Status: Jexpboost
+    Icon: EFST_CASH_PLUSONLYJOBEXP
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+  #- Status: Ignoredef
+  - Status: Hellpower
+    Icon: EFST_HELLPOWER
+    DurationLookup: NPC_HELLPOWER
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Invincible
+    Icon: EFST_INVINCIBLE
+    DurationLookup: NPC_INVINCIBLE
+    CalcFlags:
+      Speed: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Invincibleoff: true
+  - Status: Invincibleoff
+    DurationLookup: NPC_INVINCIBLEOFF
+    CalcFlags:
+      Speed: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Invincible: true
+  - Status: Manu_Atk
+    Icon: EFST_MANU_ATK
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Manu_Def
+    Icon: EFST_MANU_DEF
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Spl_Atk
+    Icon: EFST_SPL_ATK
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Spl_Def
+    Icon: EFST_SPL_DEF
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Manu_Matk
+    Icon: EFST_MANU_MATK
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Spl_Matk
+    Icon: EFST_SPL_MATK
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Food_Str_Cash
+    Icon: EFST_FOOD_STR_CASH
+    CalcFlags:
+      Str: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Strfood: true
+  - Status: Food_Agi_Cash
+    Icon: EFST_FOOD_AGI_CASH
+    CalcFlags:
+      Agi: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Agifood: true
+  - Status: Food_Vit_Cash
+    Icon: EFST_FOOD_VIT_CASH
+    CalcFlags:
+      Vit: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Vitfood: true
+  - Status: Food_Dex_Cash
+    Icon: EFST_FOOD_DEX_CASH
+    CalcFlags:
+      Dex: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Intfood: true
+  - Status: Food_Int_Cash
+    Icon: EFST_FOOD_INT_CASH
+    CalcFlags:
+      Int: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Dexfood: true
+  - Status: Food_Luk_Cash
+    Icon: EFST_FOOD_LUK_CASH
+    CalcFlags:
+      Luk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Lukfood: true
+  - Status: Fear
+    DurationLookup: RK_WINDCUTTER
+    States:
+      NoMove: true
+      NoMoveCond: true
+    CalcFlags:
+      Flee: true
+      Hit: true
+    Flags:
+      BossResist: true
+      StopWalking: true
+      OverlapFail: true
+      Debuff: true
+    Fail:
+      Inspiration: true
+    End:
+      Blind: true
+  - Status: Burning
+    Icon: EFST_BURNT
+    DurationLookup: RK_DRAGONBREATH
+    CalcFlags:
+      Mdef: true
+    Opt1: Burning
+    Flags:
+      SendOption: true
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      Debuff: true
+      OverlapFail: true
+      SpreadEffect: true
+    MinDuration: 10000
+    Fail:
+      Refresh: true
+      Inspiration: true
+  - Status: Freezing
+    Icon: EFST_FROSTMISTY
+    DurationLookup: WL_FROSTMISTY
+    CalcFlags:
+      Aspd: true
+      Speed: true
+      Def: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+      SpreadEffect: true
+    MinDuration: 6000
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Warmer: true
+  - Status: Enchantblade
+    Icon: EFST_ENCHANTBLADE
+    DurationLookup: RK_ENCHANTBLADE
+  - Status: Deathbound
+    Icon: EFST_DEATHBOUND
+    DurationLookup: RK_DEATHBOUND
+    States:
+      NoCast: true
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Millenniumshield
+    Icon: EFST_REUSE_MILLENNIUMSHIELD
+    DurationLookup: RK_MILLENNIUMSHIELD
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Crushstrike
+    Icon: EFST_CRUSHSTRIKE
+    DurationLookup: RK_CRUSHSTRIKE
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+  - Status: Refresh
+    Icon: EFST_REFRESH
+    DurationLookup: RK_REFRESH
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoSave: true
+  - Status: Reuse_Refresh
+    Icon: EFST_REUSE_REFRESH
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Giantgrowth
+    Icon: EFST_GIANTGROWTH
+    DurationLookup: RK_GIANTGROWTH
+    CalcFlags:
+      Str: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Stonehardskin
+    Icon: EFST_STONEHARDSKIN
+    DurationLookup: RK_STONEHARDSKIN
+    CalcFlags:
+      Def: true
+      Mdef: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoRemoveOnDead: true
+      NoSave: true
+  - Status: Vitalityactivation
+    Icon: EFST_VITALITYACTIVATION
+    DurationLookup: RK_VITALITYACTIVATION
+    CalcFlags:
+      Regen: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Stormblast
+    DurationLookup: RK_VITALITYACTIVATION
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoRemoveOnDead: true
+  - Status: Fightingspirit
+    Icon: EFST_FIGHTINGSPIRIT
+    DurationLookup: RK_FIGHTINGSPIRIT
+    CalcFlags:
+      Watk: true
+      Aspd: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal2: true
+    End:
+      Fightingspirit: true
+  - Status: Abundance
+    Icon: EFST_ABUNDANCE
+    DurationLookup: RK_ABUNDANCE
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Adoramus
+    Icon: EFST_ADORAMUS
+    DurationLookup: AB_ADORAMUS
+    CalcFlags:
+      Agi: true
+      Speed: true
+    Flags:
+      BossResist: true
+      Debuff: true
+    End:
+      Decreaseagi: true
+  - Status: Epiclesis
+    Icon: EFST_EPICLESIS
+    DurationLookup: AB_EPICLESIS
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Oratio
+    Icon: EFST_ORATIO
+    DurationLookup: AB_ORATIO
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Laudaagnus
+    Icon: EFST_LAUDAAGNUS
+    DurationLookup: AB_LAUDAAGNUS
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Laudaramus
+    Icon: EFST_LAUDARAMUS
+    DurationLookup: AB_LAUDARAMUS
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Renovatio
+    Icon: EFST_RENOVATIO
+    DurationLookup: AB_RENOVATIO
+    CalcFlags:
+      Regen: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Expiatio
+    Icon: EFST_EXPIATIO
+    DurationLookup: AB_EXPIATIO
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Duplelight
+    Icon: EFST_DUPLELIGHT
+    DurationLookup: AB_DUPLELIGHT
+    Flags:
+      DisplayPc: true
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Secrament
+    Icon: EFST_AB_SECRAMENT
+    DurationLookup: AB_SECRAMENT
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Whiteimprison
+    DurationLookup: WL_WHITEIMPRISON
+    States:
+      NoMove: true
+      NoCast: true
+    Opt1: Imprison
+    Flags:
+      SendOption: true
+      BossResist: true
+      SetStand: true
+      StopWalking: true
+      StopAttacking: true
+      StopCasting: true
+      OverlapFail: true
+    End:
+      Burning: true
+      Freezing: true
+      Freeze: true
+      Stone: true
+  - Status: Marshofabyss
+    Icon: EFST_MARSHOFABYSS
+    DurationLookup: WL_MARSHOFABYSS
+    CalcFlags:
+      Agi: true
+      Dex: true
+      Speed: true
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+    MinDuration: 5000
+    Fail:
+      Refresh: true
+    End:
+      Increaseagi: true
+      Windwalk: true
+      Aspdpotion0: true
+      Aspdpotion1: true
+      Aspdpotion2: true
+      Aspdpotion3: true
+  - Status: Recognizedspell
+    Icon: EFST_RECOGNIZEDSPELL
+    DurationLookup: WL_RECOGNIZEDSPELL
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Stasis
+    Icon: EFST_STASIS
+    DurationLookup: WL_STASIS
+    MinDuration: 10000
+  - Status: Sphere_1
+    Icon: EFST_SUMMON1
+    Flags:
+      DisplayPc: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Sphere_2
+    Icon: EFST_SUMMON2
+    Flags:
+      DisplayPc: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Sphere_3
+    Icon: EFST_SUMMON3
+    Flags:
+      DisplayPc: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Sphere_4
+    Icon: EFST_SUMMON4
+    Flags:
+      DisplayPc: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Sphere_5
+    Icon: EFST_SUMMON5
+    Flags:
+      DisplayPc: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Reading_Sb
+  - Status: Freeze_Sp
+    Icon: EFST_FREEZE_SP
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      NoRemoveOnDead: true
+  - Status: Fearbreeze
+    Icon: EFST_FEARBREEZE
+    DurationLookup: RA_FEARBREEZE
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Electricshocker
+    Icon: EFST_ELECTRICSHOCKER
+    DurationLookup: RA_ELECTRICSHOCKER
+    States:
+      NoMove: true
+    Flags:
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoSave: true
+      OverlapFail: true
+      NoClearance: true
+  - Status: Wugdash
+    Icon: EFST_WUGDASH
+    DurationLookup: RA_WUGDASH
+    CalcFlags:
+      Speed: true
+      Dspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      RemoveOnChangeMap: true
+  - Status: Bite
+    Icon: EFST_WUGBITE
+    DurationLookup: RA_WUGBITE
+    States:
+      NoMove: true
+    Flags:
+      BossResist: true
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      Debuff: true
+    MinRate: 5000
+  - Status: Camouflage
+    Icon: EFST_CAMOUFLAGE
+    DurationLookup: RA_CAMOUFLAGE
+    States:
+      NoMove: true
+      NoMoveCond: true
+    CalcFlags:
+      Speed: true
+    Flags:
+      DisplayPc: true
+      OnTouch: true
+      StopAttacking: true
+      RemoveOnDamaged: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      RemoveOnChangeMap: true
+  - Status: Acceleration
+    Icon: EFST_ACCELERATION
+    DurationLookup: NC_ACCELERATION
+    CalcFlags:
+      Speed: true
+    Flags:
+      MadoEndCancel: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Hovering
+    Icon: EFST_HOVERING
+    DurationLookup: NC_HOVERING
+    CalcFlags:
+      Speed: true
+    Flags:
+      MadoEndCancel: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Shapeshift
+    Icon: EFST_SHAPESHIFT
+    DurationLookup: NC_SHAPESHIFT
+    CalcFlags:
+      Def_Ele: true
+    Flags:
+      MadoEndCancel: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Infraredscan
+    Icon: EFST_INFRAREDSCAN
+    DurationLookup: NC_INFRAREDSCAN
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Analyze
+    Icon: EFST_ANALYZE
+    DurationLookup: NC_ANALYZE
+    CalcFlags:
+      Def: true
+      Def2: true
+      Mdef: true
+      MDef2: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Magneticfield
+    Icon: EFST_MAGNETICFIELD
+    DurationLookup: NC_MAGNETICFIELD
+    States:
+      NoMove: true
+    Flags:
+      MadoEndCancel: true
+      BossResist: true
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      Debuff: true
+    Fail:
+      Hovering: true
+  - Status: Neutralbarrier
+    Icon: EFST_NEUTRALBARRIER
+    DurationLookup: NC_NEUTRALBARRIER
+    CalcFlags:
+      Def: true
+      Mdef: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Neutralbarrier_Master
+    Icon: EFST_NEUTRALBARRIER_MASTER
+    Flags:
+      MadoEndCancel: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      RemoveOnChangeMap: true
+  - Status: Stealthfield
+    Icon: EFST_STEALTHFIELD
+    DurationLookup: NC_STEALTHFIELD
+    CalcFlags:
+      Speed: true
+    Flags:
+      DisplayPc: true
+      OnTouch: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      StopAttacking: true
+  - Status: Stealthfield_Master
+    Icon: EFST_STEALTHFIELD_MASTER
+    CalcFlags:
+      Speed: true
+    Flags:
+      MadoEndCancel: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      RemoveOnChangeMap: true
+  - Status: Overheat
+    Icon: EFST_OVERHEAT
+    Flags:
+      MadoEndCancel: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Overheat_Limitpoint
+    Icon: EFST_OVERHEAT_LIMITPOINT
+    Flags:
+      MadoEndCancel: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Venomimpress
+    Icon: EFST_VENOMIMPRESS
+    DurationLookup: GC_VENOMIMPRESS
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal2: true
+  - Status: Poisoningweapon
+    Icon: EFST_POISONINGWEAPON
+    DurationLookup: GC_POISONINGWEAPON
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal3: true
+  - Status: Weaponblocking
+    Icon: EFST_WEAPONBLOCKING
+    DurationLookup: GC_WEAPONBLOCKING
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal2: true
+  #- Status: Weaponblocking_Postdelay
+  #  Icon: EFST_WEAPONBLOCKING_POSTDELAY
+  #  Flags:
+  #    NoDispell: true
+  #    NoBanishingBuster: true
+  #    NoClearance: true
+  #    NoRemoveOnDead: true
+  #    NoSave: true
+  - Status: Cloakingexceed
+    Icon: EFST_CLOAKINGEXCEED
+    DurationLookup: GC_CLOAKINGEXCEED
+    States:
+      NoPickItem: true
+    CalcFlags:
+      Speed: true
+    Options:
+      Cloak: true
+    Flags:
+      OnTouch: true
+      StopAttacking: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveOnMapWarp: true
+      SendVal3: true
+  - Status: Hallucinationwalk
+    Icon: EFST_HALLUCINATIONWALK
+    DurationLookup: GC_HALLUCINATIONWALK
+    CalcFlags:
+      Flee: true
+    Flags:
+      DisplayPc: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal3: true
+  - Status: Hallucinationwalk_Postdelay
+    Icon: EFST_HALLUCINATIONWALK_POSTDELAY
+    DurationLookup: GC_HALLUCINATIONWALK
+    CalcFlags:
+      Speed: true
+      Aspd: true
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Rollingcutter
+    Icon: EFST_ROLLINGCUTTER
+    DurationLookup: GC_ROLLINGCUTTER
+    Flags:
+      DisplayPc: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Toxin
+    Icon: EFST_TOXIN
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+      SpreadEffect: true
+  - Status: Paralyse
+    Icon: EFST_PARALYSE
+    CalcFlags:
+      Flee: true
+      Speed: true
+      Aspd: true
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+      SpreadEffect: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Toxin: true
+      Paralyse: true
+      Venombleed: true
+      Magicmushroom: true
+      Deathhurt: true
+      Pyrexia: true
+      Oblivioncurse: true
+      Leechesend: true
+  - Status: Venombleed
+    Icon: EFST_VENOMBLEED
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+      SpreadEffect: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Toxin: true
+      Paralyse: true
+      Venombleed: true
+      Magicmushroom: true
+      Deathhurt: true
+      Pyrexia: true
+      Oblivioncurse: true
+      Leechesend: true
+  - Status: Magicmushroom
+    Icon: EFST_MAGICMUSHROOM
+    CalcFlags:
+      Regen: true
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+      SpreadEffect: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Toxin: true
+      Paralyse: true
+      Venombleed: true
+      Magicmushroom: true
+      Deathhurt: true
+      Pyrexia: true
+      Oblivioncurse: true
+      Leechesend: true
+  - Status: Deathhurt
+    Icon: EFST_DEATHHURT
+    CalcFlags:
+      Regen: true
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+      SpreadEffect: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Toxin: true
+      Paralyse: true
+      Venombleed: true
+      Magicmushroom: true
+      Deathhurt: true
+      Pyrexia: true
+      Oblivioncurse: true
+      Leechesend: true
+  - Status: Pyrexia
+    Icon: EFST_PYREXIA
+    CalcFlags:
+      All: true
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+      SpreadEffect: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Toxin: true
+      Paralyse: true
+      Venombleed: true
+      Magicmushroom: true
+      Deathhurt: true
+      Pyrexia: true
+      Oblivioncurse: true
+      Leechesend: true
+  - Status: Oblivioncurse
+    Icon: EFST_OBLIVIONCURSE
+    States:
+      NoCast: true
+      Nocastcond: true
+    CalcFlags:
+      Regen: true
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+      SpreadEffect: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Toxin: true
+      Paralyse: true
+      Venombleed: true
+      Magicmushroom: true
+      Deathhurt: true
+      Pyrexia: true
+      Oblivioncurse: true
+      Leechesend: true
+  - Status: Leechesend
+    Icon: EFST_LEECHESEND
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+      SpreadEffect: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Toxin: true
+      Paralyse: true
+      Venombleed: true
+      Magicmushroom: true
+      Deathhurt: true
+      Pyrexia: true
+      Oblivioncurse: true
+      Leechesend: true
+  - Status: Reflectdamage
+    Icon: EFST_LG_REFLECTDAMAGE
+    DurationLookup: LG_REFLECTDAMAGE
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      RequireShield: true
+    End:
+      Reflectshield: true
+  - Status: Forceofvanguard
+    Icon: EFST_FORCEOFVANGUARD
+    DurationLookup: LG_FORCEOFVANGUARD
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal3: true
+  - Status: Shieldspell_Hp
+    Icon: EFST_SHIELDSPELL
+    DurationLookup: LG_SHIELDSPELL
+    End:
+      Shieldspell_Sp: true
+      Shieldspell_Atk: true
+  - Status: Shieldspell_Sp
+    Icon: EFST_SHIELDSPELL
+    DurationLookup: LG_SHIELDSPELL
+    End:
+      Shieldspell_Hp: true
+      Shieldspell_Atk: true
+  - Status: Shieldspell_Atk
+    Icon: EFST_SHIELDSPELL
+    DurationLookup: LG_SHIELDSPELL
+    CalcFlags:
+      Watk: true
+      Matk: true
+    End:
+      Shieldspell_Hp: true
+      Shieldspell_Sp: true
+  - Status: Exeedbreak
+    Icon: EFST_EXEEDBREAK
+    DurationLookup: LG_EXEEDBREAK
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Prestige
+    Icon: EFST_PRESTIGE
+    DurationLookup: LG_PRESTIGE
+    CalcFlags:
+      Def: true
+    Flags:
+      SendVal2: true
+  - Status: Banding
+    Icon: EFST_BANDING
+    DurationLookup: LG_BANDING
+    CalcFlags:
+      Def: true
+    Flags:
+      DisplayPc: true
+      OverlapFail: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+    End:
+      Prestige: true
+  - Status: Banding_Defence
+    Icon: EFST_BANDING_DEFENCE
+    Flags:
+      BossResist: true
+      OverlapFail: true
+  - Status: Earthdrive
+    Icon: EFST_EARTHDRIVE
+    DurationLookup: LG_EARTHDRIVE
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Inspiration
+    Icon: EFST_INSPIRATION
+    DurationLookup: LG_INSPIRATION
+    CalcFlags:
+      Watk: true
+      Matk: true
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+      Hit: true
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Spellfist
+    Icon: EFST_SPELLFIST
+    DurationLookup: SO_SPELLFIST
+    Flags:
+      SendVal3: true
+  - Status: Crystalize
+    Icon: EFST_COLD
+    DurationLookup: SO_DIAMONDDUST
+    States:
+      NoMove: true
+      NoMoveCond: true
+      NoCast: true
+      NoCastCond: true
+      NoConsumeItem: true
+      NoAttack: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      SendOption: true
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      StopAttacking: true
+      StopWalking: true
+      StopCasting: true
+      SetStand: true
+      Debuff: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+      Warmer: true
+  - Status: Striking
+    Icon: EFST_STRIKING
+    DurationLookup: SO_STRIKING
+    CalcFlags:
+      All: true
+    Flags:
+      NoSave: true
+  - Status: Warmer
+    Icon: EFST_WARMER
+    DurationLookup: SO_WARMER
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Crystalize: true
+      Freezing: true
+      Freeze: true
+  - Status: Vacuum_Extreme
+    Icon: EFST_VACUUM_EXTREME
+    DurationLookup: SO_VACUUM_EXTREME
+    Flags:
+      BossResist: true
+      StopWalking: true
+      StopAttacking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      RemoveOnChangeMap: true
+      Debuff: true
+    Fail:
+      Hallucinationwalk: true
+      Hovering: true
+      Npc_HallucinationWalk: true
+      Vacuum_Extreme: true
+    States:
+      Nomove: true
+  - Status: Propertywalk
+    Icon: EFST_PROPERTYWALK
+    DurationLookup: SO_FIREWALK
+    Flags:
+      NoSave: true
+      RemoveOnMapWarp: true
+      SendVal2: true
+  - Status: Swingdance
+    Icon: EFST_SWING
+    DurationLookup: WA_SWING_DANCE
+    CalcFlags:
+      Speed: true
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Symphonyoflover: true
+      Moonlitserenade: true
+      Rushwindmill: true
+      Echosong: true
+      Harmonize: true
+  - Status: Symphonyoflover
+    Icon: EFST_SYMPHONY_LOVE
+    DurationLookup: WA_SYMPHONY_OF_LOVER
+    CalcFlags:
+      Mdef: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Swingdance: true
+      Moonlitserenade: true
+      Rushwindmill: true
+      Echosong: true
+      Harmonize: true
+  - Status: Moonlitserenade
+    Icon: EFST_MOONLIT_SERENADE
+    DurationLookup: WA_MOONLIT_SERENADE
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Swingdance: true
+      Symphonyoflover: true
+      Rushwindmill: true
+      Echosong: true
+      Harmonize: true
+  - Status: Rushwindmill
+    Icon: EFST_RUSH_WINDMILL
+    DurationLookup: MI_RUSH_WINDMILL
+    CalcFlags:
+      Watk: true
+      Speed: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Swingdance: true
+      Symphonyoflover: true
+      Moonlitserenade: true
+      Echosong: true
+      Harmonize: true
+  - Status: Echosong
+    Icon: EFST_ECHOSONG
+    DurationLookup: MI_ECHOSONG
+    CalcFlags:
+      Def: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Swingdance: true
+      Symphonyoflover: true
+      Moonlitserenade: true
+      Rushwindmill: true
+      Harmonize: true
+  - Status: Harmonize
+    Icon: EFST_HARMONIZE
+    DurationLookup: MI_HARMONIZE
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    End:
+      Swingdance: true
+      Symphonyoflover: true
+      Moonlitserenade: true
+      Rushwindmill: true
+      Echosong: true
+  - Status: Voiceofsiren
+    Icon: EFST_SIREN
+    DurationLookup: WM_VOICEOFSIREN
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      StopAttacking: true
+    MinDuration: 10000
+    End:
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+  - Status: Deepsleep
+    Icon: EFST_HANDICAPSTATE_DEEP_SLEEP
+    DurationLookup: WM_LULLABY_DEEPSLEEP
+    States:
+      NoCast: true
+      NoChat: true
+      NoConsumeItem: true
+      NoMove: true
+      NoAttack: true
+    Opt1: Sleep
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      BossResist: true
+      StopWalking: true
+      StopAttacking: true
+      StopCasting: true
+      SetStand: true
+      RemoveOnDamaged: true
+      NoSave: true
+      Debuff: true
+      OverlapFail: true
+    MinDuration: 5000
+    Fail:
+      Refresh: true
+      Inspiration: true
+    End:
+      Dancing: true
+      Voiceofsiren: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+  - Status: Sircleofnature
+    Icon: EFST_SIRCLEOFNATURE
+    DurationLookup: WM_SIRCLEOFNATURE
+    End:
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+    CalcFlags:
+      Regen: true
+  - Status: Gloomyday
+    Icon: EFST_GLOOMYDAY
+    DurationLookup: WM_GLOOMYDAY
+    CalcFlags:
+      Flee: true
+      Speed: true
+      Aspd: true
+    End:
+      Voiceofsiren: true
+      Deepsleep: true
+      Songofmana: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+  - Status: Gloomyday_Sk
+    Icon: EFST_GLOOMYDAY
+  - Status: Songofmana
+    Icon: EFST_SONG_OF_MANA
+    DurationLookup: WM_SONG_OF_MANA
+    End:
+      Voiceofsiren: true
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+    CalcFlags:
+      Regen: true
+  - Status: Dancewithwug
+    Icon: EFST_DANCE_WITH_WUG
+    DurationLookup: WM_DANCE_WITH_WUG
+    CalcFlags:
+      Aspd: true
+    End:
+      Voiceofsiren: true
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+  - Status: Saturdaynightfever
+    Icon: EFST_SATURDAY_NIGHT_FEVER
+    DurationLookup: WM_SATURDAY_NIGHT_FEVER
+    States:
+      NoCast: true
+      NoChat: true
+      NoEquipItem: true
+      NoUnEquipItem: true
+      NoConsumeItem: true
+    CalcFlags:
+      Hit: true
+      Flee: true
+      Regen: true
+    Flags:
+      NoSave: true
+    Fail:
+      Berserk: true
+      Inspiration: true
+    End:
+      Voiceofsiren: true
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Dancewithwug: true
+      Leradsdew: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+  - Status: Leradsdew
+    Icon: EFST_LERADS_DEW
+    DurationLookup: WM_LERADS_DEW
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Voiceofsiren: true
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+  - Status: Melodyofsink
+    Icon: EFST_MELODYOFSINK
+    DurationLookup: WM_MELODYOFSINK
+    CalcFlags:
+      Int: true
+      MaxSp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Voiceofsiren: true
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Beyondofwarcry: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+  - Status: Beyondofwarcry
+    Icon: EFST_BEYOND_OF_WARCRY
+    DurationLookup: WM_BEYOND_OF_WARCRY
+    CalcFlags:
+      Str: true
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Voiceofsiren: true
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Melodyofsink: true
+      Unlimitedhummingvoice: true
+      Sircleofnature: true
+  - Status: Unlimitedhummingvoice
+    Icon: EFST_UNLIMITED_HUMMING_VOICE
+    DurationLookup: WM_UNLIMITED_HUMMING_VOICE
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Voiceofsiren: true
+      Deepsleep: true
+      Gloomyday: true
+      Gloomyday_Sk: true
+      Songofmana: true
+      Dancewithwug: true
+      Saturdaynightfever: true
+      Leradsdew: true
+      Melodyofsink: true
+      Beyondofwarcry: true
+      Sircleofnature: true
+  - Status: Sitdown_Force
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Netherworld
+    Icon: EFST_NETHERWORLD
+    DurationLookup: WM_POEMOFNETHERWORLD
+    States:
+      NoMove: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      BossResist: true
+      StopWalking: true
+      OverlapFail: true
+      Debuff: true
+  - Status: Crescentelbow
+    Icon: EFST_CRESCENTELBOW
+    DurationLookup: SR_CRESCENTELBOW
+    Flags:
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal2: true
+  - Status: Cursedcircle_Atker
+    Icon: EFST_CURSEDCIRCLE_ATKER
+    DurationLookup: SR_CURSEDCIRCLE
+    States:
+      NoMove: true
+      NoAttack: true
+    Flags:
+      DisplayPc: true
+      NoClearbuff: true
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      StopAttacking: true
+      RemoveOnChangeMap: true
+      SendVal3: true
+  - Status: Cursedcircle_Target
+    Icon: EFST_CURSEDCIRCLE_TARGET
+    DurationLookup: SR_CURSEDCIRCLE
+    States:
+      NoMove: true
+      NoCast: true
+      NoAttack: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      MobLoseTarget: true
+      NoClearbuff: true
+      StopWalking: true
+      StopAttacking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Lightningwalk
+    Icon: EFST_LIGHTNINGWALK
+    DurationLookup: SR_LIGHTNINGWALK
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Raisingdragon
+    Icon: EFST_RAISINGDRAGON
+    DurationLookup: SR_RAISINGDRAGON
+    CalcFlags:
+      MaxHp: true
+      MaxSp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Gt_Energygain
+    Icon: EFST_GENTLETOUCH_ENERGYGAIN
+    DurationLookup: SR_GENTLETOUCH_ENERGYGAIN
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Gt_Change
+    Icon: EFST_GENTLETOUCH_CHANGE
+    DurationLookup: SR_GENTLETOUCH_CHANGE
+    CalcFlags:
+      Watk: true
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Gt_Revitalize: true
+  - Status: Gt_Revitalize
+    Icon: EFST_GENTLETOUCH_REVITALIZE
+    DurationLookup: SR_GENTLETOUCH_REVITALIZE
+    CalcFlags:
+      MaxHp: true
+      Regen: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Gt_Change: true
+  - Status: Gn_Cartboost
+    Icon: EFST_GN_CARTBOOST
+    DurationLookup: GN_CARTBOOST
+    CalcFlags:
+      Speed: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Quagmire: true
+      Dontforgetme: true
+    End:
+      Decreaseagi: true
+    EndReturn: true
+  - Status: Thornstrap
+    Icon: EFST_THORNS_TRAP
+    DurationLookup: GN_THORNS_TRAP
+    States:
+      NoMove: true
+    Flags:
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Bloodsucker
+    Icon: EFST_BLOOD_SUCKER
+    DurationLookup: GN_BLOOD_SUCKER
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Smokepowder
+    Icon: EFST_FIRE_EXPANSION_SMOKE_POWDER
+    DurationLookup: GN_FIRE_EXPANSION_SMOKE_POWDER
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Teargas
+    Icon: EFST_FIRE_EXPANSION_TEAR_GAS
+    DurationLookup: GN_FIRE_EXPANSION_TEAR_GAS
+    CalcFlags:
+      Hit: true
+      Flee: true
+    Flags:
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Mandragora
+    Icon: EFST_MANDRAGORA
+    DurationLookup: GN_MANDRAGORA
+    CalcFlags:
+      Int: true
+    Flags:
+      RemoveOnRefresh: true
+      RemoveOnLuxAnima: true
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+      OverlapFail: true
+    Fail:
+      Refresh: true
+      Inspiration: true
+  - Status: Stomachache
+    Icon: EFST_STOMACHACHE
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Dex: true
+      Int: true
+      Luk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+  - Status: Mysterious_Powder
+    Icon: EFST_MYSTERIOUS_POWDER
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      Debuff: true
+  - Status: Melon_Bomb
+    Icon: EFST_MELON_BOMB
+    CalcFlags:
+      Speed: true
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Banana_Bomb
+    Icon: EFST_BANANA_BOMB
+    CalcFlags:
+      Luk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Banana_Bomb_Sitdown
+    Icon: EFST_BANANA_BOMB_SITDOWN_POSTDELAY
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Savage_Steak
+    Icon: EFST_SAVAGE_STEAK
+    CalcFlags:
+      Str: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Cocktail_Warg_Blood
+    Icon: EFST_COCKTAIL_WARG_BLOOD
+    CalcFlags:
+      Int: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Minor_Bbq
+    Icon: EFST_MINOR_BBQ
+    CalcFlags:
+      Vit: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Siroma_Ice_Tea
+    Icon: EFST_SIROMA_ICE_TEA
+    CalcFlags:
+      Dex: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Drocera_Herb_Steamed
+    Icon: EFST_DROCERA_HERB_STEAMED
+    CalcFlags:
+      Agi: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Putti_Tails_Noodles
+    Icon: EFST_PUTTI_TAILS_NOODLES
+    CalcFlags:
+      Luk: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+  - Status: Boost500
+    Icon: EFST_BOOST500
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Full_Swing_K
+    Icon: EFST_FULL_SWING_K
+    CalcFlags:
+      Batk: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mana_Plus
+    Icon: EFST_MANA_PLUS
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mustle_M
+    Icon: EFST_MUSTLE_M
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Life_Force_F
+    Icon: EFST_LIFE_FORCE_F
+    CalcFlags:
+      MaxSp: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Extract_White_Potion_Z
+    Icon: EFST_EXTRACT_WHITE_POTION_Z
+    CalcFlags:
+      Regen: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Vitata_500
+    Icon: EFST_VITATA_500
+    CalcFlags:
+      Regen: true
+      MaxSp: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Extract_Salamine_Juice
+    Icon: EFST_EXTRACT_SALAMINE_JUICE
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: _Reproduce
+    Icon: EFST_REPRODUCE
+    DurationLookup: SC_REPRODUCE
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: _Autoshadowspell
+    Icon: EFST_AUTOSHADOWSPELL
+    DurationLookup: SC_AUTOSHADOWSPELL
+    CalcFlags:
+      Matk: true
+  - Status: _Shadowform
+    Icon: EFST_SHADOWFORM
+    DurationLookup: SC_SHADOWFORM
+    States:
+      NoCast: true
+      NoConsumeItem: true
+      NoAttack: true
+    Flags:
+      DisplayPc: true
+      OnTouch: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      RemoveOnChangeMap: true
+      SendVal3: true
+  - Status: _Bodypaint
+    Icon: EFST_BODYPAINT
+    DurationLookup: SC_BODYPAINT
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      SpreadEffect: true
+    Fail:
+      Inspiration: true
+  - Status: _Invisibility
+    Icon: EFST_INVISIBILITY
+    DurationLookup: SC_INVISIBILITY
+    States:
+      NoCast: true
+      NoConsumeItem: true
+    CalcFlags:
+      Aspd: true
+      Cri: true
+      Atk_Ele: true
+    Options:
+      Cloak: true
+    Flags:
+      OnTouch: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal2: true
+    Fail:
+      _Invisibility: true
+  - Status: _Deadlyinfect
+    Icon: EFST_DEADLYINFECT
+    DurationLookup: SC_DEADLYINFECT
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: _Enervation
+    Icon: EFST_ENERVATION
+    DurationLookup: SC_ENERVATION
+    CalcFlags:
+      Batk: true
+      Watk: true
+    Flags:
+      OverlapFail: true
+      BossResist: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal2: true
+    Fail:
+      Inspiration: true
+  - Status: _Groomy
+    Icon: EFST_GROOMY
+    DurationLookup: SC_GROOMY
+    CalcFlags:
+      Aspd: true
+      Hit: true
+    Flags:
+      OverlapFail: true
+      BossResist: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal3: true
+    Fail:
+      Inspiration: true
+  - Status: _Ignorance
+    Icon: EFST_IGNORANCE
+    DurationLookup: SC_IGNORANCE
+    States:
+      NoCast: true
+    Flags:
+      OverlapFail: true
+      BossResist: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Inspiration: true
+  - Status: _Laziness
+    Icon: EFST_LAZINESS
+    DurationLookup: SC_LAZINESS
+    CalcFlags:
+      Flee: true
+      Speed: true
+    Flags:
+      OverlapFail: true
+      BossResist: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal3: true
+    Fail:
+      Inspiration: true
+  - Status: _Unlucky
+    Icon: EFST_UNLUCKY
+    DurationLookup: SC_UNLUCKY
+    CalcFlags:
+      Cri: true
+      Flee2: true
+    Flags:
+      OverlapFail: true
+      BossResist: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal3: true
+    Fail:
+      Inspiration: true
+  - Status: _Weakness
+    Icon: EFST_WEAKNESS
+    DurationLookup: SC_WEAKNESS
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      OverlapFail: true
+      BossResist: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal2: true
+    Fail:
+      Inspiration: true
+  - Status: _Stripaccessory
+    Icon: EFST_STRIPACCESSARY
+    DurationLookup: SC_STRIPACCESSARY
+    CalcFlags:
+      Dex: true
+      Int: true
+      Luk: true
+    Flags:
+      Debuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: _Manhole
+    Icon: EFST_MANHOLE
+    DurationLookup: SC_MANHOLE
+    States:
+      NoAttack: true
+      NoMove: true
+      NoCast: true
+      NoConsumeItem: true
+      NoInteract: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      MobLoseTarget: true
+      NoClearbuff: true
+      StopWalking: true
+      StopAttacking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+  - Status: _Bloodylust
+    Icon: EFST_BLOODYLUST
+    DurationLookup: SC_BLOODYLUST
+    States:
+      NoCast: true
+      NoUnEquipItem: true
+    CalcFlags:
+      Def: true
+      Def2: true
+      Batk: true
+      Watk: true
+    Flags:
+      Debuff: true
+      NoSave: true
+  - Status: Circle_Of_Fire
+    Icon: EFST_CIRCLE_OF_FIRE
+    Flags:
+      RemoveElementalOption: true
+  - Status: Circle_Of_Fire_Option
+    Icon: EFST_CIRCLE_OF_FIRE_OPTION
+    DurationLookup: EL_CIRCLE_OF_FIRE
+    CalcFlags:
+      All: true
+    Flags:
+      RemoveElementalOption: true
+      SendVal2: true
+  - Status: Fire_Cloak
+    Icon: EFST_FIRE_CLOAK
+    Flags:
+      RemoveElementalOption: true
+  - Status: Fire_Cloak_Option
+    Icon: EFST_FIRE_CLOAK_OPTION
+    DurationLookup: EL_FIRE_CLOAK
+    CalcFlags:
+      All: true
+    Flags:
+      RemoveElementalOption: true
+  - Status: Water_Screen
+    Icon: EFST_WATER_SCREEN
+    Flags:
+      RemoveElementalOption: true
+  - Status: Water_Screen_Option
+    Icon: EFST_WATER_SCREEN_OPTION
+    DurationLookup: EL_WATER_SCREEN
+    CalcFlags:
+      All: true
+    Flags:
+      RemoveElementalOption: true
+  - Status: Water_Drop
+    Icon: EFST_WATER_DROP
+    Flags:
+      RemoveElementalOption: true
+  - Status: Water_Drop_Option
+    Icon: EFST_WATER_DROP_OPTION
+    DurationLookup: EL_WATER_DROP
+    CalcFlags:
+      All: true
+    Flags:
+      RemoveElementalOption: true
+  - Status: Water_Barrier
+    Icon: EFST_WATER_BARRIER
+    DurationLookup: EL_WATER_BARRIER
+    CalcFlags:
+      Watk: true
+      Flee: true
+    Flags:
+      RemoveElementalOption: true
+      SendVal3: true
+  - Status: Wind_Step
+    Icon: EFST_WIND_STEP
+    Flags:
+      RemoveElementalOption: true
+  - Status: Wind_Step_Option
+    Icon: EFST_WIND_STEP_OPTION
+    DurationLookup: EL_WIND_STEP
+    CalcFlags:
+      Speed: true
+      Flee: true
+    Flags:
+      RemoveElementalOption: true
+  - Status: Wind_Curtain
+    Icon: EFST_WIND_CURTAIN
+    Flags:
+      RemoveElementalOption: true
+  - Status: Wind_Curtain_Option
+    Icon: EFST_WIND_CURTAIN_OPTION
+    DurationLookup: EL_WIND_CURTAIN
+    CalcFlags:
+      All: true
+    Flags:
+      RemoveElementalOption: true
+  - Status: Zephyr
+    Icon: EFST_ZEPHYR
+    DurationLookup: EL_ZEPHYR
+    CalcFlags:
+      Flee: true
+    Flags:
+      RemoveElementalOption: true
+  - Status: Solid_Skin
+    Icon: EFST_SOLID_SKIN
+    Flags:
+      RemoveElementalOption: true
+  - Status: Solid_Skin_Option
+    Icon: EFST_SOLID_SKIN_OPTION
+    DurationLookup: EL_SOLID_SKIN
+    CalcFlags:
+      Def: true
+      MaxHp: true
+    Flags:
+      RemoveElementalOption: true
+  - Status: Stone_Shield
+    Icon: EFST_STONE_SHIELD
+    Flags:
+      RemoveElementalOption: true
+  - Status: Stone_Shield_Option
+    Icon: EFST_STONE_SHIELD_OPTION
+    DurationLookup: EL_STONE_SHIELD
+    CalcFlags:
+      All: true
+    Flags:
+      RemoveElementalOption: true
+  - Status: Power_Of_Gaia
+    Icon: EFST_POWER_OF_GAIA
+    DurationLookup: EL_POWER_OF_GAIA
+    CalcFlags:
+      MaxHp: true
+      Def: true
+      Speed: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      NoRemoveOnDead: true
+  - Status: Pyrotechnic
+    Icon: EFST_PYROTECHNIC
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveElementalOption: true
+  - Status: Pyrotechnic_Option
+    Icon: EFST_PYROTECHNIC_OPTION
+    DurationLookup: EL_PYROTECHNIC
+    CalcFlags:
+      Watk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+      RemoveElementalOption: true
+      SendVal3: true
+  - Status: Heater
+    Icon: EFST_HEATER
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveElementalOption: true
+  - Status: Heater_Option
+    Icon: EFST_HEATER_OPTION
+    DurationLookup: EL_HEATER
+    CalcFlags:
+      Watk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+      RemoveElementalOption: true
+      SendVal3: true
+  - Status: Tropic
+    Icon: EFST_TROPIC
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveElementalOption: true
+  - Status: Tropic_Option
+    Icon: EFST_TROPIC_OPTION
+    DurationLookup: EL_TROPIC
+    CalcFlags:
+      Watk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+      RemoveElementalOption: true
+  - Status: Aquaplay
+    Icon: EFST_AQUAPLAY
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveElementalOption: true
+  - Status: Aquaplay_Option
+    Icon: EFST_AQUAPLAY_OPTION
+    DurationLookup: EL_AQUAPLAY
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+      RemoveElementalOption: true
+      SendVal3: true
+  - Status: Cooler
+    Icon: EFST_COOLER
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveElementalOption: true
+  - Status: Cooler_Option
+    Icon: EFST_COOLER_OPTION
+    DurationLookup: EL_COOLER
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+      RemoveElementalOption: true
+      SendVal3: true
+  - Status: Chilly_Air
+    Icon: EFST_CHILLY_AIR
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveElementalOption: true
+  - Status: Chilly_Air_Option
+    Icon: EFST_CHILLY_AIR_OPTION
+    DurationLookup: EL_CHILLY_AIR
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+      RemoveElementalOption: true
+      SendVal2: true
+  - Status: Gust
+    Icon: EFST_GUST
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveElementalOption: true
+  - Status: Gust_Option
+    Icon: EFST_GUST_OPTION
+    DurationLookup: EL_GUST
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+      RemoveElementalOption: true
+      SendVal2: true
+  - Status: Blast
+    Icon: EFST_BLAST
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveElementalOption: true
+  - Status: Blast_Option
+    Icon: EFST_BLAST_OPTION
+    DurationLookup: EL_BLAST
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+      RemoveElementalOption: true
+      SendVal3: true
+  - Status: Wild_Storm
+    Icon: EFST_WILD_STORM
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveElementalOption: true
+  - Status: Wild_Storm_Option
+    Icon: EFST_WILD_STORM_OPTION
+    DurationLookup: EL_WILD_STORM
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+      RemoveElementalOption: true
+      SendVal2: true
+  - Status: Petrology
+    Icon: EFST_PETROLOGY
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveElementalOption: true
+  - Status: Petrology_Option
+    Icon: EFST_PETROLOGY_OPTION
+    DurationLookup: EL_PETROLOGY
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+      RemoveElementalOption: true
+      SendVal3: true
+  - Status: Cursed_Soil
+    Icon: EFST_CURSED_SOIL
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveElementalOption: true
+  - Status: Cursed_Soil_Option
+    Icon: EFST_CURSED_SOIL_OPTION
+    DurationLookup: EL_CURSED_SOIL
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+      RemoveElementalOption: true
+      SendVal3: true
+  - Status: Upheaval
+    Icon: EFST_UPHEAVAL
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveElementalOption: true
+  - Status: Upheaval_Option
+    Icon: EFST_UPHEAVAL_OPTION
+    DurationLookup: EL_UPHEAVAL
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+      RemoveElementalOption: true
+      SendVal2: true
+  - Status: Tidal_Weapon
+    Icon: EFST_TIDAL_WEAPON
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      RemoveElementalOption: true
+  - Status: Tidal_Weapon_Option
+    Icon: EFST_TIDAL_WEAPON_OPTION
+    DurationLookup: EL_TIDAL_WEAPON
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoSave: true
+      RemoveElementalOption: true
+  - Status: Rock_Crusher
+    Icon: EFST_ROCK_CRUSHER
+    DurationLookup: EL_ROCK_CRUSHER
+    CalcFlags:
+      Def: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Rock_Crusher_Atk
+    Icon: EFST_ROCK_CRUSHER_ATK
+    DurationLookup: EL_ROCK_CRUSHER_ATK
+    CalcFlags:
+      Speed: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Leadership
+    DurationLookup: GD_LEADERSHIP
+    CalcFlags:
+      Str: true
+    Flags:
+      NoClearbuff: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Glorywounds
+    DurationLookup: GD_GLORYWOUNDS
+    CalcFlags:
+      Vit: true
+    Flags:
+      NoClearbuff: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Soulcold
+    DurationLookup: GD_SOULCOLD
+    CalcFlags:
+      Agi: true
+    Flags:
+      NoClearbuff: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Hawkeyes
+    DurationLookup: GD_HAWKEYES
+    CalcFlags:
+      Dex: true
+    Flags:
+      NoClearbuff: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Odins_Power
+    Icon: EFST_ODINS_POWER
+    DurationLookup: ALL_ODINS_POWER
+    CalcFlags:
+      Watk: true
+      Matk: true
+      Mdef: true
+      Def: true
+  - Status: Raid
+    Icon: EFST_RAID
+    DurationLookup: RG_RAID
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Fire_Insignia
+    Icon: EFST_FIRE_INSIGNIA
+    DurationLookup: SO_FIRE_INSIGNIA
+    CalcFlags:
+      Matk: true
+      Watk: true
+      Atk_Ele: true
+      Regen: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Water_Insignia
+    Icon: EFST_WATER_INSIGNIA
+    DurationLookup: SO_FIRE_INSIGNIA
+    CalcFlags:
+      Matk: true
+      Watk: true
+      Atk_Ele: true
+      Regen: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Wind_Insignia
+    Icon: EFST_WIND_INSIGNIA
+    DurationLookup: SO_WATER_INSIGNIA
+    CalcFlags:
+      Matk: true
+      Watk: true
+      Aspd: true
+      Atk_Ele: true
+      Regen: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Earth_Insignia
+    Icon: EFST_EARTH_INSIGNIA
+    DurationLookup: SO_WIND_INSIGNIA
+    CalcFlags:
+      Mdef: true
+      Def: true
+      MaxHp: true
+      MaxSp: true
+      Matk: true
+      Watk: true
+      Atk_Ele: true
+      Regen: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+  - Status: Push_Cart
+    Icon: EFST_ON_PUSH_CART
+    CalcFlags:
+      Speed: true
+    Flags:
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+      OverlapIgnoreLevel: true
+  - Status: Spellbook1
+    Icon: EFST_SPELLBOOK1
+    Flags:
+      NoClearance: true
+  - Status: Spellbook2
+    Icon: EFST_SPELLBOOK2
+    Flags:
+      NoClearance: true
+  - Status: Spellbook3
+    Icon: EFST_SPELLBOOK3
+    Flags:
+      NoClearance: true
+  - Status: Spellbook4
+    Icon: EFST_SPELLBOOK4
+    Flags:
+      NoClearance: true
+  - Status: Spellbook5
+    Icon: EFST_SPELLBOOK5
+    Flags:
+      NoClearance: true
+  - Status: Spellbook6
+    Icon: EFST_SPELLBOOK6
+    Flags:
+      NoClearance: true
+  - Status: Maxspellbook
+    Icon: EFST_SPELLBOOK7
+    Flags:
+      NoClearance: true
+  - Status: Incmhp
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+    CalcFlags:
+      MaxHp: true
+  - Status: Incmsp
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+    CalcFlags:
+      MaxSp: true
+  - Status: Partyflee
+    Icon: EFST_PARTYFLEE
+    DurationLookup: ALL_PARTYFLEE
+    Flags:
+      NoClearance: true
+      NoBanishingBuster: true
+  - Status: Meikyousisui
+    Icon: EFST_MEIKYOUSISUI
+    DurationLookup: KO_MEIKYOUSISUI
+    States:
+      NoMove: true
+    Flags:
+      StopWalking: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Jyumonjikiri
+    Icon: EFST_KO_JYUMONJIKIRI
+    DurationLookup: KO_JYUMONJIKIRI
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Kyougaku
+    Icon: EFST_KYOUGAKU
+    DurationLookup: KO_KYOUGAKU
+    States:
+      NoMove: true
+      NoEquipItem: true
+      NoUnEquipItem: true
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    Flags:
+      StopWalking: true
+      NoSave: true
+      Debuff: true
+  - Status: Izayoi
+    Icon: EFST_IZAYOI
+    DurationLookup: KO_IZAYOI
+    CalcFlags:
+      Matk: true
+  - Status: Zenkai
+    Icon: EFST_ZENKAI
+    DurationLookup: KO_ZENKAI
+  - Status: Kagehumi
+    Icon: EFST_KG_KAGEHUMI
+    DurationLookup: KG_KAGEHUMI
+    States:
+      NoMove: true
+      NoConsumeItem: true
+  - Status: Kyomu
+    Icon: EFST_KYOMU
+    DurationLookup: KG_KYOMU
+  - Status: Kagemusya
+    Icon: EFST_KAGEMUSYA
+    DurationLookup: KG_KAGEMUSYA
+  - Status: Zangetsu
+    Icon: EFST_ZANGETSU
+    DurationLookup: OB_ZANGETSU
+    CalcFlags:
+      Matk: true
+      Batk: true
+  - Status: Gensou
+    Icon: EFST_GENSOU
+    DurationLookup: OB_OBOROGENSOU
+  - Status: Akaitsuki
+    Icon: EFST_AKAITSUKI
+    DurationLookup: OB_AKAITSUKI
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      Debuff: true
+  - Status: Style_Change
+    DurationLookup: MH_STYLE_CHANGE
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Tinder_Breaker
+    Icon: EFST_TINDER_BREAKER_POSTDELAY
+    DurationLookup: MH_TINDER_BREAKER
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoSave: true
+      RemoveOnChangeMap: true
+  - Status: Tinder_Breaker2
+    Icon: EFST_TINDER_BREAKER
+    DurationLookup: MH_TINDER_BREAKER
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoSave: true
+      RemoveOnChangeMap: true
+      OverlapFail: true
+  - Status: Cbc
+    Icon: EFST_CBC
+    DurationLookup: MH_CBC
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoSave: true
+  - Status: Eqc
+    Icon: EFST_EQC
+    DurationLookup: MH_EQC
+    CalcFlags:
+      Def2: true
+      MaxHp: true
+    Flags:
+      NoSave: true
+    End:
+      Tinder_Breaker2: true
+  - Status: Goldene_Ferse
+    Icon: EFST_GOLDENE_FERSE
+    DurationLookup: MH_GOLDENE_FERSE
+    CalcFlags:
+      Aspd: true
+      Flee: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Angriffs_Modus: true
+  - Status: Angriffs_Modus
+    Icon: EFST_ANGRIFFS_MODUS
+    DurationLookup: MH_ANGRIFFS_MODUS
+    CalcFlags:
+      Batk: true
+      Def: true
+      Flee: true
+      MaxHp: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Goldene_Ferse: true
+  - Status: Overed_Boost
+    Icon: EFST_OVERED_BOOST
+    DurationLookup: MH_OVERED_BOOST
+    CalcFlags:
+      Flee: true
+      Aspd: true
+      Def: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Overed_Boost: true
+  - Status: Light_Of_Regene
+    Icon: EFST_LIGHT_OF_REGENE
+    DurationLookup: MH_LIGHT_OF_REGENE
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Ash
+    Icon: EFST_VOLCANIC_ASH
+    DurationLookup: MH_VOLCANIC_ASH
+    CalcFlags:
+      Def: true
+      Def2: true
+      Hit: true
+      Batk: true
+      Flee: true
+  - Status: Granitic_Armor
+    Icon: EFST_GRANITIC_ARMOR
+    DurationLookup: MH_GRANITIC_ARMOR
+  - Status: Magma_Flow
+    Icon: EFST_MAGMA_FLOW
+    DurationLookup: MH_MAGMA_FLOW
+  - Status: Pyroclastic
+    Icon: EFST_PYROCLASTIC
+    DurationLookup: MH_PYROCLASTIC
+    CalcFlags:
+      Batk: true
+      Watk: true
+  - Status: Paralysis
+    Icon: EFST_NEEDLE_OF_PARALYZE
+    DurationLookup: MH_NEEDLE_OF_PARALYZE
+    States:
+      NoMove: true
+    CalcFlags:
+      Def2: true
+    Flags:
+      BossResist: true
+      StopWalking: true
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Pain_Killer
+    Icon: EFST_PAIN_KILLER
+    DurationLookup: MH_PAIN_KILLER
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Hanbok
+    States:
+      NoAttack: true
+    Options:
+      Hanbok: true
+    Flags:
+      SendLook: true
+      StopAttacking: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Defset
+    Icon: EFST_SET_NUM_DEF
+    CalcFlags:
+      Def: true
+    Flags:
+      OverlapFail: true
+  - Status: Mdefset
+    Icon: EFST_SET_NUM_MDEF
+    CalcFlags:
+      Mdef: true
+    Flags:
+      OverlapFail: true
+  - Status: Darkcrow
+    Icon: EFST_DARKCROW
+    DurationLookup: GC_DARKCROW
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Full_Throttle
+    Icon: EFST_FULL_THROTTLE
+    DurationLookup: ALL_FULL_THROTTLE
+    CalcFlags:
+      Speed: true
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Rebound
+    Icon: EFST_REBOUND
+    CalcFlags:
+      Speed: true
+      Regen: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Unlimit
+    Icon: EFST_UNLIMIT
+    DurationLookup: RA_UNLIMIT
+    Flags:
+      DisplayPc: true
+  - Status: Kings_Grace
+    Icon: EFST_KINGS_GRACE
+    DurationLookup: LG_KINGS_GRACE
+    States:
+      NoCast: true
+      NoAttack: true
+      NoMove: true
+      NoConsumeItem: true
+    Flags:
+      StopAttacking: true
+      StopWalking: true
+      StopCasting: true
+    Fail:
+      Devotion: true
+      Whiteimprison: true
+    End:
+      Poison: true
+      Blind: true
+      Freeze: true
+      Stone: true
+      Stun: true
+      Sleep: true
+      Bleeding: true
+      Curse: true
+      Confusion: true
+      Hallucination: true
+      Silence: true
+      Burning: true
+      Crystalize: true
+      Freezing: true
+      Deepsleep: true
+      Fear: true
+      Mandragora: true
+  - Status: Telekinesis_Intense
+    Icon: EFST_TELEKINESIS_INTENSE
+    DurationLookup: WL_TELEKINESIS_INTENSE
+    Flags:
+      DisplayPc: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    CalcFlags:
+      Matk: true
+  - Status: Offertorium
+    Icon: EFST_OFFERTORIUM
+    DurationLookup: AB_OFFERTORIUM
+    Flags:
+      DisplayPc: true
+    Fail:
+      Magnificat: true
+    End:
+      Magnificat: true
+      Blind: true
+      Curse: true
+      Poison: true
+      Hallucination: true
+      Confusion: true
+      Bleeding: true
+      Burning: true
+      Freezing: true
+      Mandragora: true
+      Paralyse: true
+      Pyrexia: true
+      Deathhurt: true
+      Leechesend: true
+      Venombleed: true
+      Toxin: true
+      Magicmushroom: true
+  - Status: Frigg_Song
+    Icon: EFST_FRIGG_SONG
+    DurationLookup: WM_FRIGG_SONG
+    CalcFlags:
+      MaxHp: true
+  - Status: Monster_Transform
+    Icon: EFST_MONSTER_TRANSFORM
+    Flags:
+      DisplayPc: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Angel_Protect
+    Icon: EFST_ANGEL_PROTECT
+    Flags:
+      NoClearance: true
+      NoBanishingBuster: true
+      NoDispell: true
+  - Status: Illusiondoping
+    Icon: EFST_ILLUSIONDOPING
+    DurationLookup: GN_ILLUSIONDOPING
+    CalcFlags:
+      Hit: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Flashcombo
+    Icon: EFST_FLASHCOMBO
+    DurationLookup: SR_FLASHCOMBO
+    CalcFlags:
+      Watk: true
+  - Status: Moonstar
+    Icon: EFST_MOONSTAR
+    Flags:
+      NoSave: true
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Super_Star
+    Icon: EFST_SUPER_STAR
+    Flags:
+      NoSave: true
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Heat_Barrel
+    Icon: EFST_HEAT_BARREL
+    DurationLookup: RL_HEAT_BARREL
+    CalcFlags:
+      Hit: true
+      Aspd: true
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      P_Alter: true
+      Madnesscancel: true
+  - Status: Magicalbullet
+    Icon: EFST_GS_MAGICAL_BULLET
+    DurationLookup: GS_MAGICALBULLET
+  - Status: P_Alter
+    Icon: EFST_P_ALTER
+    DurationLookup: RL_P_ALTER
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    Fail:
+      Heat_Barrel: true
+      Madnesscancel: true
+  - Status: E_Chain
+    Icon: EFST_E_CHAIN
+    DurationLookup: RL_E_CHAIN
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: C_Marker
+    Icon: EFST_C_MARKER
+    DurationLookup: RL_C_MARKER
+    CalcFlags:
+      Flee: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Anti_M_Blast
+    Icon: EFST_ANTI_M_BLAST
+    DurationLookup: RL_AM_BLAST
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      Debuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: B_Trap
+    Icon: EFST_B_TRAP
+    DurationLookup: RL_B_TRAP
+    CalcFlags:
+      Speed: true
+    Flags:
+      Debuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: H_Mine
+    Icon: EFST_H_MINE
+    DurationLookup: RL_H_MINE
+    Flags:
+      Debuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Qd_Shot_Ready
+    Icon: EFST_E_QD_SHOT_READY
+    Flags:
+      NoSave: true
+  - Status: Mtf_Aspd
+    Icon: EFST_MTF_ASPD
+    CalcFlags:
+      Aspd: true
+      Hit: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Rangeatk
+    Icon: EFST_MTF_RANGEATK
+    CalcFlags:
+      Batk: true
+      Watk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Matk
+    Icon: EFST_MTF_MATK
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Mleatked
+    Icon: EFST_MTF_MLEATKED
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Cridamage
+    Icon: EFST_MTF_CRIDAMAGE
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Oktoberfest
+    States:
+      NoAttack: true
+    Options:
+      Oktoberfest: true
+    Flags:
+      SendLook: true
+      StopAttacking: true
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Strangelights
+    Icon: EFST_STRANGELIGHTS
+    Flags:
+      NoSave: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      BlEffect: true
+  - Status: Decoration_Of_Music
+    Icon: EFST_DECORATION_OF_MUSIC
+    Flags:
+      NoSave: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      BlEffect: true
+  - Status: Quest_Buff1
+    Icon: EFST_QUEST_BUFF1
+    CalcFlags:
+      Batk: true
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Quest_Buff2
+    Icon: EFST_QUEST_BUFF2
+    CalcFlags:
+      Batk: true
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Quest_Buff3
+    Icon: EFST_QUEST_BUFF3
+    CalcFlags:
+      Batk: true
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: All_Riding
+    Icon: EFST_ALL_RIDING
+    States:
+      NoAttack: true
+    CalcFlags:
+      Speed: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      All_Riding: true
+    EndReturn: true
+  - Status: Teargas_Sob
+    Flags:
+      BossResist: true
+  - Status: _Feintbomb
+    DurationLookup: SC_FEINTBOMB
+    States:
+      NoPickItem: true
+    Options:
+      Invisible: true
+    Flags:
+      UnitMove: true
+      OnTouch: true
+      StopAttacking: true
+  - Status: _Chaos
+    Flags:
+      StopWalking: true
+    Fail:
+      _Chaos: true
+  - Status: Chasewalk2
+    Icon: EFST_CHASEWALK2
+    CalcFlags:
+      Str: true
+    Flags:
+      NoSave: true
+      NoClearance: true
+      RemoveOnChangeMap: true
+      NoBanishingBuster: true
+      NoDispell: true
+  - Status: Extremityfist2
+    Icon: EFST_EXTREMITYFIST
+    DurationLookup: MO_EXTREMITYFIST
+    Flags:
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Aspd2
+    Icon: EFST_MTF_ASPD2
+    CalcFlags:
+      Aspd: true
+      Hit: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Rangeatk2
+    Icon: EFST_MTF_RANGEATK2
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Matk2
+    Icon: EFST_MTF_MATK2
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: 2011rwc_Scroll
+    Icon: EFST_2011RWC_SCROLL
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+      Batk: true
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Food_Str_Cash: true
+      Food_Agi_Cash: true
+      Food_Vit_Cash: true
+      Food_Int_Cash: true
+      Food_Dex_Cash: true
+      Food_Luk_Cash: true
+  - Status: Jp_Event04
+    Icon: EFST_JP_EVENT04
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Mtf_Mhp
+    Icon: EFST_MTF_MHP
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Msp
+    Icon: EFST_MTF_MSP
+    CalcFlags:
+      MaxSp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Pumpkin
+    Icon: EFST_MTF_PUMPKIN
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mtf_Hitflee
+    Icon: EFST_MTF_HITFLEE
+    CalcFlags:
+      Hit: true
+      Flee: true
+      Cri: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Vacuum_Extreme_Postdelay
+    DurationLookup: SO_VACUUM_EXTREME
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Crifood
+    Icon: EFST_FOOD_CRITICALSUCCESSVALUE
+    CalcFlags:
+      Cri: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Atthaste_Cash
+    Icon: EFST_ATTHASTE_CASH
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapIgnoreLevel: true
+  - Status: Reuse_Limit_A
+    Icon: EFST_REUSE_LIMIT_A
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_B
+    Icon: EFST_REUSE_LIMIT_B
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_C
+    Icon: EFST_REUSE_LIMIT_C
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_D
+    Icon: EFST_REUSE_LIMIT_D
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_E
+    Icon: EFST_REUSE_LIMIT_E
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_F
+    Icon: EFST_REUSE_LIMIT_F
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_G
+    Icon: EFST_REUSE_LIMIT_G
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_H
+    Icon: EFST_REUSE_LIMIT_H
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_Mtf
+    Icon: EFST_REUSE_LIMIT_MTF
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_Aspd_Potion
+    Icon: EFST_REUSE_LIMIT_ASPD_POTION
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Millenniumshield
+    Icon: EFST_REUSE_MILLENNIUMSHIELD
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Crushstrike
+    Icon: EFST_REUSE_CRUSHSTRIKE
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Stormblast
+    Icon: EFST_REUSE_STORMBLAST
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: All_Riding_Reuse_Limit
+    Icon: EFST_ALL_RIDING_REUSE_LIMIT
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_Ecl
+    Icon: EFST_REUSE_LIMIT_ECL
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Reuse_Limit_Recall
+    Icon: EFST_REUSE_LIMIT_RECALL
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapFail: true
+  - Status: Promote_Health_Reserch
+    Icon: EFST_PROMOTE_HEALTH_RESERCH
+    CalcFlags:
+      MaxHp: true
+  - Status: Energy_Drink_Reserch
+    Icon: EFST_ENERGY_DRINK_RESERCH
+    CalcFlags:
+      MaxSp: true
+  - Status: Norecover_State
+    Icon: EFST_HANDICAPSTATE_NORECOVER
+    Flags:
+      OverlapFail: true
+  - Status: Suhide
+    Icon: EFST_SUHIDE
+    DurationLookup: SU_HIDE
+    States:
+      NoMove: true
+      NoPickItem: true
+      NoConsumeItem: true
+      NoAttack: true
+      NoInteract: true
+    Flags:
+      StopAttacking: true
+      RemoveOnDamaged: true
+      RemoveOnChangeMap: true
+      RemoveOnMapWarp: true
+  - Status: Su_Stoop
+    Icon: EFST_SU_STOOP
+    DurationLookup: SU_STOOP
+  - Status: Spritemable
+    Icon: EFST_SPRITEMABLE
+    Flags:
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoSave: true
+      NoClearbuff: true
+  - Status: Catnippowder
+    Icon: EFST_CATNIPPOWDER
+    DurationLookup: SU_CN_POWDERING
+    CalcFlags:
+      Watk: true
+      Matk: true
+      Speed: true
+      Regen: true
+    Flags:
+      BossResist: true
+  - Status: Sv_Roottwist
+    Icon: EFST_SV_ROOTTWIST
+    DurationLookup: SU_SV_ROOTTWIST
+    States:
+      NoMove: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      BossResist: true
+      StopWalking: true
+      NoSave: true
+  - Status: Bitescar
+    Icon: EFST_BITESCAR
+    DurationLookup: SU_SCAROFTAROU
+    Flags:
+      BossResist: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+  - Status: Arclousedash
+    Icon: EFST_ARCLOUSEDASH
+    DurationLookup: SU_ARCLOUSEDASH
+    CalcFlags:
+      Agi: true
+      Speed: true
+  - Status: Tunaparty
+    Icon: EFST_TUNAPARTY
+    DurationLookup: SU_TUNAPARTY
+  - Status: Shrimp
+    Icon: EFST_SHRIMP
+    DurationLookup: SU_BUNCHOFSHRIMP
+    CalcFlags:
+      Batk: true
+      Matk: true
+  - Status: Freshshrimp
+    Icon: EFST_FRESHSHRIMP
+    DurationLookup: SU_FRESHSHRIMP
+    Flags:
+      BossResist: true
+  - Status: Active_Monster_Transform
+    Icon: EFST_ACTIVE_MONSTER_TRANSFORM
+    Flags:
+      DisplayPc: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+   # deprecated
+   #- Status: Cloud_Kill
+  - Status: Ljosalfar
+    Icon: EFST_LJOSALFAR
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mermaid_Longing
+    Icon: EFST_MERMAID_LONGING
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Hat_Effect
+    Icon: EFST_HAT_EFFECT
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Flowersmoke
+    Icon: EFST_FLOWERSMOKE
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Fstone
+    Icon: EFST_FSTONE
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Happiness_Star
+    Icon: EFST_HAPPINESS_STAR
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Maple_Falls
+    Icon: EFST_MAPLE_FALLS
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Time_Accessory
+    Icon: EFST_TIME_ACCESSORY
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Magical_Feather
+    Icon: EFST_MAGICAL_FEATHER
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoSave: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Gvg_Giant
+    Icon: EFST_GVG_GIANT
+  - Status: Gvg_Golem
+    Icon: EFST_GVG_GOLEM
+  - Status: Gvg_Stun
+    Icon: EFST_GVG_STUN
+    End:
+      Gvg_Stun: true
+  - Status: Gvg_Stone
+    Icon: EFST_GVG_STONE
+    End:
+      Stone: true
+  - Status: Gvg_Freez
+    Icon: EFST_GVG_FREEZ
+    End:
+      Freeze: true
+  - Status: Gvg_Sleep
+    Icon: EFST_GVG_SLEEP
+    End:
+      Sleep: true
+  - Status: Gvg_Curse
+    Icon: EFST_GVG_CURSE
+    End:
+      Curse: true
+  - Status: Gvg_Silence
+    Icon: EFST_GVG_SILENCE
+    End:
+      Silence: true
+  - Status: Gvg_Blind
+    Icon: EFST_GVG_BLIND
+    End:
+      Blind: true
+  - Status: Clan_Info
+    Icon: EFST_CLAN_INFO
+    Flags:
+      DisplayPc: true
+      DisplayNpc: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal2: true
+  - Status: Swordclan
+    Icon: EFST_SWORDCLAN
+    CalcFlags:
+      Str: true
+      Vit: true
+      MaxHp: true
+      MaxSp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Arcwandclan
+    Icon: EFST_ARCWANDCLAN
+    CalcFlags:
+      Int: true
+      Dex: true
+      MaxHp: true
+      MaxSp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Goldenmaceclan
+    Icon: EFST_GOLDENMACECLAN
+    CalcFlags:
+      Luk: true
+      Int: true
+      MaxHp: true
+      MaxSp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Crossbowclan
+    Icon: EFST_CROSSBOWCLAN
+    CalcFlags:
+      Agi: true
+      Vit: true
+      MaxHp: true
+      MaxSp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Jumpingclan
+    Icon: EFST_JUMPINGCLAN
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Tarotcard
+    Icon: EFST_TAROTCARD
+    DurationLookup: CG_TAROTCARD
+  - Status: Geffen_Magic1
+    Icon: EFST_GEFFEN_MAGIC1
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+  - Status: Geffen_Magic2
+    Icon: EFST_GEFFEN_MAGIC2
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+  - Status: Geffen_Magic3
+    Icon: EFST_GEFFEN_MAGIC3
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+  - Status: Maxpain
+    Icon: EFST_MAXPAIN
+    DurationLookup: NPC_MAXPAIN
+    Flags:
+      BlEffect: true
+  - Status: Armor_Element_Earth
+    Icon: EFST_RESIST_PROPERTY_GROUND
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      OverlapIgnoreLevel: true
+  - Status: Armor_Element_Fire
+    Icon: EFST_RESIST_PROPERTY_FIRE
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      OverlapIgnoreLevel: true
+  - Status: Armor_Element_Wind
+    Icon: EFST_RESIST_PROPERTY_WIND
+    CalcFlags:
+      All: true
+    Flags:
+      NoDispell: true
+      OverlapIgnoreLevel: true
+  - Status: Dailysendmailcnt
+    Icon: EFST_DAILYSENDMAILCNT
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoClearance: true
+      NoBanishingBuster: true
+      SendVal2: true
+  - Status: Doram_Buf_01
+    Icon: EFST_DORAM_BUF_01
+    CalcFlags:
+      Regen: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoBanishingBuster: true
+      OverlapFail: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Doram_Buf_02
+    Icon: EFST_DORAM_BUF_02
+    CalcFlags:
+      Regen: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoBanishingBuster: true
+      OverlapFail: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Hiss
+    Icon: EFST_HISS
+    DurationLookup: SU_HISS
+    Flags:
+      NoRemoveOnDead: true
+    CalcFlags:
+      Flee2: true
+  - Status: Nyanggrass
+    Icon: EFST_NYANGGRASS
+    DurationLookup: SU_NYANGGRASS
+    Flags:
+      NoRemoveOnDead: true
+    CalcFlags:
+      Def: true
+      Mdef: true
+  - Status: Grooming
+    Icon: EFST_GROOMING
+    DurationLookup: SU_GROOMING
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoRemoveOnDead: true
+    Fail:
+      Grooming: true
+    End:
+      Stun: true
+      Freeze: true
+      Stone: true
+      Sleep: true
+      Silence: true
+      Bleeding: true
+      Poison: true
+      Fear: true
+      Mandragora: true
+      Crystalize: true
+      Freezing: true
+  - Status: Shrimpblessing
+    Icon: EFST_PROTECTIONOFSHRIMP
+    DurationLookup: SU_SHRIMPARTY
+    CalcFlags:
+      Regen: true
+    Flags:
+      NoRemoveOnDead: true
+  - Status: Chattering
+    Icon: EFST_CHATTERING
+    DurationLookup: SU_CHATTERING
+    CalcFlags:
+      Watk: true
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+    Fail:
+      Chattering: true
+  - Status: Doram_Walkspeed
+    CalcFlags:
+      Speed: true
+  - Status: Doram_Matk
+    CalcFlags:
+      Matk: true
+  - Status: Doram_Flee2
+    CalcFlags:
+      Flee2: true
+  - Status: Doram_Svsp
+  - Status: Fallen_Angel
+    DurationLookup: RL_FALLEN_ANGEL
+  - Status: Cheerup
+    Icon: EFST_CHEERUP
+    DurationLookup: WE_CHEERUP
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    Flags:
+      NoRemoveOnDead: true
+  - Status: Dressup
+    Icon: EFST_DRESS_UP
+    States:
+      NoAttack: true
+    Options:
+      Summer2: true
+    Flags:
+      DisplayPc: true
+      SendLook: true
+      StopAttacking: true
+      NoRemoveOnDead: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      SendVal1: true
+  - Status: Glastheim_Atk
+    Icon: EFST_GLASTHEIM_ATK
+    CalcFlags:
+      All: true
+    Flags:
+      NoSave: true
+  - Status: Glastheim_Def
+    Icon: EFST_GLASTHEIM_DEF
+    Flags:
+      NoSave: true
+  - Status: Glastheim_Heal
+    Icon: EFST_GLASTHEIM_HEAL
+    Flags:
+      NoSave: true
+  - Status: Glastheim_Hidden
+    Icon: EFST_GLASTHEIM_HIDDEN
+    Flags:
+      NoSave: true
+  - Status: Glastheim_State
+    Icon: EFST_GLASTHEIM_STATE
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Dex: true
+      Int: true
+      Luk: true
+    Flags:
+      NoSave: true
+  - Status: Glastheim_Itemdef
+    Icon: EFST_GLASTHEIM_ITEMDEF
+    CalcFlags:
+      Def: true
+      Mdef: true
+    Flags:
+      NoSave: true
+  - Status: Glastheim_Hpsp
+    Icon: EFST_GLASTHEIM_HPSP
+    CalcFlags:
+      MaxHp: true
+      MaxSp: true
+    Flags:
+      NoSave: true
+  - Status: Lhz_Dun_N1
+    Icon: EFST_LHZ_DUN_N1
+    Flags:
+      NoClearbuff: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      OverlapIgnoreLevel: true
+  - Status: Lhz_Dun_N2
+    Icon: EFST_LHZ_DUN_N2
+    Flags:
+      NoClearbuff: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      OverlapIgnoreLevel: true
+  - Status: Lhz_Dun_N3
+    Icon: EFST_LHZ_DUN_N3
+    Flags:
+      NoClearbuff: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      OverlapIgnoreLevel: true
+  - Status: Lhz_Dun_N4
+    Icon: EFST_LHZ_DUN_N4
+    Flags:
+      NoClearbuff: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      OverlapIgnoreLevel: true
+  - Status: Ancilla
+    Icon: EFST_ANCILLA
+    Flags:
+      NoRemoveOnDead: true
+    CalcFlags:
+      Regen: true
+  - Status: Earthshaker
+  - Status: Weaponblock_On
+    Icon: EFST_WEAPONBLOCK_ON
+    DurationLookup: SHC_IMPACT_CRATER
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+  - Status: Spore_Explosion
+    Icon: EFST_SPORE_EXPLOSION_DEBUFF
+    DurationLookup: GN_SPORE_EXPLOSION
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Adaptation
+    Icon: EFST_ADAPTATION
+    DurationLookup: BD_ADAPTATION
+  - Status: Basilica_Cell
+    States:
+      NoCast: true
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoClearbuff: true
+      RemoveOnChangeMap: true
+  - Status: Entry_Queue_Apply_Delay
+    Icon: EFST_ENTRY_QUEUE_APPLY_DELAY
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+  - Status: Entry_Queue_Notify_Admission_Time_Out
+    Icon: EFST_ENTRY_QUEUE_NOTIFY_ADMISSION_TIME_OUT
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+  - Status: Lightofmoon
+    Icon: EFST_LIGHTOFMOON
+    DurationLookup: SJ_LIGHTOFMOON
+    End:
+      Lunarstance: true
+      Universestance: true
+  - Status: Lightofsun
+    Icon: EFST_LIGHTOFSUN
+    DurationLookup: SJ_LIGHTOFSUN
+    End:
+      Lightofsun: true
+      Universestance: true
+  - Status: Lightofstar
+    Icon: EFST_LIGHTOFSTAR
+    DurationLookup: SJ_LIGHTOFSTAR
+    End:
+      Starstance: true
+      Universestance: true
+  - Status: Lunarstance
+    Icon: EFST_LUNARSTANCE
+    DurationLookup: SJ_LUNARSTANCE
+    CalcFlags:
+      MaxHp: true
+    End:
+      Sunstance: true
+      Starstance: true
+      Universestance: true
+  - Status: Universestance
+    Icon: EFST_UNIVERSESTANCE
+    DurationLookup: SJ_UNIVERSESTANCE
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+    End:
+      Sunstance: true
+      Lunarstance: true
+      Starstance: true
+  - Status: Sunstance
+    Icon: EFST_SUNSTANCE
+    DurationLookup: SJ_SUNSTANCE
+    CalcFlags:
+      Batk: true
+      Watk: true
+    End:
+      Lunarstance: true
+      Starstance: true
+      Universestance: true
+  - Status: Flashkick
+    Icon: EFST_FLASHKICK
+    DurationLookup: SJ_FLASHKICK
+    Flags:
+      RemoveOnChangeMap: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+      OverlapIgnoreLevel: true
+  - Status: Newmoon
+    Icon: EFST_NEWMOON
+    DurationLookup: SJ_NEWMOONKICK
+    States:
+      NoPickItem: true
+    Options:
+      Cloak: true
+    Flags:
+      OnTouch: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      StopAttacking: true
+      RemoveOnDamaged: true
+      RemoveOnChangeMap: true
+    Fail:
+      Bite: true
+  - Status: Starstance
+    Icon: EFST_STARSTANCE
+    DurationLookup: SJ_STARSTANCE
+    CalcFlags:
+      Aspd: true
+    End:
+      Sunstance: true
+      Lunarstance: true
+      Universestance: true
+  - Status: Dimension
+    Icon: EFST_DIMENSION
+    DurationLookup: SJ_BOOKOFDIMENSION
+    Flags:
+      NoClearance: true
+  - Status: Dimension1
+  - Status: Dimension2
+  - Status: Creatingstar
+    Icon: EFST_CREATINGSTAR
+    DurationLookup: SJ_BOOKOFCREATINGSTAR
+    CalcFlags:
+      Speed: true
+    Flags:
+      Debuff: true
+    Fail:
+      Speedup1: true
+  - Status: Fallingstar
+    Icon: EFST_FALLINGSTAR
+    DurationLookup: SJ_FALLINGSTAR
+  - Status: Novaexplosing
+    Icon: EFST_NOVAEXPLOSING
+    DurationLookup: SJ_NOVAEXPLOSING
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Gravitycontrol
+    Icon: EFST_GRAVITYCONTROL
+    DurationLookup: SJ_GRAVITYCONTROL
+    States:
+      NoMove: true
+      NoCast: true
+      NoAttack: true
+      NoInteract: true
+    Flags:
+      StopCasting: true
+      StopAttacking: true
+      StopWalking: true
+  - Status: Soulcollect
+    Icon: EFST_SOULCOLLECT
+    DurationLookup: SP_SOULCOLLECT
+    MinDuration: 1000
+  - Status: Soulreaper
+    Icon: EFST_SOULREAPER
+    DurationLookup: SP_SOULREAPER
+  - Status: Soulunity
+    Icon: EFST_SOULUNITY
+    DurationLookup: SP_SOULUNITY
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+      OverlapIgnoreLevel: true
+  - Status: Soulshadow
+    Icon: EFST_SOULSHADOW
+    DurationLookup: SP_SOULSHADOW
+    CalcFlags:
+      Aspd: true
+      Cri: true
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Spirit: true
+      Soulgolem: true
+      Soulfalcon: true
+      Soulfairy: true
+  - Status: Soulfairy
+    Icon: EFST_SOULFAIRY
+    DurationLookup: SP_SOULFAIRY
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Spirit: true
+      Soulgolem: true
+      Soulshadow: true
+      Soulfalcon: true
+  - Status: Soulfalcon
+    Icon: EFST_SOULFALCON
+    DurationLookup: SP_SOULFALCON
+    CalcFlags:
+      Watk: true
+      Hit: true
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Spirit: true
+      Soulgolem: true
+      Soulshadow: true
+      Soulfairy: true
+  - Status: Soulgolem
+    Icon: EFST_SOULGOLEM
+    DurationLookup: SP_SOULGOLEM
+    CalcFlags:
+      Def: true
+      Mdef: true
+    Flags:
+      NoSave: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Spirit: true
+      Soulshadow: true
+      Soulfalcon: true
+      Soulfairy: true
+  - Status: Souldivision
+    Icon: EFST_SOULDIVISION
+    DurationLookup: SP_SOULDIVISION
+  - Status: Soulenergy
+    Icon: EFST_SOULENERGY
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Use_Skill_Sp_Spa
+    Icon: EFST_USE_SKILL_SP_SPA
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Use_Skill_Sp_Sha
+    Icon: EFST_USE_SKILL_SP_SHA
+    Flags:
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Sp_Sha
+    Icon: EFST_SP_SHA
+    DurationLookup: SP_SHA
+    CalcFlags:
+      Speed: true
+    Flags:
+      BossResist: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Soulcurse
+    Icon: EFST_SOULCURSE
+    DurationLookup: SP_SOULCURSE
+  - Status: Hells_Plant
+    Icon: EFST_HELLS_PLANT_ARMOR
+    DurationLookup: GN_HELLS_PLANT
+    Flags:
+      NoSave: true
+      RemoveOnChangeMap: true
+      DisplayPc: true
+      BlEffect: true
+  - Status: Increase_Maxhp
+    Icon: EFST_ATKER_ASPD
+    CalcFlags:
+      MaxHp: true
+      Regen: true
+  - Status: Increase_Maxsp
+    Icon: EFST_ATKER_MOVESPEED
+    CalcFlags:
+      MaxHp: true
+      Regen: true
+  - Status: Ref_T_Potion
+    Icon: EFST_REF_T_POTION
+  - Status: Add_Atk_Damage
+    Icon: EFST_ADD_ATK_DAMAGE
+  - Status: Add_Matk_Damage
+    Icon: EFST_ADD_MATK_DAMAGE
+  - Status: Helpangel
+    Icon: EFST_HELPANGEL
+    DurationLookup: NV_HELPANGEL
+  - Status: Soundofdestruction
+    Icon: EFST_SOUND_OF_DESTRUCTION
+    DurationLookup: WM_SOUND_OF_DESTRUCTION
+  - Status: Luxanima
+    Icon: EFST_LUXANIMA
+    DurationLookup: RK_LUXANIMA
+    CalcFlags:
+      All: true
+    Flags:
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+      NoClearbuff: true
+  - Status: Reuse_Limit_Luxanima
+    Flags:
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+      OverlapFail: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+  - Status: Ensemblefatigue
+    Icon: EFST_ENSEMBLEFATIGUE
+    States:
+      NoCast: true
+    CalcFlags:
+      Speed: true
+      Aspd: true
+  - Status: Misty_Frost
+    Icon: EFST_MISTY_FROST
+    Flags:
+      DisplayPc: true
+      SendVal1: true
+  - Status: Magic_Poison
+    Icon: EFST_MAGIC_POISON
+    DurationLookup: WL_COMET
+    Flags:
+      DisplayPc: true
+      BlEffect: true
+  - Status: Ep16_2_Buff_Ss
+    Icon: EFST_EP16_2_BUFF_SS
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+      NoClearbuff: true
+  - Status: Ep16_2_Buff_Sc
+    Icon: EFST_EP16_2_BUFF_SC
+    CalcFlags:
+      Cri: true
+    Flags:
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+      NoClearbuff: true
+  - Status: Ep16_2_Buff_Ac
+    Icon: EFST_EP16_2_BUFF_AC
+    Flags:
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+      NoClearbuff: true
+  - Status: OverBrandReady
+    Icon: EFST_OVERBRANDREADY
+    Flags:
+  - Status: Poison_Mist
+    Icon: EFST_POISON_MIST
+    DurationLookup: MH_POISON_MIST
+    CalcFlags:
+      Flee: true
+    Flags:
+  - Status: Stone_Wall
+    Icon: EFST_STONE_WALL
+    DurationLookup: MH_STEINWAND
+    CalcFlags:
+      Def: true
+      Mdef: true
+    Flags:
+  - Status: Cloud_Poison
+    Icon: EFST_CLOUD_POISON
+    DurationLookup: SO_CLOUD_KILL
+    Flags:
+  - Status: Homun_Time
+    Icon: EFST_HOMUN_TIME
+    Flags:
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+      NoClearbuff: true
+  - Status: Emergency_Move
+    Icon: EFST_INC_AGI
+    DurationLookup: GD_EMERGENCY_MOVE
+    CalcFlags:
+      Speed: true
+    Flags:
+      NoSave: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+      NoClearbuff: true
+  - Status: Madogear
+    Icon: EFST_MADOGEAR
+    CalcFlags:
+      Speed: true
+    Flags:
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+      NoClearbuff: true
+      SendVal1: true
+    End:
+      Shapeshift: true
+      Hovering: true
+      Acceleration: true
+      Overheat_Limitpoint: true
+      Overheat: true
+      Magneticfield: true
+      Neutralbarrier_Master: true
+      Stealthfield_Master: true
+  - Status: Npc_HallucinationWalk
+    Icon: EFST_NPC_HALLUCINATIONWALK
+    DurationLookup: NPC_HALLUCINATIONWALK
+    CalcFlags:
+      Flee: true
+    Flags:
+      SendVal3: true
+  - Status: Packing_Envelope1
+    Icon: EFST_PACKING_ENVELOPE1
+    CalcFlags:
+      Watk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Packing_Envelope2
+    Icon: EFST_PACKING_ENVELOPE2
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Packing_Envelope3
+    Icon: EFST_PACKING_ENVELOPE3
+    CalcFlags:
+      MaxHp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Packing_Envelope4
+    Icon: EFST_PACKING_ENVELOPE4
+    CalcFlags:
+      MaxSp: true
+    Flags:
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Packing_Envelope5
+    Icon: EFST_PACKING_ENVELOPE5
+    CalcFlags:
+      Flee: true
+    Flags:
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Packing_Envelope6
+    Icon: EFST_PACKING_ENVELOPE6
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Packing_Envelope7
+    Icon: EFST_PACKING_ENVELOPE7
+    CalcFlags:
+      Def: true
+    Flags:
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Packing_Envelope8
+    Icon: EFST_PACKING_ENVELOPE8
+    CalcFlags:
+      Mdef: true
+    Flags:
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Packing_Envelope9
+    Icon: EFST_PACKING_ENVELOPE9
+    CalcFlags:
+      Cri: true
+    Flags:
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Packing_Envelope10
+    Icon: EFST_PACKING_ENVELOPE10
+    CalcFlags:
+      Hit: true
+    Flags:
+      NoRemoveOnDead: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Soulattack
+    Icon: EFST_SOULATTACK
+    Flags:
+      DisplayPc: true
+      NoRemoveOnDead: true
+      NoClearbuff: true
+  - Status: Wideweb
+    Icon: EFST_WIDEWEB
+    DurationLookup: NPC_WIDEWEB
+    CalcFlags:
+      Flee: true
+    Flags:
+      StopWalking: true
+  - Status: Burnt
+    Icon: EFST_BURNT
+    DurationLookup: NPC_FIRESTORM
+    Flags:
+      BlEffect: true
+    Fail:
+      Chill: true
+  - Status: Chill
+    Icon: EFST_CHILL
+    End:
+      Burnt: true
+  - Status: Handicapstate_Deepblind
+    Icon: EFST_HANDICAPSTATE_DEEPBLIND
+    DurationLookup: DK_SERVANT_W_PHANTOM
+    CalcFlags:
+      Flee: true
+      Flee2: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Handicapstate_Deepsilence
+    Icon: EFST_HANDICAPSTATE_DEEPSILENCE
+    DurationLookup: CD_ARBITRIUM
+    #States:
+      #NoCast: true
+    CalcFlags:
+      Aspd: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Handicapstate_Lassitude
+    CalcFlags:
+      Speed: true
+      Cri: true
+    Flags:
+      DisplayPc: true
+  - Status: Handicapstate_Frostbite
+    Icon: EFST_HANDICAPSTATE_FROSTBITE
+    DurationLookup: EM_DIAMOND_STORM
+    States:
+      #NoMove: true
+      #NoCast: true
+      NoConsumeItem: true
+    CalcFlags:
+      Def: true
+      Mdef: true
+      Def_Ele: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      RemoveOnDamaged: true
+  - Status: Handicapstate_Swooning
+    States:
+      #NoMove: true
+      #NoCast: true
+      NoConsumeItem: true
+    Flags:
+      DisplayPc: true
+      RemoveOnDamaged: true
+  - Status: Handicapstate_Lightningstrike
+    Icon: EFST_HANDICAPSTATE_LIGHTNINGSTRIKE
+    DurationLookup: WH_SWIFTTRAP
+    States:
+      #NoMove: true
+      #NoCast: true
+      NoConsumeItem: true
+    CalcFlags:
+      Def_Ele: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      RemoveOnDamaged: true
+  - Status: Handicapstate_Crystallization
+    Icon: EFST_HANDICAPSTATE_CRYSTALLIZATION
+    DurationLookup: WH_SOLIDTRAP
+    States:
+      #NoMove: true
+      #NoCast: true
+      NoConsumeItem: true
+    CalcFlags:
+      Mdef: true
+      Def_Ele: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      RemoveOnDamaged: true
+  - Status: Handicapstate_Conflagration
+    Icon: EFST_HANDICAPSTATE_CONFLAGRATION
+    DurationLookup: WH_FLAMETRAP
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Handicapstate_Misfortune
+    Icon: EFST_HANDICAPSTATE_MISFORTUNE
+    DurationLookup: ABC_UNLUCKY_RUSH
+    CalcFlags:
+      Hit: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Handicapstate_Deadlypoison
+    Icon: EFST_HANDICAPSTATE_DEADLYPOISON
+    DurationLookup: EM_VENOM_SWAMP
+    CalcFlags:
+      Def: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Handicapstate_Depression
+    Flags:
+      DisplayPc: true
+  - Status: Handicapstate_Holyflame
+    Flags:
+      DisplayPc: true
+  - Status: Servantweapon
+    Icon: EFST_SERVANTWEAPON
+    DurationLookup: DK_SERVANTWEAPON
+    Flags:
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Servant_Sign
+    Icon: EFST_SERVANT_SIGN
+    DurationLookup: DK_SERVANT_W_SIGN
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      OverlapIgnoreLevel: true
+      RemoveOnChangeMap: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Chargingpierce
+    Icon: EFST_CHARGINGPIERCE
+    DurationLookup: DK_CHARGINGPIERCE
+    Flags:
+      SendVal1: true
+  - Status: Chargingpierce_Count
+    Icon: EFST_CHARGINGPIERCE_COUNT
+    Flags:
+      DisplayPc: true
+  - Status: Dragonic_Aura
+    Icon: EFST_DRAGONIC_AURA
+    DurationLookup: DK_DRAGONIC_AURA
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Vigor
+    Icon: EFST_VIGOR
+    DurationLookup: DK_VIGOR
+    CalcFlags:
+      All: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Deadly_Defeasance
+    Icon: EFST_DEADLY_DEFEASANCE
+    DurationLookup: AG_DEADLY_PROJECTION
+    CalcFlags:
+      All: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Climax_Des_Hu
+    Icon: EFST_CLIMAX_DES_HU
+    DurationLookup: AG_DESTRUCTIVE_HURRICANE
+    CalcFlags:
+      Matk: true
+  - Status: Climax
+    Icon: EFST_CLIMAX
+    DurationLookup: AG_CLIMAX
+    CalcFlags:
+      All: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      SendVal1: true
+  - Status: Climax_Earth
+    Icon: EFST_CLIMAX_EARTH
+    DurationLookup: AG_VIOLENT_QUAKE
+    CalcFlags:
+      All: true
+  - Status: Climax_Bloom
+    Icon: EFST_CLIMAX_BLOOM
+    DurationLookup: AG_ALL_BLOOM
+    CalcFlags:
+      All: true
+  - Status: Climax_Cryimp
+    Icon: EFST_CLIMAX_CRYIMP
+    DurationLookup: AG_CRYSTAL_IMPACT
+    CalcFlags:
+      All: true
+  - Status: Windsign
+    Icon: EFST_WINDSIGN
+    DurationLookup: WH_WIND_SIGN
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Crescivebolt
+    Icon: EFST_CRESCIVEBOLT
+    DurationLookup: WH_CRESCIVE_BOLT
+  - Status: Calamitygale
+    Icon: EFST_CALAMITYGALE
+    DurationLookup: WH_CALAMITYGALE
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Mediale
+    Icon: EFST_MEDIALE
+    DurationLookup: CD_MEDIALE_VOTUM
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: A_Vita
+    Icon: EFST_A_VITA
+    DurationLookup: CD_ARGUTUS_VITA
+  - Status: A_Telum
+    Icon: EFST_A_TELUM
+    DurationLookup: CD_ARGUTUS_TELUM
+  - Status: Pre_Acies
+    Icon: EFST_PRE_ACIES
+    DurationLookup: CD_PRESENS_ACIES
+    CalcFlags:
+      Crate: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Competentia
+    Icon: EFST_COMPETENTIA
+    DurationLookup: CD_COMPETENTIA
+    CalcFlags:
+      Patk: true
+      Smatk: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Religio
+    Icon: EFST_RELIGIO
+    DurationLookup: CD_RELIGIO
+    CalcFlags:
+      Sta: true
+      Wis: true
+      Spl: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Benedictum
+    Icon: EFST_BENEDICTUM
+    DurationLookup: CD_BENEDICTUM
+    CalcFlags:
+      Pow: true
+      Con: true
+      Crt: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Axe_Stomp
+    Icon: EFST_AXE_STOMP
+    DurationLookup: MT_AXE_STOMP
+  - Status: A_Machine
+    Icon: EFST_A_MACHINE
+    DurationLookup: MT_A_MACHINE
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: D_Machine
+    Icon: EFST_D_MACHINE
+    DurationLookup: MT_D_MACHINE
+    CalcFlags:
+      Def: true
+      Res: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Abr_Battle_Warior
+    Icon: EFST_ABR_BATTLE_WARIOR
+    DurationLookup: MT_SUMMON_ABR_BATTLE_WARIOR
+  - Status: Abr_Dual_Cannon
+    Icon: EFST_ABR_DUAL_CANNON
+    DurationLookup: MT_SUMMON_ABR_DUAL_CANNON
+  - Status: Abr_Mother_Net
+    Icon: EFST_ABR_MOTHER_NET
+    DurationLookup: MT_SUMMON_ABR_MOTHER_NET
+  - Status: Abr_Infinity
+    Icon: EFST_ABR_INFINITY
+    DurationLookup: MT_SUMMON_ABR_INFINITY
+  - Status: Shadow_Exceed
+    Icon: EFST_SHADOW_EXCEED
+    DurationLookup: SHC_SHADOW_EXCEED
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Dancing_Knife
+    Icon: EFST_DANCING_KNIFE
+    DurationLookup: SHC_DANCING_KNIFE
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      RequireWeapon: true
+  - Status: Potent_Venom
+    Icon: EFST_POTENT_VENOM
+    DurationLookup: SHC_POTENT_VENOM
+  - Status: Shadow_Scar
+    Icon: EFST_SHADOW_SCAR
+  - Status: E_Slash_Count
+    Icon: EFST_E_SLASH_COUNT
+    DurationLookup: SHC_ETERNAL_SLASH
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+      SendVal1: true
+  - Status: Shadow_Weapon
+    Icon: EFST_SHADOW_WEAPON
+    DurationLookup: SHC_ENCHANTING_SHADOW
+  - Status: Guard_Stance
+    Icon: EFST_GUARD_STANCE
+    DurationLookup: IG_GUARD_STANCE
+    CalcFlags:
+      Watk: true
+      Def: true
+    Flags:
+      NoRemoveOnDead: true
+      NoSave: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+    End:
+      Attack_Stance: true
+  - Status: Attack_Stance
+    Icon: EFST_ATTACK_STANCE
+    DurationLookup: IG_ATTACK_STANCE
+    CalcFlags:
+      Watk: true
+      Def: true
+    Flags:
+      NoRemoveOnDead: true
+      NoSave: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+    End:
+      Guard_Stance: true
+  - Status: Guardian_S
+    Icon: EFST_GUARDIAN_S
+    DurationLookup: IG_GUARDIAN_SHIELD
+  - Status: Rebound_S
+    Icon: EFST_REBOUND_S
+    DurationLookup: IG_REBOUND_SHIELD
+  - Status: Holy_S
+    Icon: EFST_HOLY_S
+    DurationLookup: IG_HOLY_SHIELD
+    CalcFlags:
+      All: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Ultimate_S
+    Icon: EFST_ULTIMATE_S
+    DurationLookup: IG_ULTIMATE_SACRIFICE
+  - Status: Spear_Scar
+    Icon: EFST_SPEAR_SCAR
+    DurationLookup: IG_GRAND_JUDGEMENT
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Shield_Power
+    Icon: EFST_SHIELD_POWER
+    DurationLookup: IG_SHIELD_SHOOTING
+  - Status: Spell_Enchanting
+    Icon: EFST_SPELL_ENCHANTING
+    DurationLookup: EM_SPELL_ENCHANTING
+    CalcFlags:
+      Smatk: true
+  - Status: Summon_Elemental_Ardor
+    Icon: EFST_SUMMON_ELEMENTAL_ARDOR
+    DurationLookup: EM_SUMMON_ELEMENTAL_ARDOR
+  - Status: Summon_Elemental_Diluvio
+    Icon: EFST_SUMMON_ELEMENTAL_DILUVIO
+    DurationLookup: EM_SUMMON_ELEMENTAL_DILUVIO
+  - Status: Summon_Elemental_Procella
+    Icon: EFST_SUMMON_ELEMENTAL_PROCELLA
+    DurationLookup: EM_SUMMON_ELEMENTAL_PROCELLA
+  - Status: Summon_Elemental_Terremotus
+    Icon: EFST_SUMMON_ELEMENTAL_TERREMOTUS
+    DurationLookup: EM_SUMMON_ELEMENTAL_TERREMOTUS
+  - Status: Summon_Elemental_Serpens
+    Icon: EFST_SUMMON_ELEMENTAL_SERPENS
+    DurationLookup: EM_SUMMON_ELEMENTAL_SERPENS
+  - Status: Elemental_Veil
+    Icon: EFST_ELEMENTAL_VEIL
+    DurationLookup: EM_ELEMENTAL_VEIL
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Mystic_Symphony
+    Icon: EFST_MYSTIC_SYMPHONY
+    DurationLookup: TR_MYSTIC_SYMPHONY
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Kvasir_Sonata
+    Icon: EFST_KVASIR_SONATA
+    DurationLookup: TR_KVASIR_SONATA
+  - Status: Soundblend
+    Icon: EFST_SOUNDBLEND
+    DurationLookup: TR_SOUNDBLEND
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Gef_Nocturn
+    Icon: EFST_GEF_NOCTURN
+    DurationLookup: TR_GEF_NOCTURN
+    CalcFlags:
+      Mres: true
+  - Status: Ain_Rhapsody
+    Icon: EFST_AIN_RHAPSODY
+    DurationLookup: TR_AIN_RHAPSODY
+    CalcFlags:
+      Res: true
+  - Status: Musical_Interlude
+    Icon: EFST_MUSICAL_INTERLUDE
+    DurationLookup: TR_MUSICAL_INTERLUDE
+    CalcFlags:
+      Res: true
+  - Status: Jawaii_Serenade
+    Icon: EFST_JAWAII_SERENADE
+    DurationLookup: TR_JAWAII_SERENADE
+    CalcFlags:
+      Smatk: true
+  - Status: Pron_March
+    Icon: EFST_PRON_MARCH
+    DurationLookup: TR_PRON_MARCH
+    CalcFlags:
+      Patk: true
+  - Status: Roseblossom
+    Icon: EFST_ROSEBLOSSOM
+    DurationLookup: TR_ROSEBLOSSOM
+  - Status: Powerful_Faith
+    Icon: EFST_POWERFUL_FAITH
+    DurationLookup: IQ_POWERFUL_FAITH
+    CalcFlags:
+      Watk: true
+      Patk: true
+    End:
+      Powerful_Faith: true
+      Firm_Faith: true
+      Sincere_Faith: true
+  - Status: Sincere_Faith
+    Icon: EFST_SINCERE_FAITH
+    DurationLookup: IQ_SINCERE_FAITH
+    CalcFlags:
+      All: true
+    End:
+      Powerful_Faith: true
+      Firm_Faith: true
+      Sincere_Faith: true
+  - Status: Firm_Faith
+    Icon: EFST_FIRM_FAITH
+    DurationLookup: IQ_FIRM_FAITH
+    CalcFlags:
+      MaxHp: true
+      Res: true
+    End:
+      Powerful_Faith: true
+      Firm_Faith: true
+      Sincere_Faith: true
+  - Status: Holy_Oil
+    Icon: EFST_HOLY_OIL
+    DurationLookup: IQ_OLEUM_SANCTUM
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: First_Brand
+    Icon: EFST_FIRST_BRAND
+    DurationLookup: IQ_FIRST_BRAND
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+    End:
+      First_Brand: true
+      Second_Brand: true
+  - Status: Second_Brand
+    Icon: EFST_SECOND_BRAND
+    DurationLookup: IQ_SECOND_FLAME
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+    End:
+      First_Brand: true
+      Second_Brand: true
+  - Status: Second_Judge
+    Icon: EFST_SECOND_JUDGE
+    DurationLookup: IQ_JUDGE
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+    End:
+      First_Faith_Power: true
+      Second_Judge: true
+      Third_Exor_Flame: true
+  - Status: Third_Exor_Flame
+    Icon: EFST_THIRD_EXOR_FLAME
+    DurationLookup: IQ_THIRD_EXOR_FLAME
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+    End:
+      First_Faith_Power: true
+      Second_Judge: true
+      Third_Exor_Flame: true
+  - Status: First_Faith_Power
+    Icon: EFST_FIRST_FAITH_POWER
+    DurationLookup: IQ_FIRST_FAITH_POWER
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+    End:
+      First_Faith_Power: true
+      Second_Judge: true
+      Third_Exor_Flame: true
+  - Status: Massive_F_Blaster
+    Icon: EFST_MASSIVE_F_BLASTER
+    DurationLookup: IQ_MASSIVE_F_BLASTER
+  - Status: Protectshadowequip
+    Icon: EFST_PROTECTSHADOWEQUIP
+    DurationLookup: BO_ADVANCE_PROTECTION
+    Flags:
+      RemoveChemicalProtect: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Researchreport
+    Icon: EFST_RESEARCHREPORT
+    DurationLookup: BO_RESEARCHREPORT
+  - Status: Bo_Hell_Dusty
+    Icon: EFST_BO_HELL_DUSTY
+  - Status: Bionic_Woodenwarrior
+    DurationLookup: BO_WOODENWARRIOR
+  - Status: Bionic_Wooden_Fairy
+    DurationLookup: BO_WOODEN_FAIRY
+  - Status: Bionic_Creeper
+    DurationLookup: BO_CREEPER
+  - Status: Bionic_Helltree
+    DurationLookup: BO_HELLTREE
+  - Status: Shadow_Strip
+    Icon: EFST_SHADOW_STRIP
+    DurationLookup: ABC_STRIP_SHADOW
+    CalcFlags:
+      Res: true
+      Mres: true
+    Flags:
+      BossResist: true
+      NoClearbuff: true
+      Debuff: true
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Abyss_Dagger
+    Icon: EFST_ABYSS_DAGGER
+    DurationLookup: ABC_ABYSS_DAGGER
+  - Status: Abyssforceweapon
+    Icon: EFST_ABYSSFORCEWEAPON
+    DurationLookup: ABC_FROM_THE_ABYSS
+    Flags:
+      NoBanishingBuster: true
+      NoDispell: true
+      NoClearance: true
+  - Status: Abyss_Slayer
+    Icon: EFST_ABYSS_SLAYER
+    DurationLookup: ABC_ABYSS_SLAYER
+    CalcFlags:
+      Hit: true
+      Patk: true
+      Smatk: true
+    Flags:
+      BlEffect: true
+      DisplayPc: true
+  - Status: Flametechnic
+    Icon: EFST_FLAMETECHNIC
+    Flags:
+      RemoveElementalOption: true
+  - Status: Flametechnic_Option
+    Icon: EFST_FLAMETECHNIC_OPTION
+    DurationLookup: EM_EL_FLAMETECHNIC
+    Flags:
+      RemoveElementalOption: true
+  - Status: Flamearmor
+    Icon: EFST_FLAMEARMOR
+    Flags:
+      RemoveElementalOption: true
+  - Status: Flamearmor_Option
+    Icon: EFST_FLAMEARMOR_OPTION
+    DurationLookup: EM_EL_FLAMEARMOR
+    CalcFlags:
+      All: true
+    Flags:
+      RemoveElementalOption: true
+  - Status: Cold_Force
+    Icon: EFST_COLD_FORCE
+    Flags:
+      RemoveElementalOption: true
+  - Status: Cold_Force_Option
+    Icon: EFST_COLD_FORCE_OPTION
+    DurationLookup: EM_EL_COLD_FORCE
+    Flags:
+      RemoveElementalOption: true
+  - Status: Crystal_Armor
+    Icon: EFST_CRYSTAL_ARMOR
+    Flags:
+      RemoveElementalOption: true
+  - Status: Crystal_Armor_Option
+    Icon: EFST_CRYSTAL_ARMOR_OPTION
+    DurationLookup: EM_EL_CRYSTAL_ARMOR
+    CalcFlags:
+      All: true
+    Flags:
+      RemoveElementalOption: true
+  - Status: Grace_Breeze
+    Icon: EFST_GRACE_BREEZE
+    Flags:
+      RemoveElementalOption: true
+  - Status: Grace_Breeze_Option
+    Icon: EFST_GRACE_BREEZE_OPTION
+    DurationLookup: EM_EL_GRACE_BREEZE
+    Flags:
+      RemoveElementalOption: true
+  - Status: Eyes_Of_Storm
+    Icon: EFST_EYES_OF_STORM
+    Flags:
+      RemoveElementalOption: true
+  - Status: Eyes_Of_Storm_Option
+    Icon: EFST_EYES_OF_STORM_OPTION
+    DurationLookup: EM_EL_EYES_OF_STORM
+    CalcFlags:
+      All: true
+    Flags:
+      RemoveElementalOption: true
+  - Status: Earth_Care
+    Icon: EFST_EARTH_CARE
+    Flags:
+      RemoveElementalOption: true
+  - Status: Earth_Care_Option
+    Icon: EFST_EARTH_CARE_OPTION
+    DurationLookup: EM_EL_EARTH_CARE
+    Flags:
+      RemoveElementalOption: true
+  - Status: Strong_Protection
+    Icon: EFST_STRONG_PROTECTION
+    Flags:
+      RemoveElementalOption: true
+  - Status: Strong_Protection_Option
+    Icon: EFST_STRONG_PROTECTION_OPTION
+    DurationLookup: EM_EL_STRONG_PROTECTION
+    CalcFlags:
+      All: true
+    Flags:
+      RemoveElementalOption: true
+  - Status: Deep_Poisoning
+    Icon: EFST_DEEP_POISONING
+    Flags:
+      RemoveElementalOption: true
+  - Status: Deep_Poisoning_Option
+    Icon: EFST_DEEP_POISONING_OPTION
+    DurationLookup: EM_EL_DEEP_POISONING
+    Flags:
+      RemoveElementalOption: true
+  - Status: Poison_Shield
+    Icon: EFST_POISON_SHIELD
+    Flags:
+      RemoveElementalOption: true
+  - Status: Poison_Shield_Option
+    Icon: EFST_POISON_SHIELD_OPTION
+    DurationLookup: EM_EL_POISON_SHIELD
+    CalcFlags:
+      All: true
+    Flags:
+      RemoveElementalOption: true

+ 1 - 0
db/skill_db.yml

@@ -135,6 +135,7 @@
 #     Interval                Skill unit interval in milliseconds. (Default: 0)
 #     Target                  Skill unit target type. (Default: All)
 #     Flag:                   Skill unit flags. (Default: None)
+#   Status                    Status Change that is associated to the skill. (Optional)
 ###########################################################################
 
 Header:

+ 52 - 0
db/status.yml

@@ -0,0 +1,52 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2022 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Status Change Database
+###########################################################################
+#
+# Status Change Settings
+#
+###########################################################################
+# - Status                    Status change name.
+#   Icon                      Status change icon. (Default: EFST_BLANK)
+#   DurationLookup            Default status change duration. (Default: 0)
+#   States:                   Status change state to determine player states. (Default: None)
+#   CalcFlags:                Status change calculation to indicate which stat is adjusted. (Default: None)
+#   Opt1                      Special effect when a status change is active. Non-stackable. (Default: None)
+#   Opt2:                     Special options/client effects when a status change is active. (Default: None)
+#   Opt3:                     Special options/client effects when a status change is active. (Default: Normal)
+#   Options:                  Special options/client effects when a status change is active. (Default: Nothing)
+#   Flags:                    Special flags which trigger during certain events.  (Default: None)
+#   MinRate                   Minimum rate after status change reduction (10000 = 100%). (Default: 0)
+#   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)
+###########################################################################
+
+Header:
+  Type: STATUS_DB
+  Version: 1
+
+Footer:
+  Imports:
+  - Path: db/pre-re/status.yml
+    Mode: Prerenewal
+  - Path: db/re/status.yml
+    Mode: Renewal
+  - Path: db/import/status.yml

+ 4 - 0
doc/skill_db.txt

@@ -925,3 +925,7 @@ CrazyWeedImmune		- Immune to GN_CRAZYWEED.
 RemovedByFireRain	- Removed by RL_FIRE_RAIN.
 KnockbackGroup		- Knock back a whole skill group (by default, skill unit is knocked back by each unit).
 HiddenTrap			- Hidden trap. See battle_config::traps_setting to enable this flag.
+
+------------------
+
+Status: Status Change that is associated to the skill. The status is used in association with the status.yml database.

+ 297 - 0
doc/status.txt

@@ -0,0 +1,297 @@
+//===== rAthena Documentation ================================
+//= Status Change Database Structure
+//===== By: ==================================================
+//= rAthena Dev Team
+//===== Last Updated: ========================================
+//= 20220222
+//===== Description: =========================================
+//= Explanation of the status.yml file and structure.
+//============================================================
+
+---------------------------------------
+
+Status: Status change name.
+
+See src/map/script_constants.hpp for SC_ constants.
+
+---------------------------------------
+
+Icon: Status change icon or client effect that will be displayed client-side.
+
+See src/map/script_constants.hpp for EFST_ constants.
+
+---------------------------------------
+
+DurationLookup: Used for default duration lookup in skill_db.yml. The lookup is used for some item bonuses as default duration.
+
+---------------------------------------
+
+States: Specified states given when the SC is active.
+
+	None               - No special state. (Default)
+	NoMove             - Cannot move.
+	NoMoveCond         - Condition check for SCS_NOMOVE.
+	NoPickItem         - Cannot pick item.
+	NoPickItemCond     - Condition check for SCS_NOPICKITEM.
+	NoDropItem         - Cannot drop item.
+	NoDropItemCond     - Condition check for SCS_NODROPITEM.
+	NoCast             - Cannot cast a skill.
+	NoCastCond         - Condition check for SCS_NOCAST.
+	NoChat             - Cannot chat and open chat room.
+	NoChatCond         - Condition check for SCS_NOCHATCOND.
+	NoEquipItem        - Cannot put on equipment.
+	NoEquipItemCond    - Condition check for SCS_NOEQUIPITEM.
+	NoUnEquipItem      - Cannot put off equipment.
+	NoUnEquipItemCond  - Condition check for SCS_NOUNEQUIPITEM.
+	NoConsumeItem      - Cannot consume item.
+	NoConsumeItemCond  - Condition check for SCS_NOCONSUMEITEM.
+	NoAttack           - Cannot attack.
+	NoAttackCond       - Condition check for SCS_NOATTACK.
+	NoWarp             - Cannot warp.
+	NoWarpCond         - Condition check for SCS_NOWARP.
+	NoDeathPenalty     - Cannot lose experience on death.
+	NoDeathPenaltyCond - Condition check for SCS_NODEATHPENALTY.
+	NoInteract         - Cannot interact with client (sit/stand or talk with NPC).
+	NoInteractCond     - Condition check for SCS_NOINTERACT.
+
+States that have a suffix of "Cond" means the State has hard coded conditions in status.cpp::status_calc_state
+
+---------------------------------------
+
+CalcFlags: Flag that indicates which status calculation needs to be performed. Even if the value is changed in the status_db.yml the SC must have the respective bonus defined in source.
+
+	None    - Calculates nothing. (Default)
+	Base    - Base status
+	MaxHp   - Maximum HP
+	MaxSp   - Maximum SP
+	Str     - STR
+	Agi     - AGI
+	Vit     - VIT
+	Int     - INT
+	Dex     - DEX
+	Luk     - LUK
+	Batk    - Base Attack
+	Watk    - Weapon Attack
+	Matk    - Magic Attack
+	Hit     - Hit/accuracy rate
+	Flee    - Flee/dodge rate
+	Def     - Equipment Defense
+	Def2    - Defense
+	Mdef    - Equipment Magic Defense
+	Mdef2   - Magic Defense
+	Speed   - Walk speed
+	Aspd    - Attack speed
+	Dspd    - Damage delay speed
+	Cri     - Critical rate
+	Flee2   - Perfect dodge rate
+	Atk_Ele - Attack Element
+	Def_Ele - Defense Element
+	Mode    - Mode
+	Size    - Size
+	Race    - Race
+	Range   - Range
+	Regen   - Regeneration
+	MaxAp   - Maximum AP
+	Pow     - POW
+	Sta     - STA
+	Wis     - WIS
+	Spl     - SPL
+	Con     - CON
+	Crt     - CRT
+	Patk    - Physical Power
+	Smatk   - Spell Magic Attack
+	Res     - Physical Resistance
+	Mres    - Magic Resistance
+	Hplus   - Heal Plus
+	Crate   - Critical Rate
+	Dye     - Dye
+	All     - Calculates all CalcFlags
+
+---------------------------------------
+
+Opt1: Special effect when status is active (Aegis: BODYSTATE_*). This option is not stackable. These effects also apply their special behaviors.
+
+	None         - No effect (Default)
+	Stone        - Stone curse effect
+	Freeze       - Freeze effect
+	Stun         - Stun effect
+	Sleep        - Sleep effect
+	StoneWait    - Effect before Stone is really applied
+	Burning      - Burning effect
+	Imprison     - Imprison effect
+	Crystalize   - Crystalize effect
+
+---------------------------------------
+
+Opt2: Special option/client effect when status is active (Aegis: HEALTHSTATE_*).
+
+	None           - No effect (Default)
+	Poison         - Posioned effect
+	Curse          - Cursed effect
+	Silence        - Silenced effect
+	SignumCrucis   - Signum Crucis effect
+	Blind          - Blind effect
+	Angelus        - Angelus effect
+	Bleeding       - Bleeding effect
+	Dpoison        - Heavy Poisoned effect
+	Fear           - Fear effect
+
+---------------------------------------
+
+Opt3: Special option/client effect when status is active (Aegis: SHOW_EFST_*)
+
+	Normal            - No effect (Default)
+	Quicken           - Quicken effect
+	OverThrust        - Overthrust effect
+	EnergyCoat        - Energy Coat effect
+	ExplosionSpirits  - Explosion Spirits effect
+	SteelBody         - Steel Body effect
+	BladeStop         - Blade Stop effect
+	AuraBlade         - Aura Blade effect
+	Berserk           - Berserk effect
+	LightBlade        - Light Blade effect
+	Moonlit           - Moonlit effect
+	Marionette        - Marionette effect
+	Assumptio         - Assumptio effect
+	Warm              - Warm effect
+	Kaite             - Kaite effect
+	Bunsin            - Bunshin effect
+	SoulLink          - Soul Link effect
+	Undead            - Undead effect
+	Contract          - Contract effect
+
+---------------------------------------
+
+Options: Special option/client effect state when status is active.
+
+	Nothing        - No effect (Default)
+	Sight          - Sight effect
+	Hide           - Hide effect
+	Cloak          - Cloaking effect
+	Falcon         - Falcon effect
+	Riding         - Riding effect
+	Invisible      - Invisible effect
+	Orcish         - Orcish effect, the ugly face!
+	Wedding        - Wedding costume
+	Ruwach         - Ruwach effect
+	ChaseWalk      - Chasewalk effect
+	Flying         - Flying effect (Star Gladiator's Union)
+	Xmas           - Christmas costume
+	Transform      - Transformation
+	Summer         - Summer costume
+	Dragon1        - Dragon
+	Dragon2        - Dragon
+	Dragon3        - Dragon
+	Dragon4        - Dragon
+	Dragon5        - Dragon
+	Wug            - Wug
+	WugRider       - Riding a Wug
+	Madogear       - Madogear
+	Hanbok         - Hanbok costume
+	Oktoberfest    - Oktoberfest costume
+
+---------------------------------------
+
+Flags: Various status flags for specific status change events.
+
+	None                  - No special flag. (Default)
+	BlEffect              - Status should have BL_SCEFFECT as relevant effect, must have an EFST (displays on BL_PC, BL_HOM, BL_MER, BL_MOB, BL_ELEM). BL_PC is the default value.
+	DisplayPc             - Displays status effect when player logs in.
+	DislpayNpc            - Displays status effect on a NPC.
+	Debuff                - Status is considered a debuff. Used in combination with 'battle_config.debuff_on_logout'.
+	SetStand              - Sets player to standing state.
+	OverlapFail           - The status will fail to activate if the status is already active.
+	OverlapIgnoreLevel    - The status will successfully activate for any level if the status is already active.
+	FailedMado            - Cannot be applied if Madogear is active.
+	MadoCancel            - Cancels the status when mounting Madogear.
+	MadoEndCancel         - Cancels the status when unmounting Madogear.
+	MobLoseTarget         - When active on a monster it will lose the target.
+	RestartOnMapWarp      - Restarts the timer of a status when warping to another map.
+	SpreadEffect          - Passes the status onto a target when SC_DEADLYINFECT is active.
+	SendVal1              - Notifies the client of a status change (val1).
+	SendVal2              - Notifies the client of a status change (val2).
+	SendVal3              - Notifies the client of a status change (val3).
+
+	NoClearbuff           - Cannot be removed by 'status_change_clear_buffs()', 'sc_end SC_ALL', 'status_change_clear(3)', etc.
+	NoRemoveOnDead        - Cannot be removed when a player dies.
+	NoDispell             - Cannot be removed by SA_DISPELL.
+	NoClearance           - Cannot be removed by AB_CLEARANCE.
+	NoBanishingBuster     - Cannot be removed by RL_BANISHING_BUSTER.
+	NoSave                - Won't be saved when player logs out.
+	NoSaveInfinite        - Infinite duration status won't be saved when player logs out.
+
+	RemoveOnDamaged       - Removed when receiving damage.
+	RemoveOnRefresh       - Removed by RK_REFRESH.
+	RemoveOnLuxAnima      - Removed by RK_LUXANIMA.
+	RemoveOnMapWarp       - Removed when warping to another map.
+	RemoveOnChangeMap     - Removed when changing map-server.
+	RemoveChemicalProtect - Removed by AM_CP_ARMOR/AM_CP_HELM/AM_CP_SHIELD/AM_CP_WEAPON.
+	RemoveElementalOption - Removed by elemental changing modes/quitting/EL_TIDAL_WEAPON/EL_WATER_SCREEN on the master and elemental.
+
+	StopAttacking         - Makes the unit stop attacking.
+	StopCasting           - Makes the unit stop casting skills.
+	StopWalking           - Makes the unit stop walking.
+
+	BossResist            - Cannot be applied to Boss Monster (Mob has mode MD_STATUS_IMMUNE).
+	MvpResist             - Cannot be applied to MvP (Mob has mode MD_MVP).
+
+	SendOption            - Sends the STATE_CHANGE packet. For statuses that have Opt1, Opt2, or Opt3 values.
+	SendLook              - Sends the STATE_CHANGE packet. For statuses that have body/look changes through 'Option' flags (only for players).
+	OnTouch               - Triggers OnTouch_ NPC events. For statuses that have an invisible effect.
+	UnitMove              - Triggers when the player has moved location and invokes the skill unit on place.
+	NonPlayer             - Sends the NPC_SHOWEFST_UPDATE packet. Used to send effects to NPC/monsters.
+
+	RequireWeapon         - Status requires a weapon to be equipped.
+	RequireShield         - Status requires a shield to be equipped.
+
+	SuperNoviceAngel      - Status that is given from Super Novice Angel.
+	TaekwonAngel          - Status that is given from Taekwon Angel.
+
+---------------------------------------
+
+MinDuration: Minimum duration, in milliseconds, after reduction calculation for status resistance.
+
+---------------------------------------
+
+MinRate: Minimum success rate, at n/10000, after reduction calculation for status resistance.
+
+---------------------------------------
+
+Fail: List of status that causes the status to fail to activate.
+
+---------------------------------------
+
+End: List of status that will end if the status activates.
+
+---------------------------------------
+
+EndReturn: If the status has any 'End' and succeeds to end other status in the list, it won't give its effect.
+
+---------------------------------------
+
+Notes:
+
+By default, statuses are 'Buff' (those that aren't explicitely given the 'Debuff' flag) which are removable by 'map_quit' in combination with 'battle_config.debuff_on_logout'.
+
+The NoClearbuff flag prevents some permanent and non-permanent statuses that cannot be removed by 'status_change_clear', 'status_change_clear_buffs', 'map_quit', or other
+clearing means.
+The function 'status_change_clear_buffs' is called by CG_TAROTCARD, RK_REFRESH, RK_LUXANIMA, CG_HERMODE, PA_GOSPEL, and LG_INSPIRATION.
+
+CG_TAROTCARD and CG_HERMODE only remove buffs while PA_GOSPEL and LG_INSPIRATION remove buffs and debuffs.
+
+RK_REFRESH and RK_LUXANIMA only remove statuses that have the Rem_On_Rerfresh or RemoveOnLuxAnima flag. Works just like SA_DISPELL, AB_CLEARANCE, RL_BANISHING_BUSTER that has the
+effect to remove buffs or debuffs.
+
+---- Removed comments from source ----
+- Mado is immune to increase agi, wind walk, cart boost, etc (others above) [Ind]
+- Cart Boost cannot be affected by Slow grace. Assumed if player got Slow Grace first, Cart Boost is failed since Cart Boost doesn't cancel Slow Grace effect
+  http://irowiki.org/wiki/Cart_Boost_%28Genetic%29 (view date: 2014-01-26)
+  http://irowiki.org/wiki/Cart_Boost (view date: 2014-01-26)
+- kRO Update 2014-02-12: Cannot be stacked with Platinum Alter and Madness Canceler (and otherwise?) [Cydh]
+- SC_BERSERK, SC_SATURDAYNIGHTFEVER, and SC__BLOODYLUST are all like berserk, do not everlap each other.
+- SC_STONE, SC_FREEZE, SC_DEEPSLEEP, SC_SLEEP, SC_STUN, SC_FREEZING, and SC_CRYSTALIZE cannot override other opt1 status changes. [Skotlex]
+  TODO: SC that has OPT1: SC_STONE, SC_FREEZE, SC_STUN, SC_SLEEP, SC_BURNING, SC_WHITEIMPRISON, SC_CRYSTALIZE
+- Immune to Frozen and Freezing status if under Warmer status. [Jobbie]
+- SC_ONEHAND removes the Aspd potion effect, as reported by Vicious. [Skotlex]
+- SC_ALL_RIDING. Already mounted, just dismount.
+- SC_GN_CARTBOOST andSC_CARTBOOST cancel Decrease Agi, but take no further effect [Skotlex]

+ 74 - 6
doc/status_change.txt

@@ -45,7 +45,7 @@ SC_POISON	()
 	desc: DEF -25%; if HP>25% lose 1.5% + 2 HP/sec; SP Regeneration is disabled
 	val1: Skill Level
 	val2: Caster's object ID
-	val3: 
+	val3:
 	val4: Remaining tick
 
 SC_CURSE	()
@@ -75,7 +75,7 @@ SC_DPOISON	()
 	desc: DEF -25%; if HP>25% lose 10/15% HP/sec
 	val1: Skill Level
 	val2: Caster's object ID (for mob_log_damage)
-	val3: 
+	val3:
 	val4: Remaining tick
 
 SC_PROVOKE	(EFST_PROVOKE)
@@ -1760,7 +1760,7 @@ SC_RAISINGDRAGON	()
 	val1:
 
 SC_GT_ENERGYGAIN	(EFST_GENTLETOUCH_ENERGYGAIN)
-	desc: 
+	desc:
 	val1: SR_GENTLETOUCH_ENERGYGAIN Skill Level
 	val2: Sphere Gain Chance
 
@@ -2368,7 +2368,7 @@ SC_REBOUND	(EFST_REBOUND)
 	val1:
 
 SC_UNLIMIT	(EFST_UNLIMIT)
-	desc: Increase attak rate & set Def/MDef to 1, 
+	desc: Increase attak rate & set Def/MDef to 1,
 	val1:
 	val2: +% Attack
 
@@ -2710,13 +2710,81 @@ SC_LHZ_DUN_N4	(EFST_LHZ_DUN_N4)
 	desc: Increases and reduces damage against MVPs of Biolab 5.
 	val1: +% Damage
 	val2: +% Defense
-	
+
 SC_DORAM_BUF_01 ()
 	desc: Recovers 10 HP every 10 seconds.
-	
+
 SC_DORAM_BUF_02 ()
 	desc: Recovers 5 SP every 10 seconds.
 
+SC_INCREASE_MAXHP (EFST_ATKER_ASPD)
+	desc: Increases MaxHP. Increases natural HP regeneration.
+	val1: + HP
+	val2: +% HP regeneration
+
+SC_INCREASE_MAXSP (EFST_ATKER_MOVESPEED)
+	desc: Increases MaxSP. Increases natural SP regeneration.
+	val1: + SP
+	val2: +% SP regeneration
+
+SC_REF_T_POTION (EFST_REF_T_POTION)
+	desc: Decreases reflected damage by 100%.
+
+SC_ADD_ATK_DAMAGE (EFST_ADD_ATK_DAMAGE)
+	desc: Increases melee physical damage by 15%. Increases ranged physical damage by 15%.
+	val1:
+
+SC_ADD_MATK_DAMAGE (EFST_ADD_MATK_DAMAGE)
+	desc: Increases all elemental magical damage by 15%.
+
+SC_HELPANGEL (EFST_HELPANGEL)
+	desc: Recover 1000 HP every second. Recover 350 SP every second.
+	val1:
+	val2:
+	val3:
+	val4: Tick time (milliseconds)
+
+SC_SOUNDOFDESTRUCTION (EFST_SOUND_OF_DESTRUCTION)
+	desc: Doubles incoming damage for 10 seconds.
+
+SC_LUXANIMA (EFST_LUXANIMA)
+	desc: Physical attacks has the chance to activate Storm Blast Level 1. Increases physical damage against all sizes.
+		  Increases Critical Damage. Increases Melee and Ranged Physical Damage.
+	val1:
+	val2: Storm Blast success 15% (hardcoded)
+	val3: Damage/HP/SP 30% increase (hardcoded)
+
+SC_REUSE_LIMIT_LUXANIMA ()
+	desc:
+	val1:
+
+SC_ENSEMBLEFATIGUE (EFST_ENSEMBLEFATIGUE)
+	desc: Disables skill use. Movement and attack speed reduced by 30%.
+	val1:
+	val2: + 30 Speed and ASPD rates penalty (hardcoded)
+
+SC_MISTY_FROST (EFST_MISTY_FROST)
+	desc: Freezing.
+
+SC_MAGIC_POISON (EFST_MAGIC_POISON)
+	desc: Decreases resistance against all elemental attacks by 50%.
+	val1:
+	val2: Attribute Reduction (50, hardcoded).
+
+SC_EP16_2_BUFF_SS (EFST_EP16_2_BUFF_SS)
+	desc: ASPD +10.
+
+SC_EP16_2_BUFF_SC (EFST_EP16_2_BUFF_SC)
+	desc: CRIT +30.
+
+SC_EP16_2_BUFF_AC (EFST_EP16_2_BUFF_AC)
+	desc: Reduce variable cast time by 80%.
+
+SC_EMERGENCY_MOVE (EFST_INC_AGI)
+	desc: Increase AGI and walkspeed, AL_INCAGI effect.
+	val1:
+	val2: Movement speed +25 (hardcoded)
+
 SC_PACKING_ENVELOPE1	(EFST_PACKING_ENVELOPE1)
 	desc: Increases ATK
 	val1: + watk

+ 1 - 0
doc/yaml/db/skill_db.yml

@@ -118,4 +118,5 @@
 #     Interval                Skill unit interval in milliseconds. (Default: 0)
 #     Target                  Skill unit target type. (Default: All)
 #     Flag:                   Skill unit flags. (Default: None)
+#   Status                    Status Change that is associated to the skill. (Optional)
 ###########################################################################

+ 0 - 5
src/common/database.hpp

@@ -150,12 +150,7 @@ public:
 
 	void clear() override{
 		TypesafeYamlDatabase<keytype, datatype>::clear();
-
-		// Restore size after clearing
-		size_t cap = cache.capacity();
-
 		cache.clear();
-		cache.resize(cap, nullptr);
 	}
 
 	std::shared_ptr<datatype> find( keytype key ) override{

+ 4 - 5
src/map/battle.cpp

@@ -1704,7 +1704,7 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
 		}
 
 		if( sc->data[SC__DEADLYINFECT] && (flag&(BF_SHORT|BF_MAGIC)) == BF_SHORT && damage > 0 && rnd()%100 < 30 + 10 * sc->data[SC__DEADLYINFECT]->val1 )
-			status_change_spread(bl, src, 1); // Deadly infect attacked side
+			status_change_spread(bl, src);
 
 	} //End of target SC_ check
 
@@ -1771,7 +1771,7 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
 		}
 
 		if( sc->data[SC__DEADLYINFECT] && (flag&(BF_SHORT|BF_MAGIC)) == BF_SHORT && damage > 0 && rnd()%100 < 30 + 10 * sc->data[SC__DEADLYINFECT]->val1 )
-			status_change_spread(src, bl, 0);
+			status_change_spread(src, bl);
 
 		if (sc->data[SC_STYLE_CHANGE] && sc->data[SC_STYLE_CHANGE]->val1 == MH_MD_FIGHTING) {
 			TBL_HOM *hd = BL_CAST(BL_HOM,src); //when attacking
@@ -9803,9 +9803,8 @@ static const struct _battle_data {
 	{ "display_version",                    &battle_config.display_version,                 1,      0,      1,              },
 	{ "display_hallucination",              &battle_config.display_hallucination,           1,      0,      1,              },
 	{ "use_statpoint_table",                &battle_config.use_statpoint_table,             1,      0,      1,              },
-	{ "berserk_cancels_buffs",              &battle_config.berserk_cancels_buffs,           0,      0,      1,              },
-	{ "debuff_on_logout",                   &battle_config.debuff_on_logout,                1|2,    0,      1|2,            },
-	{ "monster_ai",                         &battle_config.mob_ai,                          0x000,  0x000,  0xFFF,          },
+	{ "debuff_on_logout",                   &battle_config.debuff_on_logout,                0,      0,      1|2,            },
+	{ "monster_ai",                         &battle_config.mob_ai,                          0x000,  0x000,  0x77F,          },
 	{ "hom_setting",                        &battle_config.hom_setting,                     0xFFFF, 0x0000, 0xFFFF,         },
 	{ "dynamic_mobs",                       &battle_config.dynamic_mobs,                    1,      0,      1,              },
 	{ "mob_remove_damaged",                 &battle_config.mob_remove_damaged,              1,      0,      1,              },

+ 0 - 1
src/map/battle.hpp

@@ -423,7 +423,6 @@ struct Battle_Config
 	int display_hallucination;	// [Skotlex]
 	int use_statpoint_table;	// [Skotlex]
 
-	int berserk_cancels_buffs; // [Aru]
 	int debuff_on_logout; // Removes a few "official" negative Scs on logout. [Skotlex]
 	int mob_ai; //Configures various mob_ai settings to make them smarter or dumber(official). [Skotlex]
 	int hom_setting; //Configures various homunc settings which make them behave unlike normal characters.. [Skotlex]

+ 3 - 2
src/map/chrif.cpp

@@ -1656,7 +1656,8 @@ int chrif_bsdata_save(struct map_session_data *sd, bool quit) {
 
 	// Removing...
 	if (quit && sd->bonus_script.head) {
-		uint16 flag = BSF_REM_ON_LOGOUT; //Remove bonus when logout
+		uint32 flag = BSF_REM_ON_LOGOUT; //Remove bonus when logout
+
 		if (battle_config.debuff_on_logout&1) //Remove negative buffs
 			flag |= BSF_REM_DEBUFF;
 		if (battle_config.debuff_on_logout&2) //Remove positive buffs
@@ -1734,7 +1735,7 @@ int chrif_bsdata_received(int fd) {
 			if (bs->script_str[0] == '\0' || !bs->tick)
 				continue;
 
-			if (!(entry = pc_bonus_script_add(sd, bs->script_str, bs->tick, (enum efst_types)bs->icon, bs->flag, bs->type)))
+			if (!(entry = pc_bonus_script_add(sd, bs->script_str, bs->tick, (enum efst_type)bs->icon, bs->flag, bs->type)))
 				continue;
 
 			linkdb_insert(&sd->bonus_script.head, (void *)((intptr_t)entry), entry);

+ 20 - 28
src/map/clif.cpp

@@ -4288,7 +4288,7 @@ void clif_changeoption_target( struct block_list* bl, struct block_list* target
 		if( sc->data[SC_PROVOKE] ){
 			const struct TimerData *td = get_timer( sc->data[SC_PROVOKE]->timer );
 
-			clif_status_change( bl, StatusIconChangeTable[SC_PROVOKE], 1, ( !td ? INFINITE_TICK : DIFF_TICK( td->tick, gettick() ) ), 0, 0, 0 );
+			clif_status_change( bl, status_db.getIcon(SC_PROVOKE), 1, ( !td ? INFINITE_TICK : DIFF_TICK( td->tick, gettick() ) ), 0, 0, 0 );
 		}
 	}else{
 		if( disguised( bl ) ){
@@ -6371,7 +6371,7 @@ void clif_cooking_list( struct map_session_data *sd, int trigger, uint16 skill_i
 /// 0983 <index>.W <id>.L <state>.B <total msec>.L <remain msec>.L { <val>.L }*3 (ZC_MSG_STATE_CHANGE3) (PACKETVER >= 20120618)
 /// @param bl Sends packet to clients around this object
 /// @param id ID of object that has this effect
-/// @param type Status icon see enum efst_types
+/// @param type Status icon see enum efst_type
 /// @param flag 1:Active, 0:Deactive
 /// @param tick Duration in ms
 /// @param val1
@@ -6433,7 +6433,7 @@ void clif_status_change_sub(struct block_list *bl, int id, int type, int flag, t
 
 /* Sends status effect to clients around the bl
  * @param bl Object that has the effect
- * @param type Status icon see enum efst_types
+ * @param type Status icon see enum efst_type
  * @param flag 1:Active, 0:Deactive
  * @param tick Duration in ms
  * @param val1
@@ -6452,11 +6452,17 @@ void clif_status_change(struct block_list *bl, int type, int flag, t_tick tick,
 	if (type == EFST_ILLUSION && !battle_config.display_hallucination) // Disable Hallucination.
 		return;
 
+#if PACKETVER_MAIN_NUM < 20191120 || PACKETVER_RE_NUM < 20191106
+	// Older clients display normal riding icon.
+	if (type == EFST_MADOGEAR)
+		type = EFST_RIDING;
+#endif
+
 	nullpo_retv(bl);
 
 	sd = BL_CAST(BL_PC, bl);
 
-	if (!(status_type2relevant_bl_types(type)&bl->type)) // only send status changes that actually matter to the client
+	if (!(status_efst_get_bl_type((efst_type)type)&bl->type)) // only send status changes that actually matter to the client
 		return;
 
 	clif_status_change_sub(bl, bl->id, type, flag, tick, val1, val2, val3, ((sd ? (pc_isinvisible(sd) ? SELF : AREA) : AREA_WOS)));
@@ -6525,9 +6531,9 @@ void clif_efst_status_change_sub(struct block_list *tbl, struct block_list *bl,
 		}
 
 #if PACKETVER > 20120418
-		clif_efst_status_change(tbl, bl->id, target, StatusIconChangeTable[type], tick, sc_display[i]->val1, sc_display[i]->val2, sc_display[i]->val3);
+		clif_efst_status_change(tbl, bl->id, target, status_db.getIcon(type), tick, sc_display[i]->val1, sc_display[i]->val2, sc_display[i]->val3);
 #else
-		clif_status_change_sub(tbl, bl->id, StatusIconChangeTable[type], 1, tick, sc_display[i]->val1, sc_display[i]->val2, sc_display[i]->val3, target);
+		clif_status_change_sub(tbl, bl->id, status_db.getIcon(type), 1, tick, sc_display[i]->val1, sc_display[i]->val2, sc_display[i]->val3, target);
 #endif
 	}
 }
@@ -11724,19 +11730,12 @@ void clif_parse_ActionRequest_sub(struct map_session_data *sd, int action_type,
 		return;
 	}
 
-	// Statuses that don't let the player sit / attack / talk with NPCs(targeted)
-	// (not all are included in pc_can_attack)
-	if (sd->sc.count &&
-		(sd->sc.data[SC_TRICKDEAD] ||
-		(sd->sc.data[SC_AUTOCOUNTER] && action_type != 0x07) ||
-		 sd->sc.data[SC_BLADESTOP] ||
-		 sd->sc.data[SC__MANHOLE] ||
-		 sd->sc.data[SC_SUHIDE] ||
-		 sd->sc.data[SC_GRAVITYCONTROL]))
-		return;
-
-	if(action_type != 0x00 && action_type != 0x07)
+	// Statuses that don't let the player sit / stand / talk with NPCs (targeted)
+	if (action_type != 0x00 && action_type != 0x07) {
+		if (sd->sc.cant.interact)
+			return;
 		pc_stop_walking(sd, 1);
+	}
 	pc_stop_attack(sd);
 
 	if(target_id<0 && -target_id == sd->bl.id) // for disguises [Valaris]
@@ -11747,10 +11746,7 @@ void clif_parse_ActionRequest_sub(struct map_session_data *sd, int action_type,
 	case 0x00: // once attack
 	case 0x07: // continuous attack
 
-		if( pc_cant_act(sd) || sd->sc.option&OPTION_HIDE )
-			return;
-
-		if( sd->sc.option&OPTION_COSTUME )
+		if( pc_cant_act(sd) )
 			return;
 
 		if (!battle_config.sdelay_attack_enable && pc_checkskill(sd, SA_FREECAST) <= 0) {
@@ -12073,11 +12069,7 @@ void clif_parse_DropItem(int fd, struct map_session_data *sd){
 		if (pc_cant_act2(sd) || sd->npc_id)
 			break;
 
-		if (sd->sc.count && (
-			sd->sc.data[SC_AUTOCOUNTER] ||
-			sd->sc.data[SC_BLADESTOP] ||
-			(sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOITEM)
-		))
+		if (sd->sc.cant.drop)
 			break;
 
 		if (!pc_dropitem(sd, item_index, item_amount))
@@ -15176,7 +15168,7 @@ void clif_parse_NoviceExplosionSpirits(int fd, struct map_session_data *sd)
 			int percent = (int)( ( (double)sd->status.base_exp/(double)next )*1000. );
 
 			if( percent && ( percent%100 ) == 0 ) {// 10.0%, 20.0%, ..., 90.0%
-				sc_start(&sd->bl,&sd->bl, status_skill2sc(MO_EXPLOSIONSPIRITS), 100, 17, skill_get_time(MO_EXPLOSIONSPIRITS, 5)); //Lv17-> +50 critical (noted by Poki) [Skotlex]
+				sc_start(&sd->bl,&sd->bl, SC_EXPLOSIONSPIRITS, 100, 17, skill_get_time(MO_EXPLOSIONSPIRITS, 5)); //Lv17-> +50 critical (noted by Poki) [Skotlex]
 				clif_skill_nodamage(&sd->bl, &sd->bl, MO_EXPLOSIONSPIRITS, 5, 1);  // prayer always shows successful Lv5 cast and disregards noskill restrictions
 			}
 		}

+ 2 - 128
src/map/elemental.cpp

@@ -286,137 +286,11 @@ int elemental_data_received(s_elemental *ele, bool flag) {
 	return 1;
 }
 
-int elemental_clean_single_effect(s_elemental_data *ed, uint16 skill_id) {
-	nullpo_ret(ed);
-
-	sc_type type = status_skill2sc(skill_id);
-	block_list *bl = battle_get_master(&ed->bl);
-
-	if( type ) {
-		switch( type ) {
-				// Just remove status change.
-			case SC_PYROTECHNIC_OPTION:
-			case SC_HEATER_OPTION:
-			case SC_TROPIC_OPTION:
-			case SC_FIRE_CLOAK_OPTION:
-			case SC_AQUAPLAY_OPTION:
-			case SC_WATER_SCREEN_OPTION:
-			case SC_COOLER_OPTION:
-			case SC_CHILLY_AIR_OPTION:
-			case SC_GUST_OPTION:
-			case SC_WIND_STEP_OPTION:
-			case SC_BLAST_OPTION:
-			case SC_WATER_DROP_OPTION:
-			case SC_WIND_CURTAIN_OPTION:
-			case SC_WILD_STORM_OPTION:
-			case SC_PETROLOGY_OPTION:
-			case SC_SOLID_SKIN_OPTION:
-			case SC_CURSED_SOIL_OPTION:
-			case SC_STONE_SHIELD_OPTION:
-			case SC_UPHEAVAL_OPTION:
-			case SC_CIRCLE_OF_FIRE_OPTION:
-			case SC_TIDAL_WEAPON_OPTION:
-			case SC_FLAMETECHNIC_OPTION:
-			case SC_FLAMEARMOR_OPTION:
-			case SC_COLD_FORCE_OPTION:
-			case SC_CRYSTAL_ARMOR_OPTION:
-			case SC_GRACE_BREEZE_OPTION:
-			case SC_EYES_OF_STORM_OPTION:
-			case SC_EARTH_CARE_OPTION:
-			case SC_STRONG_PROTECTION_OPTION:
-			case SC_DEEP_POISONING_OPTION:
-			case SC_POISON_SHIELD_OPTION:
-				if( bl ) status_change_end(bl,type,INVALID_TIMER);	// Master
-				status_change_end(&ed->bl,static_cast<sc_type>(type-1),INVALID_TIMER);	// Elemental Spirit
-				break;
-			case SC_ZEPHYR:
-				if( bl ) status_change_end(bl,type,INVALID_TIMER);
-				break;
-			default:
-				ShowWarning("Invalid SC=%d in elemental_clean_single_effect\n",type);
-				break;
-		}
-	}
-
-	return 1;
-}
-
 int elemental_clean_effect(s_elemental_data *ed) {
 	nullpo_ret(ed);
 
-	map_session_data *sd;
-
-	// Elemental side
-	status_change_end(&ed->bl, SC_TROPIC, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_HEATER, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_AQUAPLAY, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_COOLER, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_CHILLY_AIR, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_PYROTECHNIC, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_FIRE_CLOAK, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_WATER_DROP, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_WATER_SCREEN, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_GUST, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_WIND_STEP, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_BLAST, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_WIND_CURTAIN, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_WILD_STORM, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_PETROLOGY, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_SOLID_SKIN, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_CURSED_SOIL, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_STONE_SHIELD, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_UPHEAVAL, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_CIRCLE_OF_FIRE, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_TIDAL_WEAPON, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_FLAMETECHNIC, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_FLAMEARMOR, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_COLD_FORCE, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_CRYSTAL_ARMOR, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_GRACE_BREEZE, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_EYES_OF_STORM, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_EARTH_CARE, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_STRONG_PROTECTION, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_DEEP_POISONING, INVALID_TIMER);
-	status_change_end(&ed->bl, SC_POISON_SHIELD, INVALID_TIMER);
-
-	if( (sd = ed->master) == NULL )
-		return 0;
-
-	// Master side
-	status_change_end(&sd->bl, SC_TROPIC_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_HEATER_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_AQUAPLAY_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_COOLER_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_CHILLY_AIR_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_PYROTECHNIC_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_FIRE_CLOAK_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_WATER_DROP_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_WATER_SCREEN_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_GUST_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_WIND_STEP_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_BLAST_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_WATER_DROP_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_WIND_CURTAIN_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_WILD_STORM_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_ZEPHYR, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_WIND_STEP_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_PETROLOGY_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_SOLID_SKIN_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_CURSED_SOIL_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_STONE_SHIELD_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_UPHEAVAL_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_CIRCLE_OF_FIRE_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_TIDAL_WEAPON_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_FLAMETECHNIC_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_FLAMEARMOR_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_COLD_FORCE_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_CRYSTAL_ARMOR_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_GRACE_BREEZE_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_EYES_OF_STORM_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_EARTH_CARE_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_STRONG_PROTECTION_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_DEEP_POISONING_OPTION, INVALID_TIMER);
-	status_change_end(&sd->bl, SC_POISON_SHIELD_OPTION, INVALID_TIMER);
+	status_db.removeByStatusFlag(&ed->bl, { SCF_REMOVEELEMENTALOPTION });
+	status_db.removeByStatusFlag(battle_get_master(&ed->bl), { SCF_REMOVEELEMENTALOPTION });
 
 	return 1;
 }

+ 0 - 2
src/map/elemental.hpp

@@ -125,7 +125,6 @@ t_tick elemental_get_lifetime(s_elemental_data *ed);
 int elemental_unlocktarget(s_elemental_data *ed);
 bool elemental_skillnotok(uint16 skill_id, s_elemental_data *ed);
 int elemental_set_target( map_session_data *sd, block_list *bl );
-int elemental_clean_single_effect(s_elemental_data *ed, uint16 skill_id);
 int elemental_clean_effect(s_elemental_data *ed);
 int elemental_action(s_elemental_data *ed, block_list *bl, t_tick tick);
 struct s_skill_condition elemental_skill_get_requirements(uint16 skill_id, uint16 skill_lv);
@@ -133,7 +132,6 @@ struct s_skill_condition elemental_skill_get_requirements(uint16 skill_id, uint1
 #define elemental_stop_walking(ed, type) unit_stop_walking(&(ed)->bl, type)
 #define elemental_stop_attack(ed) unit_stop_attack(&(ed)->bl)
 
-void read_elemental_skilldb(void);
 void do_init_elemental(void);
 void do_final_elemental(void);
 

+ 8 - 7
src/map/guild.cpp

@@ -1529,14 +1529,15 @@ void guild_guildaura_refresh(struct map_session_data *sd, uint16 skill_id, uint1
 	if( !skill_lv )
 		return;
 
-	std::shared_ptr<s_skill_unit_group> group;
-	sc_type type = status_skill2sc(skill_id);
+	sc_type type = skill_get_sc(skill_id);
+
+	if (type == SC_NONE)
+		return;
+
+	status_change_end(&sd->bl, type, INVALID_TIMER);
+
+	std::shared_ptr<s_skill_unit_group> group = skill_unitsetting(&sd->bl,skill_id,skill_lv,sd->bl.x,sd->bl.y,0);
 
-	if( sd->sc.data[type] && (group = skill_id2group(sd->sc.data[type]->val4)) ) {
-		skill_delunitgroup(group);
-		status_change_end(&sd->bl,type,INVALID_TIMER);
-	}
-	group = skill_unitsetting(&sd->bl,skill_id,skill_lv,sd->bl.x,sd->bl.y,0);
 	if( group )
 		sc_start4(NULL,&sd->bl,type,100,(battle_config.guild_aura&16)?0:skill_lv,0,0,group->group_id,600000);//duration doesn't matter these status never end with val4
 	return;

+ 5 - 5
src/map/homunculus.cpp

@@ -270,7 +270,7 @@ int hom_dead(struct homun_data *hd)
 	clif_emotion(&sd->bl, ET_CRY);
 
 #ifdef RENEWAL
-	status_change_end(&sd->bl, status_skill2sc(AM_CALLHOMUN), INVALID_TIMER);
+	status_change_end(&sd->bl, SC_HOMUN_TIME, INVALID_TIMER);
 #endif
 
 	//Remove from map (if it has no intimacy, it is auto-removed from memory)
@@ -310,7 +310,7 @@ int hom_vaporize(struct map_session_data *sd, int flag)
 	hom_save(hd);
 
 #ifdef RENEWAL
-	status_change_end(&sd->bl, status_skill2sc(AM_CALLHOMUN), INVALID_TIMER);
+	status_change_end(&sd->bl, SC_HOMUN_TIME, INVALID_TIMER);
 #endif
 
 	return unit_remove_map(&hd->bl, CLR_OUTSIGHT);
@@ -1183,7 +1183,7 @@ bool hom_call(struct map_session_data *sd)
 		unit_warp(&hd->bl,sd->bl.m, sd->bl.x, sd->bl.y,CLR_OUTSIGHT);
 
 #ifdef RENEWAL
-	sc_start(&sd->bl, &sd->bl, status_skill2sc(AM_CALLHOMUN), 100, 1, skill_get_time(AM_CALLHOMUN, 1));
+	sc_start(&sd->bl, &sd->bl, SC_HOMUN_TIME, 100, 1, skill_get_time(AM_CALLHOMUN, 1));
 #endif
 
 	return true;
@@ -1243,7 +1243,7 @@ int hom_recv_data(uint32 account_id, struct s_homunculus *sh, int flag)
 	}
 
 #ifdef RENEWAL
-	sc_start(&sd->bl, &sd->bl, status_skill2sc(AM_CALLHOMUN), 100, 1, skill_get_time(AM_CALLHOMUN, 1));
+	sc_start(&sd->bl, &sd->bl, SC_HOMUN_TIME, 100, 1, skill_get_time(AM_CALLHOMUN, 1));
 #endif
 
 	return 1;
@@ -1332,7 +1332,7 @@ int hom_ressurect(struct map_session_data* sd, unsigned char per, short x, short
 	}
 
 #ifdef RENEWAL
-	sc_start(&sd->bl, &sd->bl, status_skill2sc(AM_CALLHOMUN), 100, 1, skill_get_time(AM_CALLHOMUN, 1));
+	sc_start(&sd->bl, &sd->bl, SC_HOMUN_TIME, 100, 1, skill_get_time(AM_CALLHOMUN, 1));
 #endif
 
 	return status_revive(&hd->bl, per, 0);

+ 1 - 0
src/map/map-server.vcxproj

@@ -345,6 +345,7 @@
     <Copy SourceFiles="$(SolutionDir)db\import-tmpl\spellbook_db.yml" DestinationFolder="$(SolutionDir)db\import\" ContinueOnError="true" Condition="!Exists('$(SolutionDir)db\import\spellbook_db.yml')" />
     <Copy SourceFiles="$(SolutionDir)db\import-tmpl\statpoint.yml" DestinationFolder="$(SolutionDir)db\import\" ContinueOnError="true" Condition="!Exists('$(SolutionDir)db\import\statpoint.yml')" />
     <Copy SourceFiles="$(SolutionDir)db\import-tmpl\status_disabled.txt" DestinationFolder="$(SolutionDir)db\import\" ContinueOnError="true" Condition="!Exists('$(SolutionDir)db\import\status_disabled.txt')" />
+    <Copy SourceFiles="$(SolutionDir)db\import-tmpl\status.yml" DestinationFolder="$(SolutionDir)db\import\" ContinueOnError="true" Condition="!Exists('$(SolutionDir)db\import\status.yml')" />
     <Copy SourceFiles="$(SolutionDir)db\import-tmpl\stylist.yml" DestinationFolder="$(SolutionDir)db\import\" ContinueOnError="true" Condition="!Exists('$(SolutionDir)db\import\stylist.yml')" />
   </Target>
 </Project>

+ 21 - 79
src/map/map.cpp

@@ -2084,85 +2084,27 @@ int map_quit(struct map_session_data *sd) {
 	//map_quit handles extra specific data which is related to quitting normally
 	//(changing map-servers invokes unit_free but bypasses map_quit)
 	if( sd->sc.count ) {
-		//Status that are not saved...
-		status_change_end(&sd->bl, SC_BOSSMAPINFO, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_AUTOTRADE, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_SPURT, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_BERSERK, INVALID_TIMER);
-		status_change_end(&sd->bl, SC__BLOODYLUST, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_TRICKDEAD, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_LEADERSHIP, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_GLORYWOUNDS, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_SOULCOLD, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_HAWKEYES, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_EMERGENCY_MOVE, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_CHASEWALK2, INVALID_TIMER);
-		if(sd->sc.data[SC_PROVOKE] && sd->sc.data[SC_PROVOKE]->timer == INVALID_TIMER)
-			status_change_end(&sd->bl, SC_PROVOKE, INVALID_TIMER); //Infinite provoke ends on logout
-		status_change_end(&sd->bl, SC_WEIGHT50, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_WEIGHT90, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_SATURDAYNIGHTFEVER, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_KYOUGAKU, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_C_MARKER, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_READYSTORM, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_READYDOWN, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_READYTURN, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_READYCOUNTER, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_DODGE, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_CBC, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_EQC, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_SPRITEMABLE, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_SV_ROOTTWIST, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_GUARD_STANCE, INVALID_TIMER);
-		status_change_end(&sd->bl, SC_ATTACK_STANCE, INVALID_TIMER);
-		// Remove visuals effect from headgear
-		status_change_end(&sd->bl, SC_MOONSTAR, INVALID_TIMER); 
-		status_change_end(&sd->bl, SC_SUPER_STAR, INVALID_TIMER); 
-		status_change_end(&sd->bl, SC_STRANGELIGHTS, INVALID_TIMER); 
-		status_change_end(&sd->bl, SC_DECORATION_OF_MUSIC, INVALID_TIMER); 
-		if (battle_config.debuff_on_logout&1) { //Remove negative buffs
-			status_change_end(&sd->bl, SC_ORCISH, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_STRIPWEAPON, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_STRIPARMOR, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_STRIPSHIELD, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_STRIPHELM, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_EXTREMITYFIST, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_EXPLOSIONSPIRITS, INVALID_TIMER);
-			if(sd->sc.data[SC_REGENERATION] && sd->sc.data[SC_REGENERATION]->val4)
-				status_change_end(&sd->bl, SC_REGENERATION, INVALID_TIMER);
-			//TO-DO Probably there are way more NPC_type negative status that are removed
-			status_change_end(&sd->bl, SC_CHANGEUNDEAD, INVALID_TIMER);
-			// Both these statuses are removed on logout. [L0ne_W0lf]
-			status_change_end(&sd->bl, SC_SLOWCAST, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_CRITICALWOUND, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_H_MINE, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_ANTI_M_BLAST, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_B_TRAP, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_SHADOW_STRIP, INVALID_TIMER);
-		}
-		if (battle_config.debuff_on_logout&2) { //Remove positive buffs
-			status_change_end(&sd->bl, SC_MAXIMIZEPOWER, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_MAXOVERTHRUST, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_STEELBODY, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_PRESERVE, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_KAAHI, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_SPIRIT, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_HEAT_BARREL, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_P_ALTER, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_E_CHAIN, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_SIGHTBLASTER, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_BENEDICTIO, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_GLASTHEIM_ATK, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_GLASTHEIM_DEF, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_GLASTHEIM_HEAL, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_GLASTHEIM_HIDDEN, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_GLASTHEIM_STATE, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_GLASTHEIM_ITEMDEF, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_GLASTHEIM_HPSP, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_SOULGOLEM, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_SOULSHADOW, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_SOULFALCON, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_SOULFAIRY, INVALID_TIMER);
+		for (const auto &it : status_db) {
+			std::bitset<SCF_MAX> &flag = it.second->flag;
+
+			//No need to save infinite status
+			if (flag[SCF_NOSAVEINFINITE] && sd->sc.data[it.first] && sd->sc.data[it.first]->val4 > 0) {
+				status_change_end(&sd->bl, static_cast<sc_type>(it.first), INVALID_TIMER);
+				continue;
+			}
+
+			//Status that are not saved
+			if (flag[SCF_NOSAVE]) {
+				status_change_end(&sd->bl, static_cast<sc_type>(it.first), INVALID_TIMER);
+				continue;
+			}
+			//Removes status by config
+			if (battle_config.debuff_on_logout&1 && flag[SCF_DEBUFF] || //Removes debuffs
+				(battle_config.debuff_on_logout&2 && !(flag[SCF_DEBUFF]))) //Removes buffs
+			{
+				status_change_end(&sd->bl, static_cast<sc_type>(it.first), INVALID_TIMER);
+				continue;
+			}
 		}
 	}
 

+ 1 - 2
src/map/mob.cpp

@@ -1698,8 +1698,7 @@ static bool mob_ai_sub_hard(struct mob_data *md, t_tick tick)
 		return false;
 
 	// Abnormalities
-	if(( md->sc.opt1 > 0 && md->sc.opt1 != OPT1_STONEWAIT && md->sc.opt1 != OPT1_BURNING )
-	   || md->sc.data[SC_BLADESTOP] || md->sc.data[SC__MANHOLE] || md->sc.data[SC_CURSEDCIRCLE_TARGET]) {//Should reset targets.
+	if(( md->sc.opt1 && md->sc.opt1 != OPT1_STONEWAIT && md->sc.opt1 != OPT1_BURNING ) || status_db.hasSCF(&md->sc, SCF_MOBLOSETARGET)) {//Should reset targets.
 		md->target_id = md->attacked_id = md->norm_attacked_id = 0;
 		return false;
 	}

+ 50 - 142
src/map/pc.cpp

@@ -2690,7 +2690,7 @@ static void pc_bonus_addeff(std::vector<s_addeffect> &effect, enum sc_type sc, s
 		flag |= ATF_WEAPON; //Default type: weapon.
 
 	if (!duration)
-		duration = (unsigned int)skill_get_time2(status_sc2skill(sc), 7);
+		duration = (unsigned int)skill_get_time2(status_db.getSkill(sc), 7);
 
 	for (auto &it : effect) {
 		if (it.sc == sc && it.flag == flag) {
@@ -2732,7 +2732,7 @@ static void pc_bonus_addeff_onskill(std::vector<s_addeffectonskill> &effect, enu
 	}
 
 	if (!duration)
-		duration = (unsigned int)skill_get_time2(status_sc2skill(sc), 7);
+		duration = (unsigned int)skill_get_time2(status_db.getSkill(sc), 7);
 
 	for (auto &it : effect) {
 		if (it.sc == sc && it.skill_id == skill_id && it.target == target) {
@@ -5697,7 +5697,7 @@ bool pc_isUseitem(struct map_session_data *sd,int n)
 		case ITEMID_M_BERSERK_POTION:
 			if( sd->md == NULL || sd->md->db == NULL )
 				return false;
-			if( sd->md->sc.data[SC_BERSERK] )
+			if( sd->md->sc.cant.consume )
 				return false;
 			if( nameid == ITEMID_M_AWAKENING_POTION && sd->md->db->lv < 40 )
 				return false;
@@ -5738,24 +5738,7 @@ bool pc_isUseitem(struct map_session_data *sd,int n)
 	if (!pc_job_can_use_item(sd,item))
 		return false;
 	
-	if (sd->sc.count && (
-		sd->sc.data[SC_BERSERK] || sd->sc.data[SC_SATURDAYNIGHTFEVER] ||
-		(sd->sc.data[SC_GRAVITATION] && sd->sc.data[SC_GRAVITATION]->val3 == BCT_SELF) ||
-		sd->sc.data[SC_TRICKDEAD] ||
-		sd->sc.data[SC_HIDING] ||
-		sd->sc.data[SC__SHADOWFORM] ||
-		sd->sc.data[SC__INVISIBILITY] ||
-		sd->sc.data[SC__MANHOLE] ||
-		sd->sc.data[SC_DEEPSLEEP] ||
-		sd->sc.data[SC_CRYSTALIZE] ||
-		sd->sc.data[SC_KAGEHUMI] ||
-		(sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOITEM) ||
-		sd->sc.data[SC_KINGS_GRACE] ||
-		sd->sc.data[SC_SUHIDE] ||
-		sd->sc.data[SC_HANDICAPSTATE_FROSTBITE] ||
-		sd->sc.data[SC_HANDICAPSTATE_SWOONING] ||
-		sd->sc.data[SC_HANDICAPSTATE_LIGHTNINGSTRIKE] ||
-		sd->sc.data[SC_HANDICAPSTATE_CRYSTALLIZATION]))
+	if (sd->sc.cant.consume)
 		return false;
 	
 	if (!pc_isItemClass(sd,item))
@@ -6292,24 +6275,23 @@ enum e_setpos pc_setpos(struct map_session_data* sd, unsigned short mapindex, in
 
 		sd->state.pmap = sd->bl.m;
 		if (sc && sc->count) { // Cancel some map related stuff.
-			if (sc->data[SC_JAILED])
-				return SETPOS_MAPINDEX; //You may not get out!
-			status_change_end(&sd->bl, SC_BOSSMAPINFO, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_WARM, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_SUN_COMFORT, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_MOON_COMFORT, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_STAR_COMFORT, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_MIRACLE, INVALID_TIMER);
-			if (sc->data[SC_KNOWLEDGE]) {
-				struct status_change_entry *sce = sc->data[SC_KNOWLEDGE];
-				if (sce->timer != INVALID_TIMER)
-					delete_timer(sce->timer, status_change_timer);
-				sce->timer = add_timer(gettick() + skill_get_time(SG_KNOWLEDGE, sce->val1), status_change_timer, sd->bl.id, SC_KNOWLEDGE);
-			}
-			status_change_end(&sd->bl, SC_PROPERTYWALK, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_CLOAKING, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_CLOAKINGEXCEED, INVALID_TIMER);
-			status_change_end(&sd->bl, SC_SUHIDE, INVALID_TIMER);
+			if (sc->cant.warp)
+				return SETPOS_MAPINDEX; // You may not get out!
+
+			for (const auto &it : status_db) {
+				if (sc->data[it.first]) {
+					if (it.second->flag[SCF_REMOVEONMAPWARP])
+						status_change_end(&sd->bl, static_cast<sc_type>(it.first), INVALID_TIMER);
+
+					if (it.second->flag[SCF_RESTARTONMAPWARP] && it.second->skill_id > 0) {
+						status_change_entry *sce = sd->sc.data[it.first];
+
+						if (sce->timer != INVALID_TIMER)
+							delete_timer(sce->timer, status_change_timer);
+						sce->timer = add_timer(gettick() + skill_get_time(it.second->skill_id, sce->val1), status_change_timer, sd->bl.id, it.first);
+					}
+				}
+			}
 		}
 		for(int i = 0; i < EQI_MAX; i++ ) {
 			if( sd->equip_index[i] >= 0 )
@@ -6685,47 +6667,26 @@ uint8 pc_checkskill_imperial_guard(struct map_session_data *sd, short flag)
  */
 static void pc_checkallowskill(struct map_session_data *sd)
 {
-	const enum sc_type scw_list[] = {
-		SC_TWOHANDQUICKEN,
-		SC_ONEHAND,
-		SC_AURABLADE,
-		SC_PARRYING,
-		SC_SPEARQUICKEN,
-		SC_ADRENALINE,
-		SC_ADRENALINE2,
-		SC_DANCING,
-		SC_GATLINGFEVER,
-		SC_DANCING_KNIFE,
-	};
-	uint8 i;
 	nullpo_retv(sd);
 
 	if(!sd->sc.count)
 		return;
 
-	for (i = 0; i < ARRAYLENGTH(scw_list); i++)
-	{	// Skills requiring specific weapon types
-		if( scw_list[i] == SC_DANCING && !battle_config.dancing_weaponswitch_fix )
-			continue;
-		if(sd->sc.data[scw_list[i]] &&
-			!pc_check_weapontype(sd,skill_get_weapontype(status_sc2skill(scw_list[i]))))
-			status_change_end(&sd->bl, scw_list[i], INVALID_TIMER);
-	}
+	for (const auto &it : status_db) {
+		sc_type status = it.second->type;
+		std::bitset<SCF_MAX> flag = it.second->flag;
 
-	if(sd->sc.data[SC_SPURT] && sd->status.weapon)
-		// Spurt requires bare hands (feet, in fact xD)
-		status_change_end(&sd->bl, SC_SPURT, INVALID_TIMER);
+		if (flag[SCF_REQUIREWEAPON]) { // Skills requiring specific weapon types
+			if (status == SC_DANCING && !battle_config.dancing_weaponswitch_fix)
+				continue;
+			if (sd->sc.data[status] && !pc_check_weapontype(sd, skill_get_weapontype(it.second->skill_id)))
+				status_change_end(&sd->bl, status, INVALID_TIMER);
+		}
 
-	if(sd->status.shield <= 0) { // Skills requiring a shield
-		const enum sc_type scs_list[] = {
-			SC_AUTOGUARD,
-			SC_DEFENDER,
-			SC_REFLECTSHIELD,
-			SC_REFLECTDAMAGE
-		};
-		for (i = 0; i < ARRAYLENGTH(scs_list); i++)
-			if(sd->sc.data[scs_list[i]])
-				status_change_end(&sd->bl, scs_list[i], INVALID_TIMER);
+		if (flag[SCF_REQUIRESHIELD]) { // Skills requiring a shield
+			if (sd->sc.data[status] && sd->status.shield <= 0)
+				status_change_end(&sd->bl, status, INVALID_TIMER);
+		}
 	}
 }
 
@@ -7539,16 +7500,17 @@ int pc_checkbaselevelup(struct map_session_data *sd) {
 	status_percent_heal(&sd->bl,100,100);
 
 	if ((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE) {
-		sc_start(&sd->bl,&sd->bl,status_skill2sc(PR_KYRIE),100,1,skill_get_time(PR_KYRIE,1));
-		sc_start(&sd->bl,&sd->bl,status_skill2sc(PR_IMPOSITIO),100,1,skill_get_time(PR_IMPOSITIO,1));
-		sc_start(&sd->bl,&sd->bl,status_skill2sc(PR_MAGNIFICAT),100,1,skill_get_time(PR_MAGNIFICAT,1));
-		sc_start(&sd->bl,&sd->bl,status_skill2sc(PR_GLORIA),100,1,skill_get_time(PR_GLORIA,1));
-		sc_start(&sd->bl,&sd->bl,status_skill2sc(PR_SUFFRAGIUM),100,1,skill_get_time(PR_SUFFRAGIUM,1));
+		for (const auto &status : status_db) {
+			if (status.second->flag[SCF_SUPERNOVICEANGEL])
+				sc_start(&sd->bl, &sd->bl, status.second->type, 100, 1, skill_get_time(status.second->skill_id, 1));
+		}
 		if (sd->state.snovice_dead_flag)
 			sd->state.snovice_dead_flag = 0; //Reenable steelbody resurrection on dead.
 	} else if( (sd->class_&MAPID_BASEMASK) == MAPID_TAEKWON ) {
-		sc_start(&sd->bl,&sd->bl,status_skill2sc(AL_INCAGI),100,10,600000);
-		sc_start(&sd->bl,&sd->bl,status_skill2sc(AL_BLESSING),100,10,600000);
+		for (const auto &status : status_db) {
+			if (status.second->flag[SCF_TAEKWONANGEL])
+				sc_start(&sd->bl, &sd->bl, status.second->type, 100, 10, 600000);
+		}
 	}
 	clif_misceffect(&sd->bl,0);
 	npc_script_event(sd, NPCE_BASELVUP); //LORDALFA - LVLUPEVENT
@@ -9035,7 +8997,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src)
 			clif_resurrection(&sd->bl, 1);
 			if(battle_config.pc_invincible_time)
 				pc_setinvincibletimer(sd, battle_config.pc_invincible_time);
-			sc_start(&sd->bl,&sd->bl,status_skill2sc(MO_STEELBODY),100,5,skill_get_time(MO_STEELBODY,5));
+			sc_start(&sd->bl,&sd->bl,SC_STEELBODY,100,5,skill_get_time(MO_STEELBODY,5));
 			if(mapdata_flag_gvg2(mapdata))
 				pc_respawn_timer(INVALID_TIMER, gettick(), sd->bl.id, 0);
 			return 0;
@@ -9243,7 +9205,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src)
 	// changed penalty options, added death by player if pk_mode [Valaris]
 	if(battle_config.death_penalty_type
 		&& (sd->class_&MAPID_UPPERMASK) != MAPID_NOVICE	// only novices will receive no penalty
-		&& !sd->sc.data[SC_BABY] && !sd->sc.data[SC_LIFEINSURANCE]
+	    && !sd->sc.cant.deathpenalty
 		&& !mapdata->flag[MF_NOEXPPENALTY] && !mapdata_flag_gvg2(mapdata))
 	{
 		t_exp base_penalty = 0;
@@ -10154,16 +10116,7 @@ bool pc_jobchange(struct map_session_data *sd,int job, char upper)
 	}
 
 	if ( (b_class&MAPID_UPPERMASK) != (sd->class_&MAPID_UPPERMASK) ) { //Things to remove when changing class tree.
-		std::shared_ptr<s_skill_tree> tree = skill_tree_db.find(sd->status.class_);
-
-		if (tree != nullptr && !tree->skills.empty()) {
-			for (const auto &skillsit : tree->skills) {
-				//Remove status specific to your current tree skills.
-				enum sc_type sc = status_skill2sc(skillsit.first);
-				if (sc > SC_COMMON_MAX && sd->sc.data[sc])
-					status_change_end(&sd->bl, sc, INVALID_TIMER);
-			}
-		}
+		status_db.changeSkillTree(sd);
 	}
 
 	if( (sd->class_&MAPID_UPPERMASK) == MAPID_STAR_GLADIATOR && (b_class&MAPID_UPPERMASK) != MAPID_STAR_GLADIATOR) {
@@ -10613,45 +10566,6 @@ bool pc_candrop(struct map_session_data *sd, struct item *item)
 	return (itemdb_isdropable(item, pc_get_group_level(sd)));
 }
 
-/**
- * Determines whether a player can attack based on status changes
- *  Why not use status_check_skilluse?
- *  "src MAY be null to indicate we shouldn't check it, this is a ground-based skill attack."
- *  Even ground-based attacks should be blocked by these statuses
- * Called from unit_attack and unit_attack_timer_sub
- * @retval true Can attack
- **/
-bool pc_can_attack( struct map_session_data *sd, int target_id ) {
-	nullpo_retr(false, sd);
-
-	if( pc_is90overweight(sd) || pc_isridingwug(sd) )
-		return false;
-
-	if (sd->state.block_action & PCBLOCK_ATTACK)
-		return false;
-
-	if(
-#ifdef RENEWAL
-		sd->sc.data[SC_BASILICA_CELL] ||
-#else
-		sd->sc.data[SC_BASILICA] ||
-#endif
-		sd->sc.data[SC__SHADOWFORM] ||
-		sd->sc.data[SC_CURSEDCIRCLE_ATKER] ||
-		sd->sc.data[SC_CURSEDCIRCLE_TARGET] ||
-		sd->sc.data[SC_CRYSTALIZE] ||
-		sd->sc.data[SC_ALL_RIDING] || // The client doesn't let you, this is to make cheat-safe
-		sd->sc.data[SC_TRICKDEAD] ||
-		(sd->sc.data[SC_VOICEOFSIREN] && sd->sc.data[SC_VOICEOFSIREN]->val2 == target_id) ||
-		sd->sc.data[SC_BLADESTOP] ||
-		sd->sc.data[SC_DEEPSLEEP] ||
-		(sd->sc.data[SC_GRAVITATION] && sd->sc.data[SC_GRAVITATION]->val3 == BCT_SELF) ||
-		sd->sc.data[SC_KINGS_GRACE] )
-			return false;
-
-	return true;
-}
-
 /*==========================================
  * Read '@type' variables (temporary numeric char reg)
  *------------------------------------------*/
@@ -11355,8 +11269,7 @@ bool pc_equipitem(struct map_session_data *sd,short n,int req_pos,bool equipswit
 		}
 		return false;
 	}
-	if( sd->sc.count && (sd->sc.data[SC_BERSERK] || sd->sc.data[SC_SATURDAYNIGHTFEVER] ||
-		sd->sc.data[SC_KYOUGAKU] || (sd->sc.data[SC_PYROCLASTIC] && sd->inventory_data[n]->type == IT_WEAPON)) ) {
+	if( sd->sc.count && (sd->sc.cant.equip || (sd->sc.data[SC_PYROCLASTIC] && sd->inventory_data[n]->type == IT_WEAPON)) ) {
 		if( equipswitch ){
 			clif_equipswitch_add( sd, n, req_pos, ITEM_EQUIP_ACK_FAIL );
 		}else{
@@ -11678,13 +11591,8 @@ bool pc_unequipitem(struct map_session_data *sd, int n, int flag) {
 		return false; //Nothing to unequip
 	}
 	// status change that makes player cannot unequip equipment
-	if (!(flag&2) && sd->sc.count &&
-		(sd->sc.data[SC_BERSERK] ||
-		sd->sc.data[SC_SATURDAYNIGHTFEVER] ||
-		sd->sc.data[SC__BLOODYLUST] ||
-		sd->sc.data[SC_KYOUGAKU] ||
-		(sd->sc.data[SC_PYROCLASTIC] &&
-		sd->inventory_data[n]->type == IT_WEAPON)))	// can't switch weapon
+	if (!(flag&2) && sd->sc.count &&( sd->sc.cant.unequip ||
+		(sd->sc.data[SC_PYROCLASTIC] &&	sd->inventory_data[n]->type == IT_WEAPON)))	// can't switch weapon
 	{
 		clif_unequipitemack(sd,n,0,0);
 		return false;
@@ -14236,7 +14144,7 @@ void pc_bonus_script(struct map_session_data *sd) {
  * @return New created entry pointer or NULL if failed or NULL if duplicate fail
  * @author [Cydh]
  **/
-struct s_bonus_script_entry *pc_bonus_script_add(struct map_session_data *sd, const char *script_str, t_tick dur, enum efst_types icon, uint16 flag, uint8 type) {
+struct s_bonus_script_entry *pc_bonus_script_add(struct map_session_data *sd, const char *script_str, t_tick dur, enum efst_type icon, uint16 flag, uint8 type) {
 	struct script_code *script = NULL;
 	struct linkdb_node *node = NULL;
 	struct s_bonus_script_entry *entry = NULL;
@@ -14361,7 +14269,7 @@ TIMER_FUNC(pc_bonus_script_timer){
 * @param flag: Reason to remove the bonus_script. e_bonus_script_flags or e_bonus_script_types
 * @author [Cydh]
 **/
-void pc_bonus_script_clear(struct map_session_data *sd, uint16 flag) {
+void pc_bonus_script_clear(struct map_session_data *sd, uint32 flag) {
 	struct linkdb_node *node = NULL;
 	uint16 count = 0;
 

+ 3 - 4
src/map/pc.hpp

@@ -291,7 +291,7 @@ struct s_bonus_script_entry {
 	StringBuf *script_buf; //Used for comparing and storing on table
 	t_tick tick;
 	uint16 flag;
-	enum efst_types icon;
+	enum efst_type icon;
 	uint8 type; //0 - Ignore; 1 - Buff; 2 - Debuff
 	int tid;
 };
@@ -1459,7 +1459,6 @@ void pc_regen (struct map_session_data *sd, t_tick diff_tick);
 
 bool pc_setstand(struct map_session_data *sd, bool force);
 bool pc_candrop(struct map_session_data *sd,struct item *item);
-bool pc_can_attack(struct map_session_data *sd, int target_id);
 
 uint64 pc_jobid2mapid(unsigned short b_class);	// Skotlex
 int pc_mapid2jobid(uint64 class_, int sex);	// Skotlex
@@ -1573,8 +1572,8 @@ void pc_show_version(struct map_session_data *sd);
 
 TIMER_FUNC(pc_bonus_script_timer);
 void pc_bonus_script(struct map_session_data *sd);
-struct s_bonus_script_entry *pc_bonus_script_add(struct map_session_data *sd, const char *script_str, t_tick dur, enum efst_types icon, uint16 flag, uint8 type);
-void pc_bonus_script_clear(struct map_session_data *sd, uint16 flag);
+struct s_bonus_script_entry *pc_bonus_script_add(struct map_session_data *sd, const char *script_str, t_tick dur, enum efst_type icon, uint16 flag, uint8 type);
+void pc_bonus_script_clear(struct map_session_data *sd, uint32 flag);
 
 void pc_cell_basilica(struct map_session_data *sd);
 

+ 12 - 50
src/map/script.cpp

@@ -11944,9 +11944,11 @@ BUILDIN_FUNC(sc_start)
 	else
 		bl = map_id2bl(st->rid);
 
-	if(tick == 0 && val1 > 0 && type > SC_NONE && type < SC_MAX && status_sc2skill(type) != 0)
+	uint16 skill_id;
+
+	if(tick == 0 && val1 > 0 && type > SC_NONE && type < SC_MAX && (skill_id = status_db.getSkill(type)) > 0)
 	{// When there isn't a duration specified, try to get it from the skill_db
-		tick = skill_get_time(status_sc2skill(type), val1);
+		tick = skill_get_time(skill_id, val1);
 	}
 
 	if(potion_flag == 1 && potion_target) { //skill.cpp set the flags before running the script, this is a potion-pitched effect.
@@ -11996,45 +11998,16 @@ BUILDIN_FUNC(sc_end)
 	if (!bl)
 		return SCRIPT_CMD_SUCCESS;
 
-	if (type >= 0 && type < SC_MAX) {
+	if (type >= SC_NONE && type < SC_MAX) {
 		struct status_change *sc = status_get_sc(bl);
-		struct status_change_entry *sce = sc ? sc->data[type] : NULL;
 
-		if (!sce)
+		if (!sc)
 			return SCRIPT_CMD_SUCCESS;
 
-		switch (type) {
-			case SC_WEIGHT50:
-			case SC_WEIGHT90:
-			case SC_NOCHAT:
-			case SC_PUSH_CART:
-			case SC_ALL_RIDING:
-			case SC_STYLE_CHANGE:
-			case SC_MONSTER_TRANSFORM:
-			case SC_ACTIVE_MONSTER_TRANSFORM:
-			case SC_MTF_ASPD:
-			case SC_MTF_RANGEATK:
-			case SC_MTF_MATK:
-			case SC_MTF_MLEATKED:
-			case SC_MTF_CRIDAMAGE:
-			case SC_MTF_ASPD2:
-			case SC_MTF_RANGEATK2:
-			case SC_MTF_MATK2:
-			case SC_MTF_MHP:
-			case SC_MTF_MSP:
-			case SC_MTF_PUMPKIN:
-			case SC_MTF_HITFLEE:
-			case SC_ATTHASTE_CASH:
-			case SC_REUSE_LIMIT_A:				case SC_REUSE_LIMIT_B:			case SC_REUSE_LIMIT_C:
-			case SC_REUSE_LIMIT_D:				case SC_REUSE_LIMIT_E:			case SC_REUSE_LIMIT_F:
-			case SC_REUSE_LIMIT_G:				case SC_REUSE_LIMIT_H:			case SC_REUSE_LIMIT_MTF:
-			case SC_REUSE_LIMIT_ASPD_POTION:	case SC_REUSE_MILLENNIUMSHIELD:	case SC_REUSE_CRUSHSTRIKE:
-			case SC_REUSE_STORMBLAST:			case SC_ALL_RIDING_REUSE_LIMIT:	case SC_REUSE_REFRESH:
-			case SC_REUSE_LIMIT_ECL:			case SC_REUSE_LIMIT_RECALL:
-				return SCRIPT_CMD_SUCCESS;
-			default:
-				break;
-		}
+		if (status_db.hasSCF(sc, SCF_NOCLEARBUFF))
+			return SCRIPT_CMD_SUCCESS;
+
+		struct status_change_entry *sce = sc ? sc->data[type] : NULL;
 
 		//This should help status_change_end force disabling the SC in case it has no limit.
 		sce->val1 = sce->val2 = sce->val3 = sce->val4 = 0;
@@ -12053,7 +12026,6 @@ BUILDIN_FUNC(sc_end)
 BUILDIN_FUNC(sc_end_class)
 {
 	struct map_session_data *sd;
-	uint16 skill_id;
 	int class_;
 
 	if (!script_charid2sd(2, sd))
@@ -12069,17 +12041,7 @@ BUILDIN_FUNC(sc_end_class)
 		return SCRIPT_CMD_FAILURE;
 	}
 
-	std::shared_ptr<s_skill_tree> tree = skill_tree_db.find(class_);
-
-	if( tree != nullptr ){
-		for (const auto &it : tree->skills) {
-			skill_id = it.first;
-			enum sc_type sc = status_skill2sc(skill_id);
-
-			if (sc > SC_COMMON_MAX && sd->sc.data[sc])
-				status_change_end(&sd->bl, sc, INVALID_TIMER);
-		}
-	}
+	status_db.changeSkillTree(sd, class_);
 
 	return SCRIPT_CMD_SUCCESS;
 }
@@ -23021,7 +22983,7 @@ BUILDIN_FUNC(bonus_script) {
 	if (icon <= EFST_BLANK || icon >= EFST_MAX)
 		icon = EFST_BLANK;
 
-	if ((entry = pc_bonus_script_add(sd, script_str, dur, (enum efst_types)icon, flag, type))) {
+	if ((entry = pc_bonus_script_add(sd, script_str, dur, (enum efst_type)icon, flag, type))) {
 		linkdb_insert(&sd->bonus_script.head, (void *)((intptr_t)entry), entry);
 		status_calc_pc(sd,SCO_NONE);
 	}

+ 169 - 1
src/map/script_constants.hpp

@@ -1054,7 +1054,8 @@
 	export_constant(SC_ARMOR);
 	export_constant(SC_ARMOR_ELEMENT_WATER);
 	export_constant(SC_NOCHAT);
-	export_constant(SC_BABY);
+	export_constant(SC_PROTECTEXP);
+	export_deprecated_constant3("SC_BABY", SC_PROTECTEXP, "SC_PROTECTEXP");
 	export_constant(SC_AURABLADE);
 	export_constant(SC_PARRYING);
 	export_constant(SC_CONCENTRATION);
@@ -1611,6 +1612,7 @@
 	export_constant(SC_GOLDENMACECLAN);
 	export_constant(SC_CROSSBOWCLAN);
 	export_constant(SC_JUMPINGCLAN);
+	export_constant(SC_TAROTCARD);
 	export_constant(SC_GEFFEN_MAGIC1);
 	export_constant(SC_GEFFEN_MAGIC2);
 	export_constant(SC_GEFFEN_MAGIC3);
@@ -1647,6 +1649,7 @@
 	export_constant(SC_ANCILLA);
 	export_constant(SC_EARTHSHAKER);
 	export_constant(SC_WEAPONBLOCK_ON);
+	export_constant(SC_SPORE_EXPLOSION);
 	export_constant(SC_ENTRY_QUEUE_APPLY_DELAY);
 	export_constant(SC_ENTRY_QUEUE_NOTIFY_ADMISSION_TIME_OUT);
 	export_constant(SC_ADAPTATION);
@@ -1691,6 +1694,8 @@
 	export_constant(SC_LUXANIMA);
 	export_constant(SC_REUSE_LIMIT_LUXANIMA);
 	export_constant(SC_ENSEMBLEFATIGUE);
+	export_constant(SC_MISTY_FROST);
+	export_constant(SC_MAGIC_POISON);
 	export_constant(SC_EP16_2_BUFF_SS);
 	export_constant(SC_EP16_2_BUFF_SC);
 	export_constant(SC_EP16_2_BUFF_AC);
@@ -8724,6 +8729,169 @@
 	export_constant(EL_SKILLMODE_ASSIST);
 	export_constant(EL_SKILLMODE_AGGRESSIVE);
 
+	/* status calc bl */
+	export_constant(SCB_NONE);
+	export_constant(SCB_BASE);
+	export_constant(SCB_MAXHP);
+	export_constant(SCB_MAXSP);
+	export_constant(SCB_STR);
+	export_constant(SCB_AGI);
+	export_constant(SCB_VIT);
+	export_constant(SCB_INT);
+	export_constant(SCB_DEX);
+	export_constant(SCB_LUK);
+	export_constant(SCB_BATK);
+	export_constant(SCB_WATK);
+	export_constant(SCB_MATK);
+	export_constant(SCB_HIT);
+	export_constant(SCB_FLEE);
+	export_constant(SCB_DEF);
+	export_constant(SCB_DEF2);
+	export_constant(SCB_MDEF);
+	export_constant(SCB_MDEF2);
+	export_constant(SCB_SPEED);
+	export_constant(SCB_ASPD);
+	export_constant(SCB_DSPD);
+	export_constant(SCB_CRI);
+	export_constant(SCB_FLEE2);
+	export_constant(SCB_ATK_ELE);
+	export_constant(SCB_DEF_ELE);
+	export_constant(SCB_MODE);
+	export_constant(SCB_SIZE);
+	export_constant(SCB_RACE);
+	export_constant(SCB_RANGE);
+	export_constant(SCB_REGEN);
+	export_constant(SCB_DYE);
+	export_constant(SCB_BATTLE);
+	export_constant(SCB_MAXAP);
+	export_constant(SCB_POW);
+	export_constant(SCB_STA);
+	export_constant(SCB_WIS);
+	export_constant(SCB_SPL);
+	export_constant(SCB_CON);
+	export_constant(SCB_CRT);
+	export_constant(SCB_PATK);
+	export_constant(SCB_SMATK);
+	export_constant(SCB_RES);
+	export_constant(SCB_MRES);
+	export_constant(SCB_HPLUS);
+	export_constant(SCB_CRATE);
+	export_constant(SCB_ALL);
+
+	/* status change states */
+	export_constant(SCS_NONE);
+	export_constant(SCS_NOMOVECOND);
+	export_constant(SCS_NOMOVE);
+	export_constant(SCS_NOPICKITEMCOND);
+	export_constant(SCS_NOPICKITEM);
+	export_constant(SCS_NODROPITEMCOND);
+	export_constant(SCS_NODROPITEM);
+	export_constant(SCS_NOCASTCOND);
+	export_constant(SCS_NOCAST);
+	export_constant(SCS_NOCHAT);
+	export_constant(SCS_NOCHATCOND);
+	export_constant(SCS_NOEQUIPITEM);
+	export_constant(SCS_NOEQUIPITEMCOND);
+	export_constant(SCS_NOUNEQUIPITEM);
+	export_constant(SCS_NOUNEQUIPITEMCOND);
+	export_constant(SCS_NOCONSUMEITEM);
+	export_constant(SCS_NOCONSUMEITEMCOND);
+	export_constant(SCS_NOATTACK);
+	export_constant(SCS_NOATTACKCOND);
+	export_constant(SCS_NOWARP);
+	export_constant(SCS_NOWARPCOND);
+	export_constant(SCS_NODEATHPENALTY);
+	export_constant(SCS_NODEATHPENALTYCOND);
+	export_constant(SCS_NOINTERACT);
+	export_constant(SCS_NOINTERACTCOND);
+
+	/* body states */
+	export_constant(OPT1_STONE);
+	export_constant(OPT1_FREEZE);
+	export_constant(OPT1_STUN);
+	export_constant(OPT1_SLEEP);
+	export_constant(OPT1_STONEWAIT);
+	export_constant(OPT1_BURNING);
+	export_constant(OPT1_IMPRISON);
+
+	/* health states */
+	export_constant(OPT2_POISON);
+	export_constant(OPT2_CURSE);
+	export_constant(OPT2_SILENCE);
+	export_constant(OPT2_SIGNUMCRUCIS);
+	export_constant(OPT2_BLIND);
+	export_constant(OPT2_ANGELUS);
+	export_constant(OPT2_BLEEDING);
+	export_constant(OPT2_DPOISON);
+	export_constant(OPT2_FEAR);
+
+	/* show effect states */
+	export_constant(OPT3_NORMAL);
+	export_constant(OPT3_QUICKEN);
+	export_constant(OPT3_OVERTHRUST);
+	export_constant(OPT3_ENERGYCOAT);
+	export_constant(OPT3_EXPLOSIONSPIRITS);
+	export_constant(OPT3_STEELBODY);
+	export_constant(OPT3_BLADESTOP);
+	export_constant(OPT3_AURABLADE);
+	export_constant(OPT3_BERSERK);
+	export_constant(OPT3_LIGHTBLADE);
+	export_constant(OPT3_MOONLIT);
+	export_constant(OPT3_MARIONETTE);
+	export_constant(OPT3_ASSUMPTIO);
+	export_constant(OPT3_WARM);
+	export_constant(OPT3_KAITE);
+	export_constant(OPT3_BUNSIN);
+	export_constant(OPT3_SOULLINK);
+	export_constant(OPT3_UNDEAD);
+	export_constant(OPT3_CONTRACT);
+
+	/* status change flags */
+	export_constant(SCF_BLEFFECT);
+	export_constant(SCF_DISPLAYPC);
+	export_constant(SCF_NOCLEARBUFF);
+	export_constant(SCF_NOREMOVEONDEAD);
+	export_constant(SCF_NODISPELL);
+	export_constant(SCF_NOCLEARANCE);
+	export_constant(SCF_NOBANISHINGBUSTER);
+	export_constant(SCF_NOSAVE);
+	export_constant(SCF_NOSAVEINFINITE);
+	export_constant(SCF_REMOVEONDAMAGED);
+	export_constant(SCF_REMOVEONREFRESH);
+	export_constant(SCF_REMOVEONLUXANIMA);
+	export_constant(SCF_STOPATTACKING);
+	export_constant(SCF_STOPCASTING);
+	export_constant(SCF_STOPWALKING);
+	export_constant(SCF_BOSSRESIST);
+	export_constant(SCF_MVPRESIST);
+	export_constant(SCF_SETSTAND);
+	export_constant(SCF_FAILEDMADO);
+	export_constant(SCF_DEBUFF);
+	export_constant(SCF_REMOVEONCHANGEMAP);
+	export_constant(SCF_REMOVEONMAPWARP);
+	export_constant(SCF_REMOVECHEMICALPROTECT);
+	export_constant(SCF_OVERLAPFAIL);
+	export_constant(SCF_OVERLAPIGNORELEVEL);
+	export_constant(SCF_SENDOPTION);
+	export_constant(SCF_ONTOUCH);
+	export_constant(SCF_UNITMOVE);
+	export_constant(SCF_NONPLAYER);
+	export_constant(SCF_SENDLOOK);
+	export_constant(SCF_DISPLAYNPC);
+	export_constant(SCF_REQUIREWEAPON);
+	export_constant(SCF_REQUIRESHIELD);
+	export_constant(SCF_MOBLOSETARGET);
+	export_constant(SCF_REMOVEELEMENTALOPTION);
+	export_constant(SCF_SUPERNOVICEANGEL);
+	export_constant(SCF_TAEKWONANGEL);
+	export_constant(SCF_MADOCANCEL);
+	export_constant(SCF_MADOENDCANCEL);
+	export_constant(SCF_RESTARTONMAPWARP);
+	export_constant(SCF_SPREADEFFECT);
+	export_constant(SCF_SENDVAL1);
+	export_constant(SCF_SENDVAL2);
+	export_constant(SCF_SENDVAL3);
+
 	#undef export_constant
 	#undef export_constant2
 	#undef export_parameter

Plik diff jest za duży
+ 204 - 401
src/map/skill.cpp


+ 2 - 0
src/map/skill.hpp

@@ -306,6 +306,7 @@ struct s_skill_db {
 	int32 abra_probability[MAX_SKILL_LEVEL];
 	s_skill_spellbook reading_spellbook;
 	uint16 improvisedsong_rate;
+	sc_type sc;									///< Default SC for skill
 };
 
 class SkillDatabase : public TypesafeCachedYamlDatabase <uint16, s_skill_db> {
@@ -2634,6 +2635,7 @@ int skill_is_combo(uint16 skill_id);
 void skill_combo_toggle_inf(struct block_list* bl, uint16 skill_id, int inf);
 void skill_combo(struct block_list* src,struct block_list *dsrc, struct block_list *bl, uint16 skill_id, uint16 skill_lv, t_tick tick);
 
+enum sc_type skill_get_sc(int16 skill_id);
 void skill_reveal_trap_inarea(struct block_list *src, int range, int x, int y);
 int skill_get_time3(struct map_data *mapdata, uint16 skill_id, uint16 skill_lv);
 

Plik diff jest za duży
+ 105 - 1772
src/map/status.cpp


+ 180 - 83
src/map/status.hpp

@@ -4,6 +4,10 @@
 #ifndef STATUS_HPP
 #define STATUS_HPP
 
+#include <algorithm>
+#include <bitset>
+#include <memory>
+#include <unordered_map>
 #include <vector>
 
 #include "../common/database.hpp"
@@ -11,6 +15,7 @@
 #include "../common/timer.hpp"
 
 #include "map.hpp"
+#include "script.hpp"
 
 enum e_race2 : uint8;
 struct block_list;
@@ -246,7 +251,7 @@ enum sc_type : int16 {
 	SC_ARMOR,
 	SC_ARMOR_ELEMENT_WATER,
 	SC_NOCHAT,
-	SC_BABY,
+	SC_PROTECTEXP,
 	SC_AURABLADE,
 	SC_PARRYING,
 	SC_CONCENTRATION, //110
@@ -1175,7 +1180,7 @@ enum sc_type : int16 {
 };
 
 /// Official status change ids, used to display status icons on the client.
-enum efst_types : short{
+enum efst_type : short{
 /// Do not modify code below this, until the end of the API hook, since it will be automatically generated again
 /// @APIHOOK_START(EFST_ENUM)
 	EFST_BLANK = -1,
@@ -2552,7 +2557,8 @@ extern short current_equip_opt_index;
 //who were not on your field of sight when it happened)
 
 ///opt1: (BODYSTATE_*) Non stackable status changes.
-enum sc_opt1 {
+enum e_sc_opt1 : uint16 {
+	OPT1_NONE = 0,
 	OPT1_STONE = 1, //Petrified
 	OPT1_FREEZE,
 	OPT1_STUN,
@@ -2561,10 +2567,12 @@ enum sc_opt1 {
 	OPT1_STONEWAIT = 6, //Petrifying
 	OPT1_BURNING,
 	OPT1_IMPRISON,
+	OPT1_MAX
 };
 
 ///opt2: (HEALTHSTATE_*) Stackable status changes.
-enum sc_opt2 {
+enum e_sc_opt2 : uint16 {
+	OPT2_NONE		= 0x0,
 	OPT2_POISON		= 0x0001,
 	OPT2_CURSE		= 0x0002,
 	OPT2_SILENCE		= 0x0004,
@@ -2574,11 +2582,12 @@ enum sc_opt2 {
 	OPT2_BLEEDING		= 0x0040,
 	OPT2_DPOISON		= 0x0080,
 	OPT2_FEAR		= 0x0100,
+	OPT2_MAX
 };
 
 ///opt3: (SHOW_EFST_*)
-enum sc_opt3 {
-	OPT3_NORMAL		= 0x00000000,
+enum e_sc_opt3 : uint32 {
+	OPT3_NORMAL			= 0x0,
 	OPT3_QUICKEN		= 0x00000001,
 	OPT3_OVERTHRUST		= 0x00000002,
 	OPT3_ENERGYCOAT		= 0x00000004,
@@ -2597,11 +2606,12 @@ enum sc_opt3 {
 	OPT3_SOULLINK		= 0x00008000,
 	OPT3_UNDEAD		= 0x00010000,
 	OPT3_CONTRACT		= 0x00020000,
+	OPT3_MAX
 };
 
 ///Option (EFFECTSTATE_*)
-enum e_option {
-	OPTION_NOTHING		= 0x00000000,
+enum e_option : uint32 {
+	OPTION_NOTHING		= 0x0,
 	OPTION_SIGHT		= 0x00000001,
 	OPTION_HIDE			= 0x00000002,
 	OPTION_CLOAK		= 0x00000004,
@@ -2632,6 +2642,7 @@ enum e_option {
 	OPTION_HANBOK		= 0x08000000,
 	OPTION_OKTOBERFEST	= 0x10000000,
 	OPTION_SUMMER2		= 0x20000000,
+	OPTION_MAX,
 
 	// compound constant for older carts
 	OPTION_CART	= OPTION_CART1|OPTION_CART2|OPTION_CART3|OPTION_CART4|OPTION_CART5,
@@ -2641,15 +2652,6 @@ enum e_option {
 	OPTION_COSTUME	= OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK|OPTION_OKTOBERFEST|OPTION_SUMMER2,
 };
 
-enum e_option_change_flag : uint16 {
-	OCF_NONE					= 0x0,
-	OCF_SEND_OPTION				= 0x1,
-	OCF_ONTOUCH					= 0x2,
-	OCF_UNIT_MOVE				= 0x4,
-	OCF_NON_PLAYER				= 0x8,
-	OCF_SEND_LOOK				= 0x10,
-};
-
 ///Defines for the manner system [Skotlex]
 enum manner_flags
 {
@@ -2661,23 +2663,38 @@ enum manner_flags
 };
 
 /// Status Change State Flags
-enum scs_flag {
-	SCS_NOMOVECOND		= 0x00000001, ///< cond flag for nomove
-	SCS_NOMOVE			= 0x00000002, ///< unit unable to move
-	SCS_NOPICKITEMCOND	= 0x00000004, ///< cond flag for nopickitem
-	SCS_NOPICKITEM		= 0x00000008, ///< player unable to pick up items
-	SCS_NODROPITEMCOND	= 0x00000010, ///< cond flag for nodropitem
-	SCS_NODROPITEM		= 0x00000020, ///< player unable to drop items
-	SCS_NOCASTCOND		= 0x00000040, ///< cond flag for nocast
-	SCS_NOCAST			= 0x00000080, ///< unit unable to cast skills
-	SCS_NOCHAT			= 0x00000100, ///< unit can't talk
-	SCS_NOCHATCOND		= 0x00000200, ///< cond flag for notalk
+enum e_scs_flag : uint8 {
+	SCS_NONE = 0,
+	SCS_NOMOVECOND, ///< cond flag for SCS_NOMOVE
+	SCS_NOMOVE, ///< unit unable to move
+	SCS_NOPICKITEMCOND, ///< cond flag for SCS_NOPICKITEM
+	SCS_NOPICKITEM, ///< player unable to pick up items
+	SCS_NODROPITEMCOND, ///< cond flag for SCS_NODROPITEM
+	SCS_NODROPITEM, ///< player unable to drop items
+	SCS_NOCASTCOND, ///< cond flag for SCS_NOCAST
+	SCS_NOCAST, ///< unit unable to cast skills
+	SCS_NOCHAT, ///< unit can't talk
+	SCS_NOCHATCOND, ///< cond flag for SCS_NOCHAT
+	SCS_NOEQUIPITEM, ///< player can't puts on equip
+	SCS_NOEQUIPITEMCOND, ///< cond flag for SCS_NOEQUIPITEM
+	SCS_NOUNEQUIPITEM, ///< player can't puts off equip
+	SCS_NOUNEQUIPITEMCOND, ///< cond flag for SCS_NOUNEQUIPITEM
+	SCS_NOCONSUMEITEM, ///< player can't consumes equip
+	SCS_NOCONSUMEITEMCOND, ///< cond flag for SCS_NOCONSUMEITEM
+	SCS_NOATTACK, ///< unit can't attack
+	SCS_NOATTACKCOND, ///< cond flag for SCS_NOATTACK
+	SCS_NOWARP, ///< unit can't warp
+	SCS_NOWARPCOND, ///< cond flag for SCS_NOWARP
+	SCS_NODEATHPENALTY, ///< player doesn't experience EXP loss
+	SCS_NODEATHPENALTYCOND, ///< cond flag for SCS_NODEATHPENALTYCOND
+	SCS_NOINTERACT, ///< player can't sit/stand/talk to NPC
+	SCS_NOINTERACTCOND, ///< cond flag for SCS_NOINTERACT
+	SCS_MAX
 };
 
 ///Define flags for the status_calc_bl function. [Skotlex]
-enum scb_flag : uint64
-{	// Main Flags
-	SCB_NONE	= 0x00000000,
+enum e_scb_flag : uint64 {
+	SCB_NONE	= 0x0,
 	SCB_BASE	= 0x00000001,
 	SCB_MAXHP	= 0x00000002,
 	SCB_MAXSP	= 0x00000004,
@@ -2729,19 +2746,20 @@ enum scb_flag : uint64
 	SCB_DYE		= 0x080000000000, // force cloth-dye change to 0 to avoid client crashes.
 
 	// Special flags for updating all stat/sub-stat stuff on request.
-	SCB_BATTLE	= 0x07FFFFFFFFFE,// All except BASE and extra flags.
-	SCB_ALL		= 0x07FFFFFFFFFF// All except extra flags.
+	SCB_BATTLE	= 0x07FFFFFFFFFE, // All except BASE and extra flags.
+	SCB_ALL		= 0x07FFFFFFFFFF, // All except extra flags.
+	SCB_MAX		= 0x0FFFFFFFFFFF,
 };
 
-enum e_status_calc_opt {
+enum e_status_calc_opt : uint8 {
 	SCO_NONE  = 0x0,
 	SCO_FIRST = 0x1, ///< Trigger the calculations that should take place only onspawn/once, process base status initialization code
 	SCO_FORCE = 0x2, ///< Only relevant to BL_PC types, ensures call bypasses the queue caused by delayed damage
 };
 
 /// Flags for status_change_start and status_get_sc_def
-enum e_status_change_start_flags {
-	SCSTART_NONE       = 0x00,
+enum e_status_change_start_flags : int64 {
+	SCSTART_NONE       = 0x0,
 	SCSTART_NOAVOID    = 0x01, /// Cannot be avoided (it has to start)
 	SCSTART_NOTICKDEF  = 0x02, /// Tick should not be reduced (by statuses or bonuses)
 	SCSTART_LOADED     = 0x04, /// When sc_data loaded (fetched from table), no values (val1 ~ val4) have to be altered/recalculate
@@ -2750,7 +2768,7 @@ enum e_status_change_start_flags {
 };
 
 /// Enum for status_change_clear_buffs
-enum e_status_change_clear_buffs_flags {
+enum e_status_change_clear_buffs_flags : int64 {
 	SCCB_BUFFS        = 0x01,
 	SCCB_DEBUFFS      = 0x02,
 	SCCB_REFRESH      = 0x04,
@@ -2759,7 +2777,7 @@ enum e_status_change_clear_buffs_flags {
 };
 
 ///Enum for bonus_script's flag [Cydh]
-enum e_bonus_script_flags {
+enum e_bonus_script_flags : uint32 {
 	BSF_REM_ON_DEAD				= 0x001, ///< Removed when dead
 	BSF_REM_ON_DISPELL			= 0x002, ///< Removed by Dispell
 	BSF_REM_ON_CLEARANCE		= 0x004, ///< Removed by Clearance
@@ -2787,6 +2805,102 @@ enum e_status_bonus {
 	STATUS_BONUS_RATE = 1,
 };
 
+///Enum of Status Change Flags [Cydh]
+enum e_status_change_flag : uint16 {
+	SCF_NONE = 0,
+	SCF_BLEFFECT,
+	SCF_DISPLAYPC,
+	SCF_NOCLEARBUFF,
+	SCF_NOREMOVEONDEAD,
+	SCF_NODISPELL,
+	SCF_NOCLEARANCE,
+	SCF_NOBANISHINGBUSTER,
+	SCF_NOSAVE,
+	SCF_NOSAVEINFINITE,
+	SCF_REMOVEONDAMAGED,
+	SCF_REMOVEONREFRESH,
+	SCF_REMOVEONLUXANIMA,
+	SCF_STOPATTACKING,
+	SCF_STOPCASTING,
+	SCF_STOPWALKING,
+	SCF_BOSSRESIST,
+	SCF_MVPRESIST,
+	SCF_SETSTAND,
+	SCF_FAILEDMADO,
+	SCF_DEBUFF,
+	SCF_REMOVEONCHANGEMAP,
+	SCF_REMOVEONMAPWARP,
+	SCF_REMOVECHEMICALPROTECT,
+	SCF_OVERLAPFAIL,
+	SCF_OVERLAPIGNORELEVEL,
+	SCF_SENDOPTION,
+	SCF_ONTOUCH,
+	SCF_UNITMOVE,
+	SCF_NONPLAYER,
+	SCF_SENDLOOK,
+	SCF_DISPLAYNPC,
+	SCF_REQUIREWEAPON,
+	SCF_REQUIRESHIELD,
+	SCF_MOBLOSETARGET,
+	SCF_REMOVEELEMENTALOPTION,
+	SCF_SUPERNOVICEANGEL,
+	SCF_TAEKWONANGEL,
+	SCF_MADOCANCEL,
+	SCF_MADOENDCANCEL,
+	SCF_RESTARTONMAPWARP,
+	SCF_SPREADEFFECT,
+	SCF_SENDVAL1,
+	SCF_SENDVAL2,
+	SCF_SENDVAL3,
+	SCF_MAX
+};
+
+/// Struct of SC configs [Cydh]
+struct s_status_change_db {
+	sc_type type;				///< SC_
+	efst_type icon;				///< EFST_
+	std::bitset<SCS_MAX> state;	///< SCS_
+	uint64 calc_flag;			///< SCB_ flags
+	uint16 opt1;				///< OPT1_
+	uint16 opt2;				///< OPT2_
+	uint32 opt3;				///< OPT3_
+	uint32 look;				///, OPTION_ Changelook
+	std::bitset<SCF_MAX> flag;	///< SCF_ Flags, enum e_status_change_flag
+	bool display;				///< Display status effect/icon (for certain state)
+	uint16 skill_id;			///< Associated skill for (addeff) duration lookups
+	std::vector<sc_type> end;	///< List of SC that will be ended when this SC is activated
+	std::vector<sc_type> fail;	///< List of SC that causing this SC cannot be activated
+	bool end_return;			///< After SC ends the SC from end list, it does nothing
+	t_tick min_duration;		///< Minimum duration effect (after all status reduction)
+	uint16 min_rate;			///< Minimum rate to be applied (after all status reduction)
+};
+
+class StatusDatabase : public TypesafeCachedYamlDatabase<uint16, s_status_change_db> {
+public:
+	StatusDatabase() : TypesafeCachedYamlDatabase("STATUS_DB", 1) {
+
+	}
+
+	const std::string getDefaultLocation() override;
+	uint64 parseBodyNode(const YAML::Node &node) override;
+	void loadingFinished() override;
+
+	// Determine who will receive a clif_status_change packet for effects that require one to display correctly
+	uint16 StatusRelevantBLTypes[EFST_MAX];
+
+	// Extras
+	efst_type getIcon(sc_type type);
+	uint64 getCalcFlag(sc_type type);
+	std::vector<sc_type> getEnd(sc_type type);
+	uint16 getSkill(sc_type type);
+	bool hasSCF(status_change *sc, e_status_change_flag flag);
+	void removeByStatusFlag(block_list *bl, std::vector<e_status_change_flag> flag);
+	void changeSkillTree(map_session_data *sd, int32 class_ = 0);
+	bool validateStatus(sc_type type);
+};
+
+extern StatusDatabase status_db;
+
 /// Enum for status_calc_weight and status_calc_cart_weight
 enum e_status_calc_weight_opt {
 	CALCWT_NONE = 0x0,
@@ -2824,14 +2938,6 @@ struct weapon_atk {
 #endif
 };
 
-extern sc_type SkillStatusChangeTable[MAX_SKILL];   /// skill  -> status
-extern int StatusIconChangeTable[SC_MAX];           /// status -> "icon" (icon is a bit of a misnomer, since there exist values with no icon associated)
-extern uint64 StatusChangeFlagTable[SC_MAX];  /// status -> flags
-extern int StatusSkillChangeTable[SC_MAX];          /// status -> skill
-extern int StatusRelevantBLTypes[EFST_MAX];           /// "icon" -> enum bl_type (for clif->status_change to identify for which bl types to send packets)
-extern unsigned int StatusChangeStateTable[SC_MAX]; /// status -> flags
-extern unsigned int StatusDisplayType[SC_MAX];
-
 ///For holding basic status (which can be modified by status changes)
 struct status_data {
 	unsigned int
@@ -2938,11 +3044,18 @@ struct status_change {
 	unsigned char count;
 	//! TODO: See if it is possible to implement the following SC's without requiring extra parameters while the SC is inactive.
 	struct {
-		unsigned char move;
-		unsigned char pickup;
-		unsigned char drop;
-		unsigned char cast;
-		unsigned char chat;
+		uint8 move;
+		uint8 pickup;
+		uint8 drop;
+		uint8 cast;
+		uint8 chat;
+		uint8 equip;
+		uint8 unequip;
+		uint8 consume;
+		uint8 attack;
+		uint8 warp;
+		uint8 deathpenalty;
+		uint8 interact;
 	} cant;/* status change state flags */
 	//int sg_id; //ID of the previous Storm gust that hit you
 	short comet_x, comet_y; // Point where src casted Comet - required to calculate damage from this point
@@ -2955,25 +3068,6 @@ struct status_change {
 	struct status_change_entry *data[SC_MAX];
 };
 
-/// Statuses that are cancelled/disabled while on Madogear
-static const std::vector<sc_type> mado_statuses = {
-	SC_LOUD,
-	SC_CARTBOOST,
-	SC_MELTDOWN,
-	SC_ADRENALINE,
-	SC_ADRENALINE2,
-	SC_WEAPONPERFECTION,
-	SC_MAXIMIZEPOWER,
-	SC_OVERTHRUST,
-	SC_MAXOVERTHRUST
-};
-
-// for looking up associated data
-sc_type status_skill2sc(int skill);
-int status_sc2skill(sc_type sc);
-uint64 status_sc2scb_flag(sc_type sc);
-int status_type2relevant_bl_types(int type);
-
 int status_damage( struct block_list *src, struct block_list *target, int64 dhp, int64 dsp, int64 dap, t_tick walkdelay, int flag, uint16 skill_id );
 static int status_damage( struct block_list *src, struct block_list *target, int64 dhp, int64 dsp, t_tick walkdelay, int flag, uint16 skill_id ){
 	return status_damage( src, target, dhp, dsp, 0, walkdelay, flag, skill_id );
@@ -3123,7 +3217,7 @@ int status_change_clear(struct block_list* bl, int type);
 void status_change_clear_buffs(struct block_list* bl, uint8 type);
 void status_change_clear_onChangeMap(struct block_list *bl, struct status_change *sc);
 
-#define status_calc_bl(bl, flag) status_calc_bl_(bl, (enum scb_flag)(flag), SCO_NONE)
+#define status_calc_bl(bl, flag) status_calc_bl_(bl, flag, SCO_NONE)
 #define status_calc_mob(md, opt) status_calc_bl_(&(md)->bl, SCB_ALL, opt)
 #define status_calc_pet(pd, opt) status_calc_bl_(&(pd)->bl, SCB_ALL, opt)
 #define status_calc_pc(sd, opt) status_calc_bl_(&(sd)->bl, SCB_ALL, opt)
@@ -3134,25 +3228,26 @@ void status_change_clear_onChangeMap(struct block_list *bl, struct status_change
 
 bool status_calc_weight(struct map_session_data *sd, enum e_status_calc_weight_opt flag);
 bool status_calc_cart_weight(struct map_session_data *sd, enum e_status_calc_weight_opt flag);
-void status_calc_bl_(struct block_list *bl, enum scb_flag flag, enum e_status_calc_opt opt);
-int status_calc_mob_(struct mob_data* md, enum e_status_calc_opt opt);
-void status_calc_pet_(struct pet_data* pd, enum e_status_calc_opt opt);
-int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt);
-int status_calc_homunculus_(struct homun_data *hd, enum e_status_calc_opt opt);
-int status_calc_mercenary_(s_mercenary_data *md, e_status_calc_opt opt);
-int status_calc_elemental_(s_elemental_data *ed, e_status_calc_opt opt);
-int status_calc_npc_(struct npc_data *nd, enum e_status_calc_opt opt);
+void status_calc_bl_(struct block_list *bl, uint64 flag, uint8 opt);
+int status_calc_mob_(struct mob_data* md, uint8 opt);
+void status_calc_pet_(struct pet_data* pd, uint8 opt);
+int status_calc_pc_(struct map_session_data* sd, uint8 opt);
+int status_calc_homunculus_(struct homun_data *hd, uint8 opt);
+int status_calc_mercenary_(s_mercenary_data *md, uint8 opt);
+int status_calc_elemental_(s_elemental_data *ed, uint8 opt);
+int status_calc_npc_(struct npc_data *nd, uint8 opt);
 
 void status_calc_misc(struct block_list *bl, struct status_data *status, int level);
 void status_calc_regen(struct block_list *bl, struct status_data *status, struct regen_data *regen);
 void status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, struct status_change *sc);
+void status_calc_state(struct block_list *bl, struct status_change *sc, std::bitset<SCS_MAX> flag, bool start);
 
 void status_calc_slave_mode(struct mob_data *md, struct mob_data *mmd);
 
 bool status_check_skilluse(struct block_list *src, struct block_list *target, uint16 skill_id, int flag);
 int status_check_visibility(struct block_list *src, struct block_list *target);
 
-int status_change_spread(struct block_list *src, struct block_list *bl, bool type);
+int status_change_spread(block_list *src, block_list *bl);
 
 #ifndef RENEWAL
 unsigned short status_base_matk_min(const struct status_data* status);
@@ -3167,9 +3262,11 @@ unsigned short status_base_matk_max(struct block_list *bl, const struct status_d
 
 unsigned short status_base_atk(const struct block_list *bl, const struct status_data *status, int level);
 
-void initChangeTables(void);
-int status_readdb( bool reload = false );
-int do_init_status(void);
+// Status changes accessors for StatusChange database
+uint16 status_efst_get_bl_type(enum efst_type efst);
+
+void status_readdb( bool reload = false );
+void do_init_status(void);
 void do_final_status(void);
 
 #endif /* STATUS_HPP */

+ 49 - 86
src/map/unit.cpp

@@ -1449,9 +1449,9 @@ int unit_is_walking(struct block_list *bl)
  * Some statuses are still checked here due too specific variables
  * @author [Skotlex]
  * @param bl: Object to check
- * @return Can move(1); Can't move(0)
+ * @return True - can move; False - can't move
  */
-int unit_can_move(struct block_list *bl) {
+bool unit_can_move(struct block_list *bl) {
 	struct map_session_data *sd;
 	struct unit_data *ud;
 	struct status_change *sc;
@@ -1463,37 +1463,20 @@ int unit_can_move(struct block_list *bl) {
 	sd = BL_CAST(BL_PC, bl);
 
 	if (!ud)
-		return 0;
+		return false;
 
 	if (ud->skilltimer != INVALID_TIMER && ud->skill_id != LG_EXEEDBREAK && (!sd || !pc_checkskill(sd, SA_FREECAST) || skill_get_inf2(ud->skill_id, INF2_ISGUILD)))
-		return 0; // Prevent moving while casting
+		return false; // Prevent moving while casting
 
 	if (DIFF_TICK(ud->canmove_tick, gettick()) > 0)
-		return 0;
+		return false;
 
 	if ((sd && (pc_issit(sd) || sd->state.vending || sd->state.buyingstore || (sd->state.block_action & PCBLOCK_MOVE) || sd->state.mail_writing)) || ud->state.blockedmove)
-		return 0; // Can't move
+		return false; // Can't move
 
 	// Status changes that block movement
-	if (sc) {
-		if( sc->cant.move // status placed here are ones that cannot be cached by sc->cant.move for they depend on other conditions other than their availability
-			|| sc->data[SC_SPIDERWEB]
-			|| (sc->data[SC_DANCING] && sc->data[SC_DANCING]->val4 && (
-#ifndef RENEWAL
-				!sc->data[SC_LONGING] ||
-#endif
-				(sc->data[SC_DANCING]->val1&0xFFFF) == CG_MOONLIT ||
-				(sc->data[SC_DANCING]->val1&0xFFFF) == CG_HERMODE
-				) )
-			)
-			return 0;
-
-		if (sc->opt1 > 0 && sc->opt1 != OPT1_STONEWAIT && sc->opt1 != OPT1_BURNING)
-			return 0;
-
-		if ((sc->option & OPTION_HIDE) && (!sd || pc_checkskill(sd, RG_TUNNELDRIVE) <= 0))
-			return 0;
-	}
+	if (sc && sc->cant.move)
+		return false;
 
 	// Icewall walk block special trapped monster mode
 	if(bl->type == BL_MOB) {
@@ -1501,11 +1484,11 @@ int unit_can_move(struct block_list *bl) {
 		if(md && ((status_has_mode(&md->status,MD_STATUSIMMUNE) && battle_config.boss_icewall_walk_block == 1 && map_getcell(bl->m,bl->x,bl->y,CELL_CHKICEWALL))
 			|| (!status_has_mode(&md->status,MD_STATUSIMMUNE) && battle_config.mob_icewall_walk_block == 1 && map_getcell(bl->m,bl->x,bl->y,CELL_CHKICEWALL)))) {
 			md->walktoxy_fail_count = 1; //Make sure rudeattacked skills are invoked
-			return 0;
+			return false;
 		}
 	}
 
-	return 1;
+	return true;
 }
 
 /**
@@ -1520,11 +1503,9 @@ TIMER_FUNC(unit_resume_running){
 	TBL_PC *sd = map_id2sd(id);
 
 	if (sd && pc_isridingwug(sd))
-		clif_skill_nodamage(ud->bl,ud->bl,RA_WUGDASH,ud->skill_lv,
-			sc_start4(ud->bl,ud->bl,status_skill2sc(RA_WUGDASH),100,ud->skill_lv,unit_getdir(ud->bl),0,0,0));
+		clif_skill_nodamage(ud->bl,ud->bl,RA_WUGDASH,ud->skill_lv,sc_start4(ud->bl,ud->bl,SC_WUGDASH,100,ud->skill_lv,unit_getdir(ud->bl),0,0,0));
 	else
-		clif_skill_nodamage(ud->bl,ud->bl,TK_RUN,ud->skill_lv,
-			sc_start4(ud->bl,ud->bl,status_skill2sc(TK_RUN),100,ud->skill_lv,unit_getdir(ud->bl),0,0,0));
+		clif_skill_nodamage(ud->bl,ud->bl,TK_RUN,ud->skill_lv,sc_start4(ud->bl,ud->bl,SC_RUN,100,ud->skill_lv,unit_getdir(ud->bl),0,0,0));
 
 	if (sd)
 		clif_walkok(sd);
@@ -2404,23 +2385,6 @@ int unit_unattackable(struct block_list *bl)
 	return 0;
 }
 
-/**
- * Checks if the unit can attack, returns yes if so.
-*/
-bool unit_can_attack(struct block_list *src, int target_id)
-{
-	struct status_change *sc = status_get_sc(src);
-
-	if( sc != NULL ) {
-		if( sc->data[SC__MANHOLE] )
-			return false;
-	}
-
-	if( src->type == BL_PC )
-		return pc_can_attack(BL_CAST(BL_PC, src), target_id);
-	return true;
-}
-
 /**
  * Requests a unit to attack a target
  * @param src: Object initiating attack
@@ -2723,7 +2687,7 @@ static int unit_attack_timer_sub(struct block_list* src, int tid, t_tick tick)
 #ifdef OFFICIAL_WALKPATH
 	   || !path_search_long(NULL, src->m, src->x, src->y, target->x, target->y, CELL_CHKWALL)
 #endif
-	   || (sd && !pc_can_attack(sd, target->id)) )
+	   || !unit_can_attack(src, target->id) )
 		return 0; // Can't attack under these conditions
 
 	if( src->m != target->m ) {
@@ -2870,6 +2834,35 @@ static TIMER_FUNC(unit_attack_timer){
 	return 0;
 }
 
+/**
+ * Determines whether a player can attack based on status changes
+ *  Why not use status_check_skilluse?
+ *  "src MAY be null to indicate we shouldn't check it, this is a ground-based skill attack."
+ *  Even ground-based attacks should be blocked by these statuses
+ * Called from unit_attack and unit_attack_timer_sub
+ * @retval true Can attack
+ **/
+bool unit_can_attack(struct block_list *bl, int target_id) {
+	nullpo_retr(false, bl);
+
+	if (bl->type == BL_PC) {
+		map_session_data *sd = ((TBL_PC *)bl);
+
+		if (sd && (sd->state.block_action & PCBLOCK_ATTACK))
+			return false;
+	}
+
+	struct status_change *sc;
+
+	if (!(sc = status_get_sc(bl)))
+		return true;
+
+	if (sc->cant.attack || (sc->data[SC_VOICEOFSIREN] && sc->data[SC_VOICEOFSIREN]->val2 == target_id))
+		return false;
+
+	return true;
+}
+
 /**
  * Cancels a skill's cast
  * @param bl: Object to cancel cast
@@ -3059,50 +3052,20 @@ int unit_remove_map_(struct block_list *bl, clr_type clrtype, const char* file,
 	ud->attackabletime = ud->canmove_tick /*= ud->canact_tick*/ = gettick();
 
 	if(sc && sc->count ) { // map-change/warp dispells.
-		status_change_end(bl, SC_BLADESTOP, INVALID_TIMER);
-#ifdef RENEWAL
-		status_change_end(bl, SC_BASILICA_CELL, INVALID_TIMER);
-#else
-		status_change_end(bl, SC_BASILICA, INVALID_TIMER);
-#endif
-		status_change_end(bl, SC_ANKLE, INVALID_TIMER);
-		status_change_end(bl, SC_TRICKDEAD, INVALID_TIMER);
-		status_change_end(bl, SC_BLADESTOP_WAIT, INVALID_TIMER);
-		status_change_end(bl, SC_RUN, INVALID_TIMER);
-		status_change_end(bl, SC_DANCING, INVALID_TIMER);
-		status_change_end(bl, SC_WARM, INVALID_TIMER);
-		status_change_end(bl, SC_DEVOTION, INVALID_TIMER);
-		status_change_end(bl, SC_MARIONETTE, INVALID_TIMER);
-		status_change_end(bl, SC_MARIONETTE2, INVALID_TIMER);
-		status_change_end(bl, SC_CLOSECONFINE, INVALID_TIMER);
-		status_change_end(bl, SC_CLOSECONFINE2, INVALID_TIMER);
-		status_change_end(bl, SC_TINDER_BREAKER, INVALID_TIMER);
-		status_change_end(bl, SC_TINDER_BREAKER2, INVALID_TIMER);
-		status_change_end(bl, SC_FLASHKICK, INVALID_TIMER);
-		status_change_end(bl, SC_SERVANT_SIGN, INVALID_TIMER);
-		status_change_end(bl, SC_HIDING, INVALID_TIMER);
+		if (sc->cant.warp)
+			return 0;
+
+		status_db.removeByStatusFlag(bl, { SCF_REMOVEONCHANGEMAP });
+
 		// Ensure the bl is a PC; if so, we'll handle the removal of cloaking and cloaking exceed later
 		if ( bl->type != BL_PC ) {
 			status_change_end(bl, SC_CLOAKING, INVALID_TIMER);
 			status_change_end(bl, SC_CLOAKINGEXCEED, INVALID_TIMER);
 		}
-		status_change_end(bl, SC_CHASEWALK, INVALID_TIMER);
 		if (sc->data[SC_GOSPEL] && sc->data[SC_GOSPEL]->val4 == BCT_SELF)
 			status_change_end(bl, SC_GOSPEL, INVALID_TIMER);
-		if (sc->data[SC_PROVOKE] && sc->data[SC_PROVOKE]->timer == INVALID_TIMER)
+		if (sc->data[SC_PROVOKE] && sc->data[SC_PROVOKE]->val4 == 1)
 			status_change_end(bl, SC_PROVOKE, INVALID_TIMER); //End infinite provoke to prevent exploit
-		status_change_end(bl, SC_CHANGE, INVALID_TIMER);
-		status_change_end(bl, SC_STOP, INVALID_TIMER);
-		status_change_end(bl, SC_WUGDASH, INVALID_TIMER);
-		status_change_end(bl, SC_CAMOUFLAGE, INVALID_TIMER);
-		status_change_end(bl, SC_NEUTRALBARRIER_MASTER, INVALID_TIMER);
-		status_change_end(bl, SC_STEALTHFIELD_MASTER, INVALID_TIMER);
-		status_change_end(bl, SC__SHADOWFORM, INVALID_TIMER);
-		status_change_end(bl, SC__MANHOLE, INVALID_TIMER);
-		status_change_end(bl, SC_VACUUM_EXTREME, INVALID_TIMER);
-		status_change_end(bl, SC_NEWMOON, INVALID_TIMER);
-		status_change_end(bl, SC_CURSEDCIRCLE_ATKER, INVALID_TIMER); // callme before warp
-		status_change_end(bl, SC_SUHIDE, INVALID_TIMER);
 	}
 
 	switch( bl->type ) {
@@ -3583,7 +3546,7 @@ int unit_free(struct block_list *bl, clr_type clrtype)
 					sd->status.hom_id = 0;
 
 #ifdef RENEWAL
-				status_change_end(&sd->bl, status_skill2sc(AM_CALLHOMUN), INVALID_TIMER);
+				status_change_end(&sd->bl, SC_HOMUN_TIME, INVALID_TIMER);
 #endif
 			}
 

+ 2 - 1
src/map/unit.hpp

@@ -115,7 +115,7 @@ TIMER_FUNC(unit_delay_walktobl_timer);
 
 // Causes the target object to stop moving.
 int unit_stop_walking(struct block_list *bl,int type);
-int unit_can_move(struct block_list *bl);
+bool unit_can_move(struct block_list *bl);
 int unit_is_walking(struct block_list *bl);
 int unit_set_walkdelay(struct block_list *bl, t_tick tick, t_tick delay, int type);
 
@@ -138,6 +138,7 @@ int unit_stopattack(struct block_list *bl, va_list ap);
 void unit_stop_attack(struct block_list *bl);
 int unit_attack(struct block_list *src,int target_id,int continuous);
 int unit_cancel_combo(struct block_list *bl);
+bool unit_can_attack(struct block_list *bl, int target_id);
 
 // Cast on a unit
 int unit_skilluse_id(struct block_list *src, int target_id, uint16 skill_id, uint16 skill_lv);

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików