// activate skill public Action(Thing owner, ActivateSkill skill) { actionType = ActionType.ActivateSkill; this.owner = owner; activateSkill = skill; this.skill = skill; actionName = skill.skillName; }
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; }