public bool TestForAttack(GameTime gameTime) { if (selected >= 0 && canAttack[selected] && canAttackThis != null) { if (Armies.army[selected].special != Character.Special.Healer) { for (int i = 0; i < canAttackThis.Count; i++) { Armies.opponentArmy[canAttackThis[i]].sprite.CurrentFrame = 1; } for (int i = 0; i < canAttackThis.Count; i++) { Rectangle hitbox = Armies.opponentArmy[canAttackThis[i]].Hitbox; if (hitbox.Contains(Globals.mouseState.Position)) { statsUI.RemoveCharacter(); Globals.multiplayerConnection.SendFight(selected, canAttackThis[i]); ((GameState)StateManager.GetState(Settings.STATES.Game)).AttackUnit(Armies.army[selected], Armies.opponentArmy[canAttackThis[i]]); canAttack[selected] = false; if (!canMove[selected]) { selected = -1; } return(true); } } } else { for (int i = 0; i < canAttackThis.Count; i++) { Armies.army[canAttackThis[i]].sprite.CurrentFrame = 1; } for (int i = 0; i < canAttackThis.Count; i++) { Rectangle hitbox = Armies.army[canAttackThis[i]].Hitbox; if (hitbox.Contains(Globals.mouseState.Position)) { statsUI.RemoveCharacter(); Globals.multiplayerConnection.SendFight(selected, canAttackThis[i]); ((GameState)StateManager.GetState(1)).AttackUnit(Armies.army[selected], Armies.army[canAttackThis[i]]); canAttack[selected] = false; if (!canMove[selected]) { selected = -1; } return(true); } } } } return(false); }
private void Ready() { statsUI.RemoveCharacter(); Globals.background = background; selectedCharacter.ResetColorEffect(); ((GameState)StateManager.GetState(1)).SetArmy(Armies.army); StateManager.ChangeState(Settings.STATES.MatchFinder); }