/// <summary> /// Load creature effect from <see cref="CardAsset"/> /// </summary> /// <param name="owner">Creature Owner</param> /// <param name="cardAsset">Creature CardAsset</param> private void LoadCreatureEffect(Player owner, CardAsset cardAsset) { if (!string.IsNullOrEmpty(cardAsset.CreatureScriptName)) { _effect = Activator.CreateInstance(Type.GetType(cardAsset.CreatureScriptName), new object[] { owner, this, cardAsset.SpecialCreatureAmount }) as CreatureEffect; _effect.RegisterEventEffect(); } }
public CreatureLogic(Player owner, CardAsset cardAsset) { this.owner = owner; this.cardAsset = cardAsset; uniqueCreatureID = IDFactory.GetUniqueID(); if (cardAsset.creatureScriptName != null && cardAsset.creatureScriptName != "") { effect = System.Activator.CreateInstance(System.Type.GetType(cardAsset.creatureScriptName), new System.Object[] { owner, this, cardAsset.specialCreatureAmount }) as CreatureEffect; // effect.RegisterEventEffect(); } creaturesCreatedThisGame.Add(uniqueCreatureID, this); }
public void Die() { owner.table.CreaturesOnTable.Remove(this); if (effect != null) { effect.WhenACreatureDies(); effect.UnRegisterEventEffect(); effect = null; } new CreatureDieCommand(UniqueCreatureID, owner).AddToQueue(); }
/// <summary> /// When creature dies /// </summary> public void Die() { Owner.table.CreaturesOnTable.Remove(this); if (_effect != null) { _effect.WhenACreatureDies(); _effect.UnRegisterEventEffect(); _effect = null; } new CreatureDieCommand(ID, Owner).AddToQueue(); }
public void Die() { foreach (Table table in owner.tables) { table.CreaturesOnTable.Remove(this); } // cause Deathrattle Effect if (effect != null) { effect.WhenACreatureDies(); effect.UnRegisterEventEffect(); effect = null; } new CreatureDieCommand(UniqueCreatureID, owner).AddToQueue(); }
public CreatureLogic(Player owner, CardAsset ca) { this.ca = ca; baseHealth = ca.MaxHealth; Health = ca.MaxHealth; baseAttack = ca.Attack; attacksForOneTurn = ca.AttacksForOneTurn; if (ca.Charge) { AttacksLeftThisTurn = attacksForOneTurn; } this.owner = owner; UniqueCreatureID = IDFactory.GetUniqueID(); if (ca.CreatureScriptName != null && ca.CreatureScriptName != "") { effect = System.Activator.CreateInstance(System.Type.GetType(ca.CreatureScriptName), new System.Object[] { owner, this, ca.specialCreatureAmount }) as CreatureEffect; effect.RegisterEffect(); } CreaturesCreatedThisGame.Add(UniqueCreatureID, this); }
public void Die() { owner.table.CreaturesOnTable.Remove(this); // cause Deathrattle Effect if (effect != null) { effect.WhenACreatureDies(); effect.UnRegisterEventEffect(); effect = null; } if (this.ca.soundDie) { Vector3 transform = new Vector3(); transform.z = -14; AudioSource.PlayClipAtPoint(this.ca.soundDie, transform); } new CreatureDieCommand(UniqueCreatureID, owner).AddToQueue(); }
public CreatureLogic(Player owner, CardAsset ca) { this.ca = ca; _baseHealth = ca.MaxHealth; Health = ca.MaxHealth; _baseAttack = ca.Attack; _attacksForOneTurn = ca.AttacksForOneTurn; if (ca.Charge) { AttacksLeftThisTurn = _attacksForOneTurn; } Taunt = ca.Taunt; this.owner = owner; UniqueCreatureID = IDFactory.GetUniqueID(); if (!string.IsNullOrEmpty(ca.CreatureScriptName)) { effect = System.Activator.CreateInstance(System.Type.GetType(ca.CreatureScriptName), new System.Object[] { owner, this, ca.SpecialCreatureAmount }) as CreatureEffect; effect.RegisterEventEffect(); } CreaturesCreatedThisGame.Add(UniqueCreatureID, this); }
public CreatureCard(CardEnum cardEnum, string name, int cost, int health, Attack attack, CreatureEffect creatureEffect = null, Ability ability = null, Shield shield = Shield.NONE, bool isLegendary = false, int id = AmaruConstants.AUTO_ID, bool isCloned = false) : base(id, cardEnum, name, cost) { this.Health = health; this.Attack = attack; this.Ability = ability; this.Shield = shield; this.IsLegendary = isLegendary; this.creatureEffect = creatureEffect; this.IsCloned = isCloned; }
public void addEffect(CreatureEffect ef) { effects.Add(ef); }
public void removeEffect(CreatureEffect ef) { effects.Remove(ef); }