Example #1
0
    public AIGameState GetSuccessor(AIRawSlimeAction action)
    {
        AIGameState succ          = GetCopy();
        int         actionSlimeId = action.GetMainSlimeId();

        // Aplicamos la accion al sucesor.
        switch (action.GetAction())
        {
        case ActionType.ATTACK:
            succ.Attack(actionSlimeId, action.GetTargetSlimeId());
            break;

        case ActionType.CONQUER:
            succ.Conquer(actionSlimeId, action.GetTileVector());
            break;

        case ActionType.SPLIT:
            succ.Split(actionSlimeId, action.GetTileVector());
            break;

        case ActionType.MOVE:
            succ.Move(actionSlimeId, action.GetTileVector());
            break;

        case ActionType.FUSION:
            succ.Fusion(actionSlimeId, action.GetTargetSlimeId());
            break;

        case ActionType.EAT:
            succ.Eat(actionSlimeId);
            break;
        }


        succ.UpdatePlayers();

        return(succ);
    }