public override void PreProccess() { // TODO 记下伤害值、异常状态 int damage; ox = Executor.GetCombatX(); oy = Executor.GetCombatY(); dx = (44.0f - Executor.GetCombatX()) / TOTAL_FRAME; dy = (14.0f - Executor.GetCombatY()) / TOTAL_FRAME; for (int i = 0; i < Targets.Count; i++) { FightingCharacter fc = Targets[i]; if (!fc.IsAlive) { continue; } damage = Executor.Attack - fc.Defend; if (damage <= 0) { damage = 1; } damage += (int)(Context.Random.NextDouble() * 3); fc.HP -= damage; RaiseAnimations.Add(new RaiseAnimation(Context, Targets[i].GetCombatX(), Targets[i].GetCombatY(), -damage, 0)); } }
protected override bool UpdateRaiseAnimation(long delta) { if (RaiseAnimations != null) //全体 { if (RaiseAnimations.Count == 0) { return(false); } else { for (int i = 0; i < RaiseAnimations.Count; i++) { if (!RaiseAnimations[i].Update(delta)) { RaiseAnimations.RemoveAt(i); if (RaiseAnimations.Count <= 0) { return(false); } } } return(true); } } return(false); }
public override void PreProccess() { ExecutorX = Executor.GetCombatX(); ExecutorY = Executor.GetCombatY(); // mAni = magic.getMagicAni(); TODO null fix Animation.StartAni(); Animation.SetIteratorNum(2); RaiseAnimations.Add(new RaiseAnimation(Context, 10, 20, 10, 0)); RaiseAnimations.Add(new RaiseAnimation(Context, 30, 10, 10, 0)); }
public override void PreProccess() { ExecutorX = Executor.GetCombatX(); ExecutorY = Executor.GetCombatY(); Animation = _magic.Animation; Animation.StartAni(); Animation.SetIteratorNum(2); RaiseAnimations.Add(new RaiseAnimation(Context, 10, 20, 10, 0)); RaiseAnimations.Add(new RaiseAnimation(Context, 30, 10, 10, 0)); }
public override void PreProccess() { ExecutorX = Executor.GetCombatX(); ExecutorY = Executor.GetCombatY(); Animation = _magic.Animation; Animation.StartAni(); Animation.SetIteratorNum(2); _magic.Use(Executor, Targets); RaiseAnimations.Add(new RaiseAnimation(Context, 10, 10, 10, 0)); RaiseAnimations.Add(new RaiseAnimation(Context, 30, 10, 20, 0 /*FightingCharacter.BUFF_MASK_DU*/)); }
private void UseMagic(FightingCharacter target) { //TODO 处理异常状态 var debuffs = target.DeBuffRound.Clone() as int[]; var oldhp = target.HP; _magic.Use(Attackers[0], target); var damage = oldhp - target.HP; RaiseAnimations.Add(new RaiseAnimation(Context, target.GetCombatX(), target.GetCombatY(), -damage, 0)); }
public override void PreProccess() { // TODO 记下伤害值、异常状态 ExecutorX = Executor.GetCombatX(); ExecutorX = Executor.GetCombatY(); Animation = _hiddenWeapon.Animation; Animation.StartAni(); Animation.SetIteratorNum(2); // TODO effect it RaiseAnimations.Add(new RaiseAnimation(Context, 10, 20, 10, 0)); RaiseAnimations.Add(new RaiseAnimation(Context, 30, 10, 10, 0)); }