Пример #1
0
        public static void InitStatEffects()
        {
            StatEffect effect;

            effect                   = new StatEffect();
            effect.Token             = "cold";
            effect.Name              = Inventory.ItemPool[effect.Token].Name;//"Зелье простуды";
            effect.PoisonBuff        = 15;
            effect.Duration          = 3;
            effect.Color             = Color.YellowGreen;
            effect.IsInfective       = true;
            effect.InfectionChance   = 0.75f;
            effect.InfectionMaxStage = 7;
            Effects.Add(effect.Token, effect);

            effect                   = new StatEffect();
            effect.Token             = "weakness";
            effect.Name              = Inventory.ItemPool[effect.Token].Name;
            effect.Duration          = 3;
            effect.DefenceBuff       = -10;
            effect.AttackBuff        = -5;
            effect.Color             = Color.MediumBlue;
            effect.IsInfective       = true;
            effect.InfectionChance   = 0.99f;
            effect.InfectionMaxStage = 12;
            Effects.Add(effect.Token, effect);

            effect                   = new StatEffect();
            effect.Token             = "flu";
            effect.Name              = Inventory.ItemPool[effect.Token].Name;
            effect.Duration          = 3;
            effect.AttackBuff        = -3;
            effect.Color             = Color.Yellow;
            effect.IsInfective       = true;
            effect.InfectionChance   = 0.75f;
            effect.InfectionMaxStage = 4;
            effect.ProcChance        = 0.33f;
            Effects.Add(effect.Token, effect);

            effect                   = new StatEffect();
            effect.Token             = "rabies";
            effect.Name              = Inventory.ItemPool[effect.Token].Name;
            effect.Duration          = 3;
            effect.AttackBuff        = 10;
            effect.Color             = Color.Red;
            effect.IsInfective       = true;
            effect.InfectionChance   = 0.1f;
            effect.InfectionMaxStage = 2;
            effect.ProcChance        = 1f;
            Effects.Add(effect.Token, effect);
        }
Пример #2
0
        public void AddStatEffect(StatEffect effect, int stage)
        {
            if (effect != null)
            {
                foreach (StatEffect myEffect in Effects)
                {
                    if (myEffect.Token == effect.Token)
                    {
                        myEffect.Duration       = effect.Duration;                   // Renewing effect.
                        myEffect.InfectionStage = stage;
                        return;
                    }
                }

                foreach (StatEffect myEffect in NewEffects)
                {
                    if (myEffect.Token == effect.Token)
                    {
                        return;
                    }
                }
                NewEffects.Add(new StatEffect(effect, this, stage));
            }
        }
Пример #3
0
        public StatEffect(StatEffect effect, ArenaObj owner, int stage)
        {
            RegenerationBuff = effect.RegenerationBuff;
            PoisonBuff       = effect.PoisonBuff;

            AttackBuff  = effect.AttackBuff;
            DefenceBuff = effect.DefenceBuff;
            SpeedBuff   = effect.SpeedBuff;
            Duration    = effect.Duration;

            IsInfective     = effect.IsInfective;
            InfectionChance = effect.InfectionChance;

            InfectionStage    = stage;
            InfectionMaxStage = effect.InfectionMaxStage;

            Color = effect.Color;

            Owner = owner;
            Name  = effect.Name;
            Token = effect.Token;

            ProcChance = effect.ProcChance;
        }