private bool HandleGameplayInputButtons(InputState input, Player cP) { PlayerIndex output; if (input.IsSelect(cP.PI, out output)) { if (cP.selected == false && cP.hover.getOwner() == cP && cP.hover.canAddMove()) { cP.selected = true; cP.origin = cP.hover; } else if (cP.selected == true) { cP.selected = false; if (cP.target == Player.Tgt.Self && cP.hover != cP.origin && cP.origin.canAddMove()) { //cP.origin.transfer(cP.dest); cP.dest = cP.hover; movements.Add(new Movement(cP, cP.origin, cP.dest, Movement.Type.Transfer)); } if (cP.target == Player.Tgt.Enemy && cP.origin.canAddMove()) { //cP.origin.attack(cP.dest); cP.dest = cP.hover; movements.Add(new Movement(cP, cP.origin, cP.dest, Movement.Type.Attack)); } } } else if (input.IsMenuCancel(cP.PI, out output)) { if (cP.selected == true) { cP.selected = false; } else { cP.hover.cancelOutgoing = true; pruneMovements(); } } else if (input.IsScrollLeft(cP.PI)) { cP.decPower(); } else if (input.IsScrollRight(cP.PI)) { cP.incPower(); } else if (input.IsUsePower(cP.PI)) { if (cP.usePower()) { if (cP.curPower == Player.Power.Transfer) transfer(cP); else if (cP.curPower == Player.Power.Reinforce) reinforce(cP); else if (cP.curPower == Player.Power.Invincible) invincible(cP); else if (cP.curPower == Player.Power.Defect) defect(cP, cP.hover); } } else { return false; } return true; }