mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-06-09 22:14:39 +02:00
Refactor StatusEffectContainer to better handle messages using
CommandResultContainer. Alter Modifiers to be the same as ParamNames. Add LoseOnClassChange flag for status effects. Add a few missing status effects. Fix EndTime for stance status effects to stop icon from blinking.
This commit is contained in:
parent
cc07e1f453
commit
26ef649a6c
17 changed files with 586 additions and 381 deletions
11
data/scripts/effects/hp_penalty.lua
Normal file
11
data/scripts/effects/hp_penalty.lua
Normal file
|
@ -0,0 +1,11 @@
|
|||
require("modifiers")
|
||||
|
||||
function onGain(target, effect)
|
||||
local newMaxHP = target.GetMaxHP() * 0.75;
|
||||
|
||||
target.SetMaxHP(newMaxHP);
|
||||
end;
|
||||
|
||||
function onLose(target, effect)
|
||||
target.SetMaxHP(target.GetMaxHP() / 0.75);
|
||||
end;
|
23
data/scripts/effects/raging_strike2.lua
Normal file
23
data/scripts/effects/raging_strike2.lua
Normal file
|
@ -0,0 +1,23 @@
|
|||
require("modifiers")
|
||||
require("battleutils")
|
||||
|
||||
|
||||
function onCommandStart(effect, attacker, command, actionContainer)
|
||||
--Random guess
|
||||
command.enmityModifier += 0.25;
|
||||
end
|
||||
|
||||
function onHit(effect, attacker, defender, action, actionContainer)
|
||||
if skill.id == 27259 then
|
||||
--Effect stacks up to 3 times
|
||||
if effect.GetTier() < 3 then
|
||||
effect.SetTier(effect.GetTier() + 1);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function onMiss(effect, attacker, defender, action, actionContainer)
|
||||
if skill.id == 27259 then
|
||||
effect.SetTier(0);
|
||||
end
|
||||
end
|
|
@ -36,13 +36,13 @@ function onTick(owner, effect)
|
|||
--Enduring march prevents fading of rampage effect
|
||||
if not owner.statusEffects.HasStatusEffect(223078) and (effect.GetExtra() > 0) then
|
||||
--Going to assume that every 5 seconds a single hits worth of rampage is lost.
|
||||
attacker.SubtractMod(modifiersGlobal.Parry, parryPerDT);
|
||||
attacker.AddMod(modifiersGlobal.Delay, delayMsPerDT);
|
||||
owner.SubtractMod(modifiersGlobal.Parry, parryPerDT);
|
||||
owner.AddMod(modifiersGlobal.Delay, delayMsPerDT);
|
||||
effect.SetExtra(effect.GetExtra() - 1);
|
||||
end
|
||||
end
|
||||
|
||||
function onLose(owner, effect)
|
||||
attacker.SubtractMod(modifiersGlobal.Parry, effect.GetExtra() * parryPerDT);
|
||||
attacker.AddMod(modifiersGlobal.Delay, effect.GetExtra() * delayMsPerDT);
|
||||
owner.SubtractMod(modifiersGlobal.Parry, effect.GetExtra() * parryPerDT);
|
||||
owner.AddMod(modifiersGlobal.Delay, effect.GetExtra() * delayMsPerDT);
|
||||
end
|
|
@ -1,88 +1,157 @@
|
|||
modifiersGlobal =
|
||||
{
|
||||
NAMEPLATE_SHOWN = 0,
|
||||
TARGETABLE = 1,
|
||||
NAMEPLATE_SHOWN2 = 2,
|
||||
--NAMEPLATE_SHOWN2 = 3,
|
||||
--These line up with ParamNames starting at 15001 and appear on gear
|
||||
--Health
|
||||
Hp = 0, --Max HP
|
||||
Mp = 1, --Max MP
|
||||
Tp = 2, --Max TP
|
||||
|
||||
Strength = 3,
|
||||
Vitality = 4,
|
||||
Dexterity = 5,
|
||||
Intelligence = 6,
|
||||
Mind = 7,
|
||||
Piety = 8,
|
||||
--Main stats
|
||||
Strength = 3,
|
||||
Vitality = 4,
|
||||
Dexterity = 5,
|
||||
Intelligence = 6,
|
||||
Mind = 7,
|
||||
Piety = 8,
|
||||
|
||||
ResistFire = 9,
|
||||
ResistIce = 10,
|
||||
ResistWind = 11,
|
||||
ResistLightning = 12,
|
||||
ResistEarth = 13,
|
||||
ResistWater = 14,
|
||||
--Elemental Resistances
|
||||
FireResistance = 9, --Lowers Fire damage taken
|
||||
IceResistance = 10, --Lowers Ice damage taken
|
||||
WindResistance = 11, --Lowers Wind damage taken
|
||||
EarthResistance = 12, --Lowers Earth damage taken
|
||||
LightningResistance = 13, --Lowers Lightning damage taken
|
||||
WaterResistance = 14, --Lowers Water damage taken
|
||||
|
||||
Accuracy = 15,
|
||||
Evasion = 16,
|
||||
Attack = 17,
|
||||
Defense = 18, --Is there a magic defense stat? 19 maybe?
|
||||
MagicAttack = 23,
|
||||
MagicHeal = 24,
|
||||
MagicEnhancePotency = 25,
|
||||
MagicEnfeeblingPotency = 26,
|
||||
--Physical Secondary stats
|
||||
Accuracy = 15, --Increases chance to hit with physical attacks
|
||||
Evasion = 16, --Decreases chance to be hit by physical attacks
|
||||
Attack = 17, --Increases damage done with physical attacks
|
||||
Defense = 18, --Decreases damage taken from physical attacks
|
||||
|
||||
MagicAccuracy = 27,
|
||||
MagicEvasion = 28,
|
||||
--Physical crit stats
|
||||
CriticalHitRating = 19, --Increases chance to crit with physical attacks
|
||||
CriticalHitEvasion = 20, --Decreases chance to be crit by physical attacks
|
||||
CriticalHitAttackPower = 21, --Increases damage done by critical physical attacks
|
||||
CriticalHitResilience = 22, --Decreases damage taken from critical physical attacks
|
||||
|
||||
CraftProcessing = 30,
|
||||
CraftMagicProcessing = 31,
|
||||
CraftProcessControl = 32,
|
||||
--Magic secondary stats
|
||||
AttackMagicPotency = 23, --Increases damage done with magical attacks
|
||||
HealingMagicPotency = 24, --Increases healing done with magic healing
|
||||
EnhancementMagicPotency = 25, --Increases effect of enhancement magic
|
||||
EnfeeblingMagicPotency = 26, --Increases effect of enfeebling magic
|
||||
MagicAccuracy = 27, --Decreases chance for magic to be evaded
|
||||
MagicEvasion = 28, --Increases chance to evade magic
|
||||
|
||||
HarvestPotency = 33,
|
||||
HarvestLimit = 34,
|
||||
HarvestRate = 35,
|
||||
--Crafting stats
|
||||
Craftsmanship = 29,
|
||||
MagicCraftsmanship = 30,
|
||||
Control = 31,
|
||||
Gathering = 32,
|
||||
Output = 33,
|
||||
Perception = 34,
|
||||
|
||||
None = 36,
|
||||
Hp = 37,
|
||||
HpPercent = 38,
|
||||
Mp = 39,
|
||||
MpPercent = 40,
|
||||
Tp = 41,
|
||||
TpPercent = 42,
|
||||
Regen = 43,
|
||||
Refresh = 44,
|
||||
--Magic crit stats
|
||||
MagicCriticalHitRating = 35, --Increases chance to crit with magical attacks
|
||||
MagicCriticalHitEvasion = 36, --Decreases chance to be crit by magical attacks
|
||||
MagicCriticalHitPotency = 37, --Increases damage done by critical magical attacks
|
||||
MagicCriticalHitResilience = 38, --Decreases damage taken from critical magical attacks
|
||||
|
||||
AttackRange = 45,
|
||||
Speed = 46,
|
||||
AttackDelay = 47,
|
||||
--Blocking stats
|
||||
Parry = 39, --Increases chance to parry
|
||||
BlockRate = 40, --Increases chance to block
|
||||
Block = 41, --Reduces damage taken from blocked attacks
|
||||
|
||||
Raise = 48,
|
||||
MinimumHpLock = 49, -- hp cannot fall below this value
|
||||
AttackType = 50, -- slashing, piercing, etc
|
||||
BlockRate = 51,
|
||||
Block = 52,
|
||||
CritRating = 53,
|
||||
HasShield = 54, -- Need this because shields are required for blocks. Could have used BlockRate or Block but BlockRate is provided by Gallant Sollerets and Block is provided by some buffs.
|
||||
HitCount = 55, -- Amount of hits in an auto attack. Usually 1, 2 for h2h, 3 with spinning heel
|
||||
--Elemental Potencies
|
||||
FireMagicPotency = 42, --Increases damage done by Fire Magic
|
||||
IceMagicPotency = 43, --Increases damage done by Ice Magic
|
||||
WindMagicPotency = 44, --Increases damage done by Wind Magic
|
||||
EarthMagicPotency = 45, --Increases damage done by Earth Magic
|
||||
LightningMagicPotency = 46, --Increases damage done by Lightning Magic
|
||||
WaterMagicPotency = 47, --Increases damage done by Water Magic
|
||||
|
||||
--Flat percent increases to these rates. Probably a better way to do this
|
||||
RawEvadeRate = 56,
|
||||
RawParryRate = 57,
|
||||
RawBlockRate = 58,
|
||||
RawResistRate = 59,
|
||||
RawHitRate = 60,
|
||||
RawCritRate = 61,
|
||||
--Miscellaneous
|
||||
Regen = 48, --Restores health over time
|
||||
Refresh = 49, --Restores MP over time
|
||||
StoreTp = 50, --Increases TP gained by auto attacks and damaging abiltiies
|
||||
Enmity = 51, --Increases enmity gained from actions
|
||||
Spikes = 52, --Deals damage or status to attacker when hit
|
||||
Haste = 53, --Increases attack speed
|
||||
--54 and 55 didn't have names and seem to be unused
|
||||
ReducedDurabilityLoss = 56, --Reduces durability loss
|
||||
IncreasedSpiritbondGain = 57, --Increases rate of spiritbonding
|
||||
Damage = 58, --Increases damage of auto attacks
|
||||
Delay = 59, --Increases rate of auto attacks
|
||||
Fastcast = 60, --Increases speed of casts
|
||||
MovementSpeed = 61, --Increases movement speed
|
||||
Exp = 62, --Increases experience gained
|
||||
RestingHp = 63, --?
|
||||
RestingMp = 64, --?
|
||||
|
||||
DamageTakenDown = 62, -- Percent damage taken down
|
||||
StoreTP = 63, --.1% extra tp per point. Lancer trait is 50 StoreTP
|
||||
PhysicalCritRate = 64, --CritRating but only for physical attacks. Increases chance of critting.
|
||||
PhysicalCritEvasion = 65, --Opposite of CritRating. Reduces chance of being crit by phyiscal attacks
|
||||
PhysicalCritAttack = 66, --Increases damage done by Physical Critical hits
|
||||
PhysicalCritResilience = 67, --Decreases damage taken by Physical Critical hits
|
||||
Parry = 68, --Increases chance to parry
|
||||
MagicCritPotency = 69, --Increases
|
||||
Regain = 70, --TP regen, should be -90 out of combat, Invigorate sets to 100+ depending on traits
|
||||
RegenDown = 71, --Damage over time effects. Separate from normal Regen because of how they are displayed in game
|
||||
Stoneskin = 72, --Nullifies damage
|
||||
MinimumTpLock = 73, --Don't let TP fall below this, used in openings
|
||||
KnockbackImmune = 74 --Immune to knockback effects when above 0
|
||||
--Attack property resistances
|
||||
SlashingResistance = 65, --Reduces damage taken by slashing attacks
|
||||
PiercingResistance = 66, --Reduces damage taken by piercing attacks
|
||||
BluntResistance = 67, --Reduces damage taken by blunt attacks
|
||||
ProjectileResistance = 68, --Reduces damage taken by projectile attacks
|
||||
SonicResistance = 69, --Reduces damage taken by sonic attacks
|
||||
BreathResistance = 70, --Reduces damage taken by breath attacks
|
||||
PhysicalResistance = 71, --Reduces damage taken by physical attacks
|
||||
MagicResistance = 72, --Reduces damage taken by magic attacks
|
||||
|
||||
--Status resistances
|
||||
SlowResistance = 73, --Reduces chance to be inflicted with slow by status magic
|
||||
PetrificationResistance = 74, --Reduces chance to be inflicted with petrification by status magic
|
||||
ParalysisResistance = 75, --Reduces chance to be inflicted with paralysis by status magic
|
||||
SilenceResistance = 76, --Reduces chance to be inflicted with silence by status magic
|
||||
BlindResistance = 77, --Reduces chance to be inflicted with blind by status magic
|
||||
PoisonResistance = 78, --Reduces chance to be inflicted with poison by status magic
|
||||
StunResistance = 79, --Reduces chance to be inflicted with stun by status magic
|
||||
SleepResistance = 80, --Reduces chance to be inflicted with sleep by status magic
|
||||
BindResistance = 81, --Reduces chance to be inflicted with bind by status magic
|
||||
HeavyResistance = 82, --Reduces chance to be inflicted with heavy by status magic
|
||||
DoomResistance = 83, --Reduces chance to be inflicted with doom by status magic
|
||||
|
||||
--84-101 didn't have names and seem to be unused
|
||||
--Miscellaneous
|
||||
ConserveMp = 101, --Chance to reduce mp used by actions
|
||||
SpellInterruptResistance = 102, --Reduces chance to be interrupted by damage while casting
|
||||
DoubleDownOdds = 103, --Increases double down odds
|
||||
HqDiscoveryRate = 104,
|
||||
|
||||
|
||||
--Non-gear mods
|
||||
None = 105,
|
||||
NAMEPLATE_SHOWN = 106,
|
||||
TARGETABLE = 107,
|
||||
NAMEPLATE_SHOWN2 = 108,
|
||||
|
||||
HpPercent = 109,
|
||||
MpPercent = 110,
|
||||
TpPercent = 111,
|
||||
|
||||
AttackRange = 112, --How far away in yalms this character can attack from (probably won't need this when auto attack skills are done)
|
||||
|
||||
Raise = 113,
|
||||
MinimumHpLock = 114, --Stops HP from falling below this value
|
||||
MinimumMpLock = 115, --Stops MP from falling below this value
|
||||
MinimumTpLock = 116, --Stops TP from falling below this value
|
||||
AttackType = 117, --Attack property of auto attacks (might not need this when auto attack skills are done, unsure)
|
||||
CanBlock = 118, --Whether the character can block attacks. (For players this is only true when they have a shield)
|
||||
HitCount = 119, --Amount of hits in an auto attack. Usually 1, 2 for h2h, 3 with spinning heel
|
||||
|
||||
--Flat percent increases to these rates. Might not need these?
|
||||
RawEvadeRate = 120,
|
||||
RawParryRate = 121,
|
||||
RawBlockRate = 122,
|
||||
RawResistRate = 123,
|
||||
RawHitRate = 124,
|
||||
RawCritRate = 125,
|
||||
|
||||
DamageTakenDown = 126, --Percent damage taken down
|
||||
Regain = 127, --TP regen, should be -90 out of combat, Invigorate sets to 100+ depending on traits
|
||||
RegenDown = 128, --Damage over time effects. Separate from normal Regen because of how they are displayed in game
|
||||
Stoneskin = 129, --Nullifies damage
|
||||
KnockbackImmune = 130, --Immune to knockback effects when above 0
|
||||
Stealth = 131,
|
||||
}
|
||||
|
||||
mobModifiersGlobal =
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue