public void Notify(WerewolfCommand command, Object p_target, params object[] p_data)
 {
     WerewolfController[] controller_list = GetAllControllers();
     foreach (WerewolfController c in controller_list)
     {
         c.OnNotification(command, p_target, p_data);
     }
 }
Esempio n. 2
0
    private void Awake()
    {
        cmd          = new WerewolfCommand();
        loginView    = FindObjectOfType <Login>().gameObject;
        mainMenu     = FindObjectOfType <MainMenu>().gameObject;
        roleView     = FindObjectOfType <RoleView>().gameObject;
        gamePlayView = FindObjectOfType <MainGame>().gameObject;
        cam          = Camera.main;

        ChangeCamToLogin();
    }
    public void PerFormedActionRequested(long targetId)
    {
        if (targetId == MainApp.model.Player.id)
        {
            //can't performed on self!!!
            //some redish animation
            Debug.Log("Can't performed action on self");
            return;
        }
        else if (currentActionChosen != 0)
        {
            cmd = new WerewolfCommand();
            switch (currentActionChosen)
            {
            case (long)Action.AllAction.DayVote:

                // performed some animation?
                cmd.Action = WerewolfCommand.CommandEnum.Action;
                MainApp.Notify(cmd, MainApp.model, currentActionChosen, targetId);
                break;

            case (long)Action.AllAction.NightVote:

                if (MainApp.model.Player.role.type == RoleType.Wolf)
                {
                    //invalid action
                    //some redish animation
                    Debug.Log("can't nightvote on werwolf");
                }
                else
                {
                    cmd.Action = WerewolfCommand.CommandEnum.Action;
                }
                break;

            default:
                //do some action animation
                cmd.Action = WerewolfCommand.CommandEnum.Action;
                MainApp.Notify(cmd, MainApp.model, currentActionChosen, targetId);
                break;
            }
            Debug.Log("performed action: " + currentActionChosen + "on target: " + targetId);
            MainApp.Notify(cmd, MainApp.model, currentActionChosen, targetId);
        }
    }
Esempio n. 4
0
    public void OnNotification(WerewolfCommand cmd, Object p_target, params object[] p_data)
    {
        switch (cmd.Action)
        {
        case WerewolfCommand.CommandEnum.SignUp:
            MainApp.model.PlayerSignUp((string)p_data[0], (string)p_data[1]);
            break;

        case WerewolfCommand.CommandEnum.LogIn:
            MainApp.model.LoginPlayer((string)p_data[0], (string)p_data[1]);
            break;

        case WerewolfCommand.CommandEnum.SignOut:
            MainApp.model.LogoutPlayer();
            break;

        case WerewolfCommand.CommandEnum.JoinGame:
            MainApp.model.JoinGame();
            break;

        case WerewolfCommand.CommandEnum.RequestUpdate:
            MainApp.model.UpdateGamplay();
            break;

        case WerewolfCommand.CommandEnum.LeaveGame:
            MainApp.model.PlayerLeaveGame();
            break;

        case WerewolfCommand.CommandEnum.Action:
            MainApp.model.PerformAction((long)p_data[0], (long)p_data[1]);
            break;

        case WerewolfCommand.CommandEnum.GetRoleInformation:
            MainApp.model.GetAllRole();
            break;

        case WerewolfCommand.CommandEnum.ChangeServer:
            MainApp.model.ChangeBaseUrl((int)p_data[0]);
            break;
        }
    }