Example #1
0
File: Buff.cs Project: pb0/ID0_Test
    public Buff(StatusEffectEntity entity, Stat firerStat, Handle OnBuff, Handle OnDebuff)
    {
        statusEffectEntity = entity;
        name = "Buff" + entity.StatusEffectID;
        duration = entity.StatusEffectExpireType == E_StatusEffectExpireType.TimeLimit ? entity.ExpireTime : float.MaxValue;
        this.spawnEffect = entity.SpawnVFX;
        this.spawnSound = entity.SpawnSFX;
        this.OnBuff = OnBuff;
        this.OnDebuff = OnDebuff;

        if (entity.statusEffectType == StatusEffectType.ChangeStat)
        {
            if (!string.IsNullOrEmpty(entity.TargetStat))
            {
                Type targetStatType = Type.GetType(entity.TargetStat);
                if (targetStatType != null)
                {
                    string strStatMod = StringTool.RemoveWhiteSpace(entity.StatMod);
                    strStatMod = ApplyStat(strStatMod, firerStat);
                    strStatMod = string.Format(strStatMod, entity.EffectValue);

                    string[] modTokens = strStatMod.Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                    statMod = ParseStatMod(modTokens, targetStatType);
                }
            }
        }
        else if (entity.statusEffectType == StatusEffectType.IntervalAction)
        {
            this.effectTick = entity.effectTick;
            this.action = ActionPattern.Create(entity.ActionPattern).Generate(firerStat);
            remainTick = effectTick;
        }
        else
        {
            Assert.Fail();
        }
    }
Example #2
0
 void CheckBuffType(StatusEffectEntity buffEntity)
 {
     if (!string.IsNullOrEmpty(buffEntity.TargetStat) && stat.KeyType.Name != buffEntity.TargetStat)
     {
         Debug.LogError(string.Format("Buff type error: {0}, {1}", buffEntity.TargetStat, stat.KeyType));
     }
 }
Example #3
0
 public void RemoveBuffIcon(StatusEffectEntity statusEffectEntity)
 {
     /*
     if (statusEffectEntity.BuffType == E_BuffType.Buff)
     {
         buffIcons.RemoveIcon(statusEffectEntity.StatusEffectID);
     }
     else if (statusEffectEntity.BuffType == E_BuffType.Debuff)
     {
         debuffIcons.RemoveIcon(statusEffectEntity.StatusEffectID);
     }
      * */
 }
Example #4
0
 public void AddBuffIcon(StatusEffectEntity statusEffectEntity)
 {
     /*
     if (statusEffectEntity.BuffType == E_BuffType.Buff)
     {
         buffIcons.AddIcon(statusEffectEntity.StatusEffectID, statusEffectEntity.Icon);
     }
     else if (statusEffectEntity.BuffType == E_BuffType.Debuff)
     {
         debuffIcons.AddIcon(statusEffectEntity.StatusEffectID, statusEffectEntity.Icon);
     }
      * */
 }