Esempio n. 1
0
 public void CharacterClicked(MySpace.CharacterController characterCtr)
 {
     if (userGUI.status == -1 || userGUI.status == 1)
     {
         return;
     }
     if (characterCtr.character.OnBoat)
     {
         CoastController tempCoast = (boatCtr.boat.location == Location.right ? rightCoastCtr : leftCoasrCtr);
         boatCtr.GetOffBoat(characterCtr.character.Name);
         characterCtr.MoveTo(tempCoast.GetEmptyPosition());
         characterCtr.GetOnCoast(tempCoast);
         tempCoast.GetOnCoast(characterCtr);
     }
     else
     {
         CoastController tempCoast = characterCtr.character.coast;
         if (tempCoast.coast.location != boatCtr.boat.location)
         {
             return;                                                    //不再同一边的人上不去
         }
         if (boatCtr.GetEmptyIndex() == -1)
         {
             return;                               //船上没人
         }
         tempCoast.GetOffCoast(characterCtr.character.Name);
         characterCtr.MoveTo(boatCtr.GetEmptyPosition());
         characterCtr.GetOnBoat(boatCtr);
         boatCtr.GetOnBoat(characterCtr);
     }
     userGUI.status = CheckGameOver();
 }
Esempio n. 2
0
 public void CharacterClicked(MyNamespace.CharacterController characterCtrl)
 {
     if (characterCtrl.character.IsOnBoat)
     {
         CoastController tempCoast = (boatCtrl.boat.Location == Location.right ? rightCoastCtrl : leftCoastCtrl);
         boatCtrl.GetOffBoat(characterCtrl.character.Name);
         actionManager.MoveCharacter(characterCtrl, tempCoast.GetEmptyPosition());
         characterCtrl.GetOnCoast(tempCoast);
         tempCoast.GetOnCoast(characterCtrl);
     }
     else
     {
         CoastController tempCoast = characterCtrl.character.Coast;
         if (tempCoast.coast.Location != boatCtrl.boat.Location)
         {
             return;                                                         // Boat at another side
         }
         if (boatCtrl.GetEmptyIndex() == -1)
         {
             return;                                                         // Boat is full
         }
         tempCoast.GetOffCoast(characterCtrl.character.Name);
         actionManager.MoveCharacter(characterCtrl, boatCtrl.GetEmptyPosition());
         characterCtrl.GetOnBoat(boatCtrl);
         boatCtrl.GetOnBoat(characterCtrl);
     }
     UserGUI.status = CheckGameOver();
 }
Esempio n. 3
0
    public void CharacterIsClicked(CharacterController characterCtrl)
    {
        if (CheckGameOver() == 0)
        {
            if (characterCtrl.IsOnBoat())
            {
                CoastController whichCoast;
                if (boat.Get_end_or_start() == -1)
                { // end->-1; start->1
                    whichCoast = endCoast;
                }
                else
                {
                    whichCoast = startCoast;
                }

                boat.GetOffBoat(characterCtrl.GetName());
                characterCtrl.moveToPosition(whichCoast.GetEmptyPosition());
                //actionManager.MoveCharacter(characterCtrl, whichCoast.GetEmptyPosition());
                characterCtrl.GetOnCoast(whichCoast);
                whichCoast.GetOnCoast(characterCtrl);
            }
            else // character on coast
            {
                CoastController whichCoast = characterCtrl.GetCoastController();

                if (boat.GetEmptyIndex() == -1)
                { // full
                    return;
                }

                if (whichCoast.Get_end_or_start() != boat.Get_end_or_start())
                {
                    return;
                }

                whichCoast.GetOffCoast(characterCtrl.GetName());
                characterCtrl.moveToPosition(boat.GetEmptyPosition());
                //actionManager.MoveCharacter(characterCtrl, boat.GetEmptyPosition());
                characterCtrl.GetOnBoat(boat);
                boat.GetOnBoat(characterCtrl);
            }
        }
        userGUI.status = CheckGameOver();
    }
Esempio n. 4
0
    public void CharacterClicked(MySpace.CharacterController characterCtr)
    {
        if (judgeCtr.Flag == -1 || judgeCtr.Flag == 1)
        {
            return;                                            //lock
        }
        if (characterCtr.character.OnBoat)
        {
            CoastController tempCoast = (boatCtr.boat.location == Location.right ? rightCoastCtr : leftCoasrCtr);
            boatCtr.GetOffBoat(characterCtr.character.Name);
            //characterCtr.MoveTo(tempCoast.GetEmptyPosition());
            actionController.CharacterMove(characterCtr, tempCoast.GetEmptyPosition());

            characterCtr.GetOnCoast(tempCoast);
            tempCoast.GetOnCoast(characterCtr);
        }
        else
        {
            CoastController tempCoast = characterCtr.character.coast;
            if (tempCoast.coast.location != boatCtr.boat.location)
            {
                return;
            }
            if (boatCtr.GetEmptyIndex() == -1)
            {
                return;
            }

            tempCoast.GetOffCoast(characterCtr.character.Name);
            //characterCtr.MoveTo(boatCtr.GetEmptyPosition());
            actionController.CharacterMove(characterCtr, boatCtr.GetEmptyPosition());
            //Debug.Log("boat" + boatCtr.GetEmptyPosition());
            characterCtr.GetOnBoat(boatCtr);
            boatCtr.GetOnBoat(characterCtr);
        }
        userGUI.status = judgeCtr.judgeGameOver();
    }
Esempio n. 5
0
 public void CharacterIsClicked(ICharacterController characterController)
 {
     if (characterController.IsOnBoat())
     {
         CoastController whichCoast;
         if (boat.Get_to_or_from() == -1)             // to -1; from 1
         {
             whichCoast = toCoast;
         }
         else
         {
             whichCoast = fromCoast;
         }
         boat.GetOffBoat(characterController.GetName());
         characterController.MoveToPosition(whichCoast.GetEmptyPosition());
         characterController.GetOnCoast(whichCoast);
         whichCoast.GetOnCoast(characterController);
     }
     else
     {
         CoastController whichCoast = characterController.GetCoastController();
         if (boat.GetEmptyIndex() == -1)
         {
             return;
         }
         if (whichCoast.GetToOrFrom() != boat.Get_to_or_from())
         {
             return;
         }
         whichCoast.GetOffCoast(characterController.GetName());
         characterController.MoveToPosition(boat.GetEmptyPosition());
         characterController.GetOnBoat(boat);
         boat.GetOnBoat(characterController);
     }
     userUI.status = CheckGameOver();
 }