/// <summary> /// 使用技能 /// </summary> /// <param name="_playerActor">PlayerActor 实例</param> /// <param name="_myActor">MonsterActor 实例</param> public void UseSkill(PlayerActor _playerActor, MonsterActor _myActor) { Actor target = _playerActor; switch (this.subjectTo) { case Enum.SubjectToEnum.player: target = _playerActor; _playerActor.SanChange(this.sanValue); _playerActor.StaminaChange(this.staminaValue); break; case Enum.SubjectToEnum.enemy: target = _myActor; break; default: break; } if (this.buffId > -1) { BuffCreater.AddBuffToActor(target, this.buffId); } Debug.Log("[Monster Attck]"); }
/// <summary> /// 增加新buff到演员 /// </summary> /// <param name="_actor">Actor 实例</param> /// <param name="_buffId">Buff Id</param> public static void AddBuffToActor(Actor _actor, int _buffId) { Buff theBuff = BuffCreater.Create(_buffId); if (theBuff == null) { return; } _actor.AddBuff(theBuff); }
/// <summary> /// 使用卡牌 /// </summary> /// <param name="_actor">Actor 实例</param> public void UseCard() { // 判断体力是否足够 if (!this.CheckPlayerStamina()) { // todo 提示无法使用的相关动作 return; } // 调用事件 if (this.useCardEvent != null) { this.useCardEvent(); } Actor target = this.subjectTo == Enum.SubjectToEnum.enemy ? ControlManager.instance.monsterActor as Actor : ControlManager.instance.playerActor as Actor; // 向目标施加buff if (this.buffId > -1) { BuffCreater.AddBuffToActor(target, this.buffId); } // 对玩家进行San值变更 ControlManager.instance.playerActor.SanChange(this.sanValue); if (target.id > -1 && this.changeMonsterId == target.id) { this.ChangeCard(this.changeCardId); } // 移除卡牌 如果必要的话 this.RemoveCard(); }