Пример #1
0
        public GlobalEffect(GlobalEffectType type, float value)
        {
            Type  = type;
            Value = value;

            lastUpdate = DateTime.UtcNow;
        }
Пример #2
0
        public static EffectData GlobalEffectRemovedData(Player player, GlobalEffectType type)
        {
            EffectData geData = new EffectData();

            geData.EffectType      = EffectType.GlobalEffect;
            geData.Data            = new Dictionary <string, object>();
            geData.Data["Target"]  = player.InGameID;
            geData.Data["Type"]    = type;
            geData.Data["Created"] = false;
            return(geData);
        }
Пример #3
0
        private void ProcessGlobalEffect(EffectData effect)
        {
            GlobalEffectType type    = (GlobalEffectType)effect.Data["Type"];
            bool             created = (bool)effect.Data["Created"];
            int   target;
            float value;

            switch (type)
            {
            case GlobalEffectType.Shield:
                PlayerManager.Instance.ActivateShieldEffect(effect);
                break;

            case GlobalEffectType.HealOverTime:
                target = (int)effect.Data["Target"];
                value  = (float)effect.Data["Value"];
                if (created)
                {
                    PlayerManager.Instance.GetPlayerByID(target).HealthPerSecondFromEffect += value;
                }
                else
                {
                    PlayerManager.Instance.GetPlayerByID(target).HealthPerSecondFromEffect -= value;
                }
                break;

            case GlobalEffectType.ManaOverTime:
                target = (int)effect.Data["Target"];
                value  = (float)effect.Data["Value"];
                if (created)
                {
                    PlayerManager.Instance.GetPlayerByID(target).ManaPerSecondFromEffects += value;
                }
                else
                {
                    PlayerManager.Instance.GetPlayerByID(target).ManaPerSecondFromEffects -= value;
                }
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Пример #4
0
        public GlobalEffect(GlobalEffectType type)
        {
            Type = type;

            lastUpdate = DateTime.UtcNow;
        }