public void SetData(Characer c, int number) { characer = c; offset = new Vector3(1f, 2, 0); numLabel.text = number.ToString(); isFinished = false; }
public DamageEvent(Characer caster, Characer receiver, DamageInfo damageInfo) { id = (int)EventType.OnDamage; this.caster = caster; this.receiver = receiver; this.damageInfo = damageInfo; }
public PassiveSkill CreateSkill(int skillId, Characer caster) { var skill = new PassiveSkill(skillId, caster); skill.Start(); skills.Add(skill); return(skill); }
public Skill CreateSkill(int skillId, Characer c) { Skill s = new Skill(); s.Init(c, SkillConfigManager.instance.Get(skillId)); skills.Add(s); return(s); }
public void AddBuff(int id, Characer caster, Characer receiver, int duration) { var data = BuffConfigManager.instance.Get(id); Buff buff = new Buff(caster, receiver, data, duration); buffs.Add(buff); receiver.buffs.Add(buff); }
//不计算防御暴击的伤害 public static DamageInfo CalculateDamage(Characer caster, Characer receiver, float damage) { DamageInfo damgeInfo = new DamageInfo(); damgeInfo.damage = damage; DamageApplyCharacterSpeciality(caster, receiver, damgeInfo); return(damgeInfo); }
public Buff(Characer caster, Characer receiver, BuffConfig config, int round) { this.caster = caster; this.receiver = receiver; this.config = config; this.duration = round; Start(); }
private static void DamageApplyCharacterSpeciality(Characer caster, Characer receiver, DamageInfo damgeInfo) { if (caster.special == CharacterSpecialType.HighPercentHpDamageAdd) { if (receiver.GetHp(true) > 0.7f) { damgeInfo.damage *= 1.4f; } } }
public void PushDownCharacterPos(Characer c, float percent) { var d = instance.GetCharacerData(c); d.pos -= TRACK_LENGTH * percent; if (d.pos < 0) { d.pos = 0; } }
public void PullUpCharacterPos(Characer c, float percent) { var d = instance.GetCharacerData(c); d.pos += TRACK_LENGTH * percent; if (d.pos > TRACK_LENGTH) { d.pos = TRACK_LENGTH; } }
public void RemoveCharacter(Characer c) { if (c.isMonster) { monsterDeadCount++; } else { shikigamiDeadCount++; } characers.Remove(c); }
public static List <Characer> SearchTarget(Characer characer, TargetType targetType, TargetFieltType fieltType) { List <Characer> targets = new List <Characer>(); if (targetType == TargetType.Self) { targets.Add(characer); return(targets); } var list = BattleManager.instance.characers; foreach (var c in list) { if (c.isDying) { continue; } if (IsTarget(characer, c)) { targets.Add(c); } } if (fieltType == TargetFieltType.None) { return(targets); } if (fieltType == TargetFieltType.HpPercentLowest) { Characer t = null; float hp = 1; foreach (var c in targets) { if (t == null || c.GetHp(true) <= hp) { hp = c.GetHp(true); t = c; } } targets.Clear(); targets.Add(t); } return(targets); }
private void OnBuffChanged(Characer c) { StringBuilder sb = new StringBuilder(""); for (var i = 0; i < c.buffs.Count; i++) { var buff = c.buffs[i]; sb.Append(buff.config.name); if (i < c.buffs.Count - 1) { sb.Append("\n"); } } buffLabel.text = sb.ToString(); buffLabel.gameObject.SetActive(string.IsNullOrEmpty(buffLabel.text)); }
//正常伤害计算 public static DamageInfo CalculateDamage(Characer caster, Characer receiver, Skill skill) { DamageInfo damgeInfo = new DamageInfo(); damgeInfo.damage = skill.config.damageRate * caster.attack; damgeInfo.isCrit = Random.Range(0, 100) < caster.attack; if (damgeInfo.isCrit) { damgeInfo.damage = damgeInfo.damage * caster.critDamge; } float defend = 300 / (receiver.defense + 300); damgeInfo.damage *= defend; DamageApplyCharacterSpeciality(caster, receiver, damgeInfo); return(damgeInfo); }
public void DoAttack(Characer receiver) { var d = DamageUtil.CalculateDamage(caster, receiver, this); float hpChange = receiver.BeAttacked(d); overflowDamage += d.damage - hpChange; if (caster.special == CharacterSpecialType.RealDamage) { float damage = caster.attack * 1.2f; float max = receiver.maxHp * 0.1f; if (damage > max) { damage = max; } DamageInfo info = new DamageInfo(); info.damage = damage; receiver.BeAttacked(info); } }
public void Cast(Characer target) { isCasted = true; attackTimes = 0; attackTimer = -1; //第一次立即执行 overflowDamage = 0; this.target = target; if (config.buff1Id > 0) { BuffManager.instance.AddBuff(config.buff1Id, caster, target, config.buff1Round); } if (config.buff2Id > 0) { BuffManager.instance.AddBuff(config.buff2Id, caster, target, config.buff2Round); } if (config.addFire > 0) { BattleManager.instance.ChangeFire(config.addFire); } }
public void SetData(Characer c) { characer = c; offset = new Vector3(0, 2, 0); nameLabel.text = c.Name; }
public void Init(Characer c, SkillConfig config) { caster = c; this.config = config; }
public CharacterMoveBarData GetCharacerData(Characer c) { return(moveBarDatas.Find((d) => d.characer == c)); }
public PassiveSkill(int skillId, Characer caster) { this.caster = caster; config = PassiveSkillConfigManager.instance.Get(skillId); skill = SkillManager.instance.CreateSkill(config.skillId, this.caster); }
public CharacterBornEvent(Characer c) { id = (int)EventType.CharacterBorn; characer = c; }
public CharacterDeadEvent(Characer c) { id = (int)EventType.CharacterDead; characer = c; }
public AddBuffEvent(Characer characer, Buff buff) { id = (int)EventType.AddBuff; this.characer = characer; this.buff = buff; }
public void AddCharacter(Characer c) { characers.Add(c); EventManager.instance.FireEvent(new CharacterBornEvent(c)); }
private static bool IsTarget(Characer c, Characer target) { return(c.isMonster != target.isMonster); }
public RemoveBuffEvent(Characer characer, Buff buff) { id = (int)EventType.RemoveBuff; this.characer = characer; this.buff = buff; }