/// <summary> /// Readies battlefield between hero and neutral units /// </summary> /// <param name="width">Width of battlefield</param> /// <param name="height">Height of battlefield</param> /// <param name="attacker">Attacking hero</param> /// <param name="defender">Defending units</param> public void beginCombat(int width, int height, Hero attacker, UnitTree defender, bool ai) { Width = width; Height = height; InCombat = true; Canwalk = new int[width, height]; for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { Canwalk[x, y] = MapGenerator.MapMaker.CANWALK; } } BattleField = new BattleField(width, height, attacker, defender, Canwalk); populateField(); populateInitative(attacker, defender); possibleMovement = new PossibleMovement(field, unitsOnField, canwalk, width, height); flipReachableAndAttackable(); this.ai = ai; if (ai) { combatAi = new CombatAi(this, field, unitsOnField, width, height); } }
public void EnemyKilled(CombatAi deadEnemy) { if (enemysAlive.Count == 0) { if (bossRoom) { TierManager.instance.HigherTier(); return; } ClearManager.instance.ExitRoom(); return; } for (int i = 0; i < enemysAlive.Count; i++) { if (enemysAlive[i] == deadEnemy) { enemysAlive.RemoveAt(i); if (enemysAlive.Count == 0) { if (bossRoom) { TierManager.instance.HigherTier(); return; } ClearManager.instance.ExitRoom(); return; } } } }
void Start() { gameObject.layer = LayerMask.NameToLayer(Settings.Instance().gameEntityTag); controller = gameObject.GetComponent <NpcEntityController>(); controller.agent = controller.gameObject.AddComponent <NavMeshAgent>(); controller.agent.updateRotation = false; controller.agent.angularSpeed = 600f; controller.useNavmesh = true; Type type = Type.GetType("LandRush.DefaultCombatAi"); if (type != null) { combatAi = gameObject.AddComponent(type) as CombatAi; } InvokeRepeating("RunAi", 0.01f, NpcManager.instance.npcUpdateInterval); }
void Start() { gameObject.layer = LayerMask.NameToLayer(Settings.Instance().gameEntityTag); controller = gameObject.GetComponent<NpcEntityController>(); controller.agent = controller.gameObject.AddComponent<NavMeshAgent>(); controller.agent.updateRotation = false; controller.agent.angularSpeed = 600f; controller.useNavmesh = true; Type type = Type.GetType("LandRush.DefaultCombatAi"); if (type != null) { combatAi = gameObject.AddComponent(type) as CombatAi; } InvokeRepeating("RunAi", 0.01f, NpcManager.instance.npcUpdateInterval); }