public void SetColorMode(Modes newMode)
    {
        // Sets "newMode" to whatever new mode is active
        if (newMode == ColorMode)
        {
            return;
        }

        Debug.Log("From " + ColorMode + " to " + newMode);

        // Stop the current mode, before switching
        GetCurrentMode().Stop();

        ColorMode = newMode;

        // Start the new mode
        GetCurrentMode().Begin();

        PlayerPrefs.SetInt(COLOR_MODE, (int)ColorMode);
        PlayerPrefs.Save();


        if (OnModeChange != null)
        {
            OnModeChange.Invoke(ColorMode);
        }
    }
示例#2
0
    private void ChangeMode(ManipulationMode newMode)
    {
        if (newMode == Mode)
        {
            return;
        }
        var oldMode = Mode;

        Mode = newMode;
        OnModeChange?.Invoke(oldMode, newMode);
        //Debug.Log(newMode);
    }
示例#3
0
        public void Return()
        {
            ShowingSpecific        = false;
            Board.AcceptSelections = true;
            Post.AcceptSelections  = false;
            Board.Fade(1f);
            Post.Fade(0f);
            OnModeChange?.Invoke(0);

            GameFacade.Screens.Tween.To(this, 0.66f, new Dictionary <string, float>()
            {
                { "THeight", 610 }
            }, TweenQuad.EaseOut);
        }
示例#4
0
        public void SelectedPost(BulletinItem item)
        {
            ShowingSpecific        = true;
            Board.AcceptSelections = false;
            Board.Fade(0f);
            Post.AcceptSelections = true;
            Post.SetPost(item);
            Post.Fade(1f);

            OnModeChange?.Invoke((item == null) ? 2 : 1);

            GameFacade.Screens.Tween.To(this, 0.66f, new Dictionary <string, float>()
            {
                { "THeight", 550 }
            }, TweenQuad.EaseOut);
        }
示例#5
0
        internal void PushCommand(Command cmd)
        {
            if (cmd.Source == CommandSource.Client)
            {
                return;
            }

            switch (cmd.Token)
            {
            case "JCH":
            {
                var jch = cmd as Server_JCH_ChannelJoin;

                var character = Connection.GetOrCreateCharacter(jch.Character.Identity);

                if (!_Characters.Contains(character))
                {
                    _Characters.Add(character);
                }

                if (!string.IsNullOrEmpty(jch.Title))
                {
                    _Title = jch.Title;
                    Joined = true;
                }
                else
                {
                    OnUserJoin?.Invoke(this, new ChannelUserEntryEventArgs(this, character, jch));
                }
            }
                return;

            case "LCH":
            {
                var lch = cmd as Server_LCH_ChannelLeave;

                var character = GetCharacter(lch.Character);
                _Characters.Remove(character);

                if (character.Name == Connection.LocalCharacter.Name)
                {
                    Dispose();
                }
                else
                {
                    OnUserLeave?.Invoke(this, new ChannelUserEntryEventArgs(this, character, lch));
                }
            }
                return;

            case "ICH":
            {
                var ich = cmd as Server_ICH_ChannelInitialData;

                _ChannelMode = ich.Mode;
                Joined       = true;

                foreach (var user in ich.Users)
                {
                    var ch = GetCharacter(user.Identity);
                    if (!_Characters.Contains(ch))
                    {
                        _Characters.Add(ch);
                    }
                }
            }
                return;

            case "COL":
            {
                var col = cmd as Server_COL_ChannelGetOPs;

                foreach (var op in col.OPs)
                {
                    if (!string.IsNullOrWhiteSpace(op))
                    {
                        _OPs.Add(GetCharacter(op));
                    }
                }
            }
                return;

            case "CDS":
            {
                var cds = cmd as Server_CDS_ChannelChangeDescription;

                OnDescriptionChange?.Invoke(this, new ChannelEntryEventArgs <string>(this, cds.Description, cds));
                _Description = cds.Description;
            }
                return;

            case "RMO":
            {
                var rmo = cmd as Server_RMO_ChannelSetMode;

                OnModeChange?.Invoke(this, new ChannelEntryEventArgs <ChannelMode>(this, rmo.Mode, rmo));
                _ChannelMode = rmo.Mode;
            }
                return;

            case "CSO":
            {
                var cso = cmd as Server_CSO_ChannelSetOwner;

                OnOwnerChange?.Invoke(this, new ChannelEntryEventArgs <Character>(this, GetCharacter(cso.Character), cso));
                _OwnerName = cso.Character;
            }
                return;

            case "RST":
            {
                var rst = cmd as Server_RST_ChannelSetStatus;

                OnStatusChange?.Invoke(this, new ChannelEntryEventArgs <ChannelStatus>(this, rst.Status, rst));
                _Status = rst.Status;
            }
                return;

            case "COA":
            {
                var coa = cmd as Server_COA_ChannelMakeOP;

                var character = GetCharacter(coa.Character);
                _OPs.Add(character);

                OnOPAdded?.Invoke(this, new ChannelUserEntryEventArgs(this, character, coa));
            }
                return;

            case "COR":
            {
                var cor = cmd as Server_COR_ChannelRemoveOP;

                var character = GetCharacter(cor.Character);
                _OPs.Remove(character);

                OnOPRemoved?.Invoke(this, new ChannelUserEntryEventArgs(this, character, cor));
            }
                return;

            case "CKU":
            {
                var cku = cmd as Server_CKU_ChannelKickCharacter;

                var character = GetCharacter(cku.Character);
                _Characters.Remove(character);

                OnUserKicked?.Invoke(this, new ChannelAdminActionEventArgs(this, character, GetCharacter(cku.OP), cku));
            }
                return;

            case "CBU":
            {
                var cbu = cmd as Server_CBU_ChannelBanCharacter;

                var character = GetCharacter(cbu.Character);
                _Characters.Remove(character);

                _Banlist.Add(character);

                OnUserBanned?.Invoke(this, new ChannelAdminActionEventArgs(this, character, GetCharacter(cbu.OP), cbu));
            }
                return;

            case "CUB":
            {
                var cub = cmd as Server_CUB_ChannelUnbanCharacter;

                var character = GetCharacter(cub.Character);

                _Banlist.Remove(character);

                OnUserUnbanned?.Invoke(this, new ChannelAdminActionEventArgs(this, character, GetCharacter(cub.OP), cub));
            }
                return;

            case "CTU":
            {
                var ctu = cmd as Server_CTU_ChannelTimeoutCharacter;

                var character = GetCharacter(ctu.Character);
                _Characters.Remove(character);

                OnUserTimedout?.Invoke(this, new ChannelAdminActionEventArgs(this, character, GetCharacter(ctu.OP), ctu));
            }
                return;

            case "MSG":
            {
                var msg = cmd as Server_MSG_ChannelChatMessage;
                OnChatMessage?.Invoke(this, new ChannelUserMessageEventArgs(this, GetCharacter(msg.Character), msg.Message, msg));
            } return;

            case "LRP":
            {
                var lrp = cmd as Server_LRP_ChannelLFRPMessage;
                OnLFRPMessage?.Invoke(this, new ChannelUserMessageEventArgs(this, GetCharacter(lrp.Character), lrp.AD, lrp));
            } return;

            case "RLL":
            {
                var rll = cmd as Server_RLL_ChannelRollMessage;
                OnRollMessage?.Invoke(this, new ChannelUserMessageEventArgs(this, GetCharacter(rll.Character), rll.Message, rll));
            } return;

            case "SYS":
            {
                var sys = cmd as Server_SYS_ChatSYSMessage;
                OnSYSMessage?.Invoke(this, new ChannelEntryEventArgs <string>(this, sys.Message, sys));
            } return;
            }
        }
 public void EmitModeChange(ChallengeMode mode)
 {
     OnModeChange?.Invoke(this, new Ps2EventArgs <ChallengeMode>(mode));
 }
示例#7
0
        public virtual void     SetMode(WIMode mode)
        {
            if (mDestroyed)
            {
                return;
            }

            if (!Is(WILoadState.Initialized | WILoadState.PreparingToUnload) || mode == WIMode.None)
            {
                return;
            }

            if (IsTemplate)
            {
                return;
            }

            Props.Local.PreviousMode = Props.Local.Mode;
            Props.Local.Mode         = mode;

            switch (mode)
            {
            case WIMode.World:
                OnSetWorldMode(false);
                break;

            case WIMode.Hidden:
                OnSetHiddenMode();
                break;

            case WIMode.Destroyed:
                OnSetDestroyedMode();
                break;

            case WIMode.Frozen:
                OnSetWorldMode(true);
                break;

            case WIMode.Equipped:
                OnSetEquippedMode();
                break;

            case WIMode.RemovedFromGame:
                StartCoroutine(OnSetRemovedMode());
                break;

            default:
                //stacked, crafting, etc. all handle themselves
                //just set the mode
                break;
            }
            //we don't bother to check if we're already in this mode
            //sometimes calling mode is like a 'reset' button and we
            //don't want to prevent that from happening
            if (mode != WIMode.RemovedFromGame)
            {
                try {
                    OnModeChange.SafeInvoke();
                } catch (Exception e) {
                    Debug.LogError("Exception when changing mode, proceeding normally: " + e.ToString());
                }
            }
        }