public Minion(MinionType type, Point p, bool isEnemy)
     : base(type, p, isEnemy)
 {
     this.minionId = new MinionId();
     this.mtype = type;
     this.permanentStats = type.stats;
     this.stats = this.permanentStats;
     this.slow_movedHalfWay = false;
 }
 public Minion(Minion basis)
     : base(basis)
 {
     this.minionId = basis.minionId;
     this.mtype = basis.mtype;
     this.permanentStats = basis.permanentStats;
     this.stats = basis.stats;
     this.slow_movedHalfWay = basis.slow_movedHalfWay;
 }
 public void Transform(MinionType newtype, bool isEnemy)
 {
     mtype = newtype;
     type = newtype;
     int damage = stats.maxHealth - stats.health;
     this.permanentStats = mtype.stats;
     this.permanentStats.health = this.permanentStats.maxHealth - damage;
     this.isEnemy = isEnemy;
 }
 public Minion CreateMinion(MinionType type, bool isEnemy, Point p)
 {
     if (!minions.ContainsKey(p))
     {
         Minion spawned = new Minion(type, p, isEnemy);
         minions[p] = spawned;
         if (spawned.spells != null)
             validSpellSets.Add(spawned.spells);
         return spawned;
     }
     return null;
 }
 public void CreateEnemy(MinionType type, Point spawnPoint, MinionAnimationBatch moveAnim)
 {
     Minion spawned = new Minion(type, spawnPoint, true);
     minions[spawnPoint] = spawned;
     moveAnim.AddAnimation(spawned, spawned.drawPos + new Vector2(32.0f, 0.0f), spawned.drawPos);
 }
 public TriggerItem_MinionType(MinionType mtype)
 {
     this.mtype = mtype;
 }
 public static TriggerItem create(MinionType mtype)
 {
     return new TriggerItem_MinionType(mtype);
 }