コード例 #1
0
    /// <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);
        }
    }
コード例 #2
0
 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;
             }
         }
     }
 }
コード例 #3
0
        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);
        }
コード例 #4
0
ファイル: Npc.cs プロジェクト: gamemachine/gamemachine
        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);
        }