public WeaponInfo() { foreach (StatusEffectData data in StatusEffectData) { StatusEffects.Add(BattleManager.Instance.GenerateStatusEffect(data)); } }
public override void AssignStatusEffectsOnCombatStart() { StatusEffects.Add(new BlackBishopStatusEffect() { Stacks = 2 }); }
public MonsterStatusEffect UpdateAndGetStatusEffect(ulong address, int index, float maxBuildup, float currentBuildup, float maxDuration, float currentDuration, int timesActivatedCount) { MonsterStatusEffect statusEffect = StatusEffects.SingleOrDefault(collectionStatusEffect => collectionStatusEffect.Index == index); // TODO: check address??? if (statusEffect != null) { //statusEffect.Address = Address; statusEffect.Duration.Max = maxDuration; statusEffect.Duration.Current = currentDuration; statusEffect.Buildup.Max = maxBuildup; statusEffect.Buildup.Current = currentBuildup; statusEffect.TimesActivatedCount = timesActivatedCount; } else { statusEffect = new MonsterStatusEffect(this, address, index, maxBuildup, currentBuildup, maxDuration, currentDuration, timesActivatedCount); statusEffect.Changed += PartOrStatusEffect_Changed; StatusEffects.Add(statusEffect); } statusEffect.NotifyPropertyChanged(nameof(MonsterStatusEffect.IsVisible)); return(statusEffect); }
public override void AssignStatusEffectsOnCombatStart() { StatusEffects.Add(new AppalledStatusEffect { Stacks = 1 }); }
public void ServerAdd(StatusEffect effect, Health inflicter) { effect.Inflicter = inflicter; if (effect.IsInstant) { effect.OnList = this; effect.OnPickup(); effect.OnDrop(); RpcInstantStatusEffect(effect); return; } // Iterate over each effect to see if an effect of the same type is already in the list. for (int i = 0; i < StatusEffects.Count; i++) { if (StatusEffects[i].GetType() == effect.GetType()) { StatusEffects[i].OnEffectAlreadyInList(effect); RpcOnEffectAlreadyInList(i, effect); return; } } StatusEffects.Add(effect); coroutineForEffect.Add(effect, new ExtendedCoroutine(this, DoTick(effect), null, true)); }
public void LoadStatusEffects() { foreach (StatusEffectData data in StatusEffectData) { StatusEffects.Add(BattleManager.Instance.GenerateStatusEffect(data)); } }
public void ApplyStatusEffect(DD4EStatusEffect newStatusEffect) { // Extend the duration of Status Effect with similar effect if (StatusEffects.Exists(s => s.IsSameEffect(newStatusEffect))) { var newDamageEffect = (newStatusEffect as DD4EDamageModifier); if (newDamageEffect != null) { var index = StatusEffects.IndexOf(StatusEffects.Find(s => s.IsSameEffect(newStatusEffect))); if (newDamageEffect.DamageAmount > (StatusEffects[index] as DD4EDamageModifier).DamageAmount) { StatusEffects[index] = newStatusEffect; } } else { var index = StatusEffects.IndexOf(StatusEffects.Find(s => s.IsSameEffect(newStatusEffect))); StatusEffects[index].Duration = newStatusEffect.Duration; } } else { StatusEffects.Add(newStatusEffect); } OnPropertyChanged("StatusEffects"); }
public virtual bool UseItem(string itemName) { var foundItem = Items.FirstOrDefault(i => i.Name.ToLower() == itemName.ToLower()); if (foundItem != null) { if (foundItem is Consumable) { var foundConsumable = (Consumable)foundItem; Console.WriteLine($"{Name} used the {foundConsumable.Name}."); foreach (var statusEffect in foundConsumable.StatusEffects) { StatusEffects.Add(statusEffect); ApplyStatusEffect(statusEffect); } Items.Remove(foundItem); return(true); } else { Console.WriteLine($"{foundItem.Name} is not consumable."); } } else { Console.WriteLine($"{Name} does not have currently have {itemName.IndefiniteArticle().ToLower()} {itemName}."); } return(false); }
public override void AssignStatusEffectsOnCombatStart() { StatusEffects.Add(new EruditionStatusEffect { Stacks = 10 }); }
internal void AddStatusEffect(ElementalBuff elementalBuff) { if (StatusEffects.FindAll(delegate(StatusEffect se) { return(se is ElementalBuff); }).Count == 0) { StatusEffects.Add(elementalBuff); } //elementalBuff.Draw(this); }
public void LoadStatusEffects() { foreach (StatusEffectData data in StatusEffectData) { StatusEffects.Add(BattleManager.Instance.GenerateStatusEffect(data)); Console.WriteLine("Adding status effect:" + data.Name + " to monster:" + Name); } }
public override void AssignStatusEffectsOnCombatStart() { StatusEffects.Add(new CowardiceStatusEffect { Stacks = 4 }); StatusEffects.Add(new FlyingStatusEffect { Stacks = 3 }); }
public void AfflictWithStatusEffect(StatusEffectScriptableObject effectSO, int duration) { if (IsDead) { return; } if (IsImmuneToDebuffs()) { if (effectSO.type == StatusEffectScriptableObject.Type.Disable || effectSO.type == StatusEffectScriptableObject.Type.Poison) { Animator.SetTrigger("Block"); DamageNumberCanvas canva = GameObject.Instantiate(FindObjectOfType <CombatManager>().damageNumberCanvasPrefab).GetComponent <DamageNumberCanvas>(); canva.Display("Immune", Color.magenta); canva.transform.position = transform.position; return; } } StatusEffect.TickTime tickTime = StatusEffect.TickTime.TurnStart; if (FindObjectOfType <CombatManager>().turn == CombatManager.TurnSelection.Enemies) { if (this is PlayerCombatObject) { tickTime = StatusEffect.TickTime.TurnEnd; } } StatusEffect effect = new StatusEffect(effectSO, tickTime, duration); StatusEffects.Add(effect); DamageNumberCanvas canv = GameObject.Instantiate(FindObjectOfType <CombatManager>().damageNumberCanvasPrefab).GetComponent <DamageNumberCanvas>(); canv.Display("Applying: " + effect.data.name, Color.green); canv.transform.position = transform.position; foreach (var behaviour in effect.data.behaviour) { if (effect.tickTime == StatusEffect.TickTime.TurnStart) { OnStartTurn += behaviour.TickPerTurn; } else { OnEndTurn += behaviour.TickPerTurn; } OnAttackedBehaviour += behaviour.OnAttacked; behaviour.OnAfflicted(this); } RefreshUI(); }
private void ParseFieldEffects(List <byte> fileData) { for (int i = 0; i < StatusEffect.FIELD_EFFECTS_PER_ROW; i++) { RegStatusEffect fieldEffect; List <byte> scopedFileData = fileData.Skip(Size).ToList(); List <byte> reducedFileData = scopedFileData.Take(StatusEffect.SIZE).ToList(); fieldEffect = new RegStatusEffect(reducedFileData); StatusEffects.Add(fieldEffect); } }
public override void AssignStatusEffectsOnCombatStart() { // todo StatusEffects.Add(new ArmoredStatusEffect() { Stacks = 2 }); StatusEffects.Add(new AbominationStatusEffect() { Stacks = 2 }); }
public void AddStatusEffect(StatusEffect statusEffect) { if (!HasStatusEffect(statusEffect)) { StatusEffects.Add(statusEffect); if (BattleEntity != null) { ParticleEffect particleEffect = new ParticleEffect(BattleEntity.GetCenter(), Color.White, 10, statusEffect.TextureData, 200.0f, 0.0f, 0.5f, 1.0f, false); particleEffect.DepthOverride = BattleEntity.Position.Y + 5.0f; Scene.AddEntity(particleEffect); } } }
public override void AssignStatusEffectsOnCombatStart() { StatusEffects.Add(new FairyGoldStatusEffect { Stacks = 10 }); StatusEffects.Add(new RustMonsterStatusEffect { Stacks = 3 }); StatusEffects.Add(new SoulSuckerStatusEffect { Stacks = 3 }); }
public void OnDestruction(string destroyerID) { var characterID = this.ID; if (IsRespawnable) { MovementForce = 0; VelocityX = 0; VelocityY = 0; CurrentCharge = 0; IsCharging = false; StatusEffects.Add(new StatusEffect() { Type = Enums.StatusEffectTypes.Dead, Timing = Enums.StatusEffectTiming.Constant, Expiration = DateTime.Now.AddSeconds(5) }); } GameEngine.Current.InputQueue.Enqueue((dbContext) => { var destroyer = dbContext.Characters.Find(destroyerID); var character = dbContext.Characters.Find(characterID); if (!character.IsRespawnable) { dbContext.Characters.Remove(character); dbContext.SaveChanges(); } var gainedEnergy = Math.Round(character.CoreEnergy / destroyer.CoreEnergy) + (Math.Max(0, character.CoreEnergy - destroyer.CoreEnergy)); destroyer.CoreEnergy += gainedEnergy; destroyer.CurrentEnergy += gainedEnergy; destroyer.CurrentWillpower += gainedEnergy; }); GameEngine.Current.GameEvents.Add(new GameEvent() { EventName = "SoulDestroyed", EventData = new Dictionary <string, dynamic>() { { "Color", this.Color }, { "CharacterID", this.ID } }, XCoord = this.XCoord + this.Width / 2, YCoord = this.YCoord + this.Height / 2, ZCoord = this.ZCoord }); }
public Character AddStatusEffect(StatusEffect effect) { return(WithStatusEffects(StatusEffects.Add(effect))); }
public override void AssignStatusEffectsOnCombatStart() { StatusEffects.Add(new DisgracedRookStatusEffect()); }
public override void AssignStatusEffectsOnCombatStart() { StatusEffects.Add(new RedBishopStatusEffect(), 30); }