public StatusEffect(StatusModifier statMod, Unit caster, int level, int duration, bool constant) { applyEachTurn = constant; remainingDuration = duration; this.statMod = statMod; this.level = level; source = caster; wasApplied = false; }
//对S所在的gameObject增加一个持续Duration的BUFF组件,其效果为modifier public static Buff AddBuff(POEStatus S, float duration, StatusModifier modifier) { if (S != null) { Buff newbuff = S.gameObject.AddComponent <Buff>(); newbuff.Duration = duration; newbuff.m = modifier; return(newbuff); } else { return(null); } }
public Figere(OperatorType type, int amount, FigereTier tier) { this._modifier = new StatusModifier <T>(type, amount); this._tier = tier; // this.frequency = frequency; }
public void ApplyStatModifier(Unit source, StatusModifier statMod, int level) { statusEffects.AddStatusEffect(source, statMod, level); }
public void AddStatusEffect(Unit source, StatusModifier mod, int level) { statusEffects.Add(new StatusEffect(mod, source, level, mod.durationPerLevel [level - 1], mod.applyEachTurn)); }
public void ResolveStatus(StatusModifier.Kind k) { Debug.Log ("[Actor]Resolving status:" + k.ToString()); StatusModifier sm = status.Find( x => x.StatusKind == k); if( sm != null ) { sm.ResolveStatus(); status.Remove (sm); } }
public void AttachStatus(StatusModifier.Kind k) { Debug.Log ("[Actor]Attaching status:" + k.ToString()); StatusModifier sm = status.Find( x => x.StatusKind == k); if( sm == null ) { sm = StatusModifier.CreateStatus(k); sm.Initialize(this); sm.ActivateStatus(); status.Add(sm); } }