예제 #1
0
        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);
        }