Пример #1
0
 // activate skill
 public Action(Thing owner, ActivateSkill skill)
 {
     actionType    = ActionType.ActivateSkill;
     this.owner    = owner;
     activateSkill = skill;
     this.skill    = skill;
     actionName    = skill.skillName;
 }
Пример #2
0
    public State ActivateSkill(State currentState, int index)
    {
        Action action    = null;
        var    nextState = currentState;

        if (currentState is AllySelectedState)
        {
            var stateData      = (AllySelectedState)currentState;
            var selectedEntity = stateData.source;
            if (index >= selectedEntity.skills.Count)
            {
                return(currentState);
            }
            var triggeredSkill = selectedEntity.skills[index];

            if (triggeredSkill == stateData.lastActivatedSkill)
            {
                action = new DeactivateSkill(selectedEntity, triggeredSkill);
            }
            else
            {
                action = new ActivateSkill(selectedEntity, triggeredSkill);
                stateData.lastActivatedSkill = triggeredSkill;
            }
        }
        else if (currentState is SelectSkillActivatedState)
        {
            var stateData      = (SelectSkillActivatedState)currentState;
            var selectedEntity = stateData.source;
            if (index >= selectedEntity.skills.Count)
            {
                return(currentState);
            }
            var triggeredSkill = selectedEntity.skills[index];
            action = new DeactivateSkill(selectedEntity, triggeredSkill);
        }

        if (action != null)
        {
            // remove all instances of parent here
            nextState = action.Transition(currentState, parent.tilemap, parent.dialog);
        }

        return(nextState);
    }
 public override void SecondInit()
 {
     Player.Instance.OnPlayCard += UpdateCount;
     activateSkill       = Instantiate(activateSkill);
     activateSkill.owner = owner;
 }