private void UpdateAnimation() { //距離でState変更 if (_unitAttacker.IsAttackToTarget(attackTarget)) { currentState = UnitActionState.Attack; } else { currentState = UnitActionState.Move; } _animator.Play(currentState.ToString()); }
/// <summary> /// 单位死亡 /// </summary> public void Die() { this.CurrentHP = 0; this.ActionState = UnitActionState.Dead; ReportDeadToTeam(); }
/// <summary> /// 重置行动状态 /// 如果单位未死亡则重置为待命状态 /// </summary> public virtual void ResetActionState() { if (this.ActionState != UnitActionState.Dead) { this.ActionState = UnitActionState.Ready; } }
/// <summary> /// 玩家单位行动 /// </summary> /// <param name="turn">当前回合数</param> /// <param name="enemy">敌人(怪物队伍)</param> /// <returns>行动日志</returns> public virtual string Action(int turn, Team enemy) { //如已死亡则返回空字符串,否则修改为已行动 if (this.ActionState == UnitActionState.Dead) { return ""; } else { this.ActionState = UnitActionState.Done; } //判断是否符合主动技能发动条件 //todo:技能释放判断 if (false) { //释放主动技能 //return "单位释放技能"; } else { //随机攻击敌人 return RandomAttack(enemy); } //return "单位行动"; }