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;
 }
示例#2
0
 //对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);
     }
 }
示例#3
0
 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));
 }
示例#6
0
 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);
     }
 }
示例#7
0
 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);
     }
 }