예제 #1
0
    public static void AddState(State state)
    {
        switch (state.Type)
        {
        case States.Idle:
            var idle = state as IdleState;
            IdleStates.Add(idle);
            break;

        case States.Build:
            var build = state as BuildState;
            BuildStates.Add(build);
            break;

        case States.Attack:
            var attack = state as AttackState;
            AttackStates.Add(attack);
            break;

        case States.Conquer:
            var conquer = state as ConquerState;
            ConquerStates.Add(conquer);
            break;

        case States.Move:
            var move = state as MoveState;
            MoveStates.Add(move);
            break;
        }
    }
예제 #2
0
    public static void RemoveState(State state)
    {
        switch (state.Type)
        {
        case States.Idle:
            if (IdleStates.Contains(state))
            {
                IdleStates.Remove(state);
            }
            break;

        case States.Build:
            if (BuildStates.Contains(state))
            {
                BuildStates.Remove(state);
            }
            break;

        case States.Attack:
            if (AttackStates.Contains(state))
            {
                AttackStates.Remove(state);
            }
            break;

        case States.Conquer:
            if (ConquerStates.Contains(state))
            {
                ConquerStates.Remove(state);
            }
            break;

        case States.Move:
            if (MoveStates.Contains(state))
            {
                MoveStates.Remove(state);
            }
            break;
        }
    }