public void Apply(GameState gameState, MinionAnimationBatch moveAnim) { for (int Idx = 0; Idx < spawns.Count; ++Idx) { int index = gameState.spawnIndices[Idx]; if (index < spawns[Idx].Count) { MinionType spawntype = spawns[Idx][index]; if (spawntype != null) { if (gameState.getMinionAt(levelType.spawnPoint[Idx]) == null) { gameState.CreateEnemy(spawntype, levelType.spawnPoint[Idx], moveAnim); gameState.spawnIndices[Idx]++; } } else { gameState.spawnIndices[Idx]++; } } } }
public bool CheckAttack(GameState gameState, int bonusDamage, Point attackPos, MinionAnimationBatch attack, MinionAnimationBatch recover) { if (deleted) return false; Minion m = gameState.getMinionAt(attackPos); if (m == null || isEnemy == m.isEnemy || m.stats.health <= 0 || m.stats.hasKeyword(Keyword.attackproof)) return false; Attack(gameState, m, bonusDamage, attack, recover); return true; }