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); }
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)); } }
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; }