コード例 #1
0
        public void AddVisualModifier(VisualModifierCommand visualModifier)
        {
            if (this is Player)
            {
                var player = this as Player;

                switch (visualModifier.modifier)
                {
                case VisualModifierCommand.INVINCIBILITY:
                    player.Storage.invincibilityEffect     = true;
                    player.Storage.invincibilityEffectTime = DateTime.Now;
                    break;

                case VisualModifierCommand.MIRRORED_CONTROLS:
                    player.Storage.mirroredControlEffect     = true;
                    player.Storage.mirroredControlEffectTime = DateTime.Now;
                    break;

                case VisualModifierCommand.WIZARD_ATTACK:
                    player.Storage.wizardEffect     = true;
                    player.Storage.wizardEffectTime = DateTime.Now;
                    break;
                }
            }

            VisualModifiers.TryAdd(visualModifier.modifier, visualModifier);
            SendCommandToInRangePlayers(visualModifier.writeCommand());

            if (this is Player)
            {
                (this as Player).SendCommand(visualModifier.writeCommand());
            }
        }
コード例 #2
0
        public void AddVisualModifier(short modifier, int attribute, string shipLootId, int count, bool activated)
        {
            if (!VisualModifiers.ContainsKey(modifier))
            {
                var visualModifier = new VisualModifierCommand(Id, modifier, attribute, shipLootId, count, activated);

                VisualModifiers.TryAdd(visualModifier.modifier, visualModifier);

                if (this is Character)
                {
                    SendCommandToInRangePlayers(visualModifier.writeCommand());
                }
                else if (this is Activatable)
                {
                    GameManager.SendCommandToMap(Spacemap.Id, visualModifier.writeCommand());
                }

                if (this is Player player)
                {
                    player.SendCommand(visualModifier.writeCommand());

                    switch (visualModifier.modifier)
                    {
                    case VisualModifierCommand.INVINCIBILITY:
                        player.Invincible = true;
                        player.Storage.invincibilityEffectTime = DateTime.Now;
                        break;

                    case VisualModifierCommand.MIRRORED_CONTROLS:
                        player.Storage.mirroredControlEffect     = true;
                        player.Storage.mirroredControlEffectTime = DateTime.Now;
                        break;

                    case VisualModifierCommand.WIZARD_ATTACK:
                        player.Storage.wizardEffect     = true;
                        player.Storage.wizardEffectTime = DateTime.Now;
                        break;
                    }
                }
            }
        }