示例#1
0
 /// <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);
 }
示例#3
0
    public void Die()
    {
        owner.table.CreaturesOnTable.Remove(this);

        if (effect != null)
        {
            effect.WhenACreatureDies();
            effect.UnRegisterEventEffect();
            effect = null;
        }

        new CreatureDieCommand(UniqueCreatureID, owner).AddToQueue();
    }
示例#4
0
    /// <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();
    }
示例#5
0
    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();
    }
示例#6
0
 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();
    }
示例#8
0
    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);
    }
示例#9
0
 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;
 }
示例#10
0
 public void addEffect(CreatureEffect ef)
 {
     effects.Add(ef);
 }
示例#11
0
 public void removeEffect(CreatureEffect ef)
 {
     effects.Remove(ef);
 }