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(); } }
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)); } }
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); } * */ }
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); } * */ }