public BaseSkillState(SkillList skillList, SkillStruct skillStruct, BaseActor targetActor = null) { m_SkillList = skillList; m_SkillStruct = skillStruct; m_BaseTarget = targetActor; m_SelfActor = m_SkillList.GetComponent <BaseActor>(); }
protected virtual void OnLeaveStopping() { EffectSkill(); SkillStruct nothingDo = new SkillStruct(); nothingDo.type = SkillType.NotReleaseSkill; BaseSkillState nothingToDoState = new BaseSkillState(m_SkillList, nothingDo); owner.SetState(nothingToDoState); }
protected virtual void EnterLostBallance() { SkillStruct lostBallance = new SkillStruct(); lostBallance.type = SkillType.HurtEffect; lostBallance.releaseTime = m_SkillStruct.lostBalanceTime; lostBallance.name = "摔倒"; BaseSkillState lostBallanceState = new BaseSkillState(m_SkillList, lostBallance); owner.SetState(lostBallanceState); }
public void ReleaseSkill(int skillIdx) { if ((m_SkillFsm.curSkillState.skillInfo.type != SkillType.NotReleaseSkill && countTime > 0)) { return; } SkillStruct skillStuct = GetSkill(skillIdx); BaseSkillState newSkillState = null; if (skillStuct.skillClassName == "") { newSkillState = new BaseSkillState(this, skillStuct, m_Target); } else { Assembly assembly = Assembly.GetExecutingAssembly(); // 获取当前程序集 Type GetState = assembly.GetType("GameProject." + skillStuct.skillClassName); newSkillState = (BaseSkillState)Activator.CreateInstance(GetState, new object[] { this, skillStuct, m_Target }); // 创建类的 } m_SkillFsm.SetState(newSkillState); }
public Roll(SkillList skillList, SkillStruct skillStruct, BaseActor targetActor = null) : base(skillList, skillStruct, targetActor) { m_AddedBuff = false; m_RealeaseTimeStamp = Time.time + 0.2f; }