コード例 #1
0
 public void NewTurn()
 {
     foreach (SelectableFloor selectableFloor in selectableFloors)
     {
         selectableFloor.blocked = false;
         if (teamMemberTurn > -1)
         {
             if (attackMode)
             {
                 if (selectableFloor.transform.position.x <= squadMembers[teamMemberTurn].transform.position.x + squadMembers[teamMemberTurn].attackRange &&
                     selectableFloor.transform.position.x >= squadMembers[teamMemberTurn].transform.position.x - squadMembers[teamMemberTurn].attackRange &&
                     selectableFloor.transform.position.z <= squadMembers[teamMemberTurn].transform.position.z + squadMembers[teamMemberTurn].attackRange &&
                     selectableFloor.transform.position.z >= squadMembers[teamMemberTurn].transform.position.z - squadMembers[teamMemberTurn].attackRange &&
                     Tools.YZero(selectableFloor.transform.position) != Tools.YZero(squadMembers[teamMemberTurn].transform.position))
                 {
                     selectableFloor.canAttack = true;
                 }
                 else
                 {
                     selectableFloor.canAttack = false;
                 }
                 selectableFloor.canMove = false;
             }
             else
             {
                 if (selectableFloor.transform.position.x <= squadMembers[teamMemberTurn].transform.position.x + squadMembers[teamMemberTurn].moveSpeed &&
                     selectableFloor.transform.position.x >= squadMembers[teamMemberTurn].transform.position.x - squadMembers[teamMemberTurn].moveSpeed &&
                     selectableFloor.transform.position.z <= squadMembers[teamMemberTurn].transform.position.z + squadMembers[teamMemberTurn].moveSpeed &&
                     selectableFloor.transform.position.z >= squadMembers[teamMemberTurn].transform.position.z - squadMembers[teamMemberTurn].moveSpeed &&
                     Tools.YZero(selectableFloor.transform.position) != Tools.YZero(squadMembers[teamMemberTurn].transform.position))
                 {
                     selectableFloor.canMove = true;
                 }
                 else
                 {
                     selectableFloor.canMove = false;
                 }
                 selectableFloor.canAttack = false;
             }
         }
         else
         {
             selectableFloor.canAttack = false;
             selectableFloor.canMove   = false;
         }
     }
     foreach (SquadMember squadMember in squadMembers)
     {
         SelectableFloor under = Array.Find(selectableFloors, p => Tools.YZero(p.transform.position) == Tools.YZero(squadMember.transform.position));
         under.canMove = false;
         under.blocked = true;
     }
     foreach (SquadMember squadMember in squadMembers)
     {
         squadMember.GetComponent <SpriteRenderer>().color = Color.white;
     }
     squadMembers[teamMemberTurn].GetComponent <SpriteRenderer>().color = Color.blue;
 }
コード例 #2
0
 // Update is called once per frame
 void Update()
 {
     foreach (Arbre obstacle in obstacles)
     {
         SelectableFloor under = Array.Find(selectableFloors, p => Tools.YZero(p.transform.position) == Tools.YZero(obstacle.transform.position));
         under.canMove = false;
         under.blocked = true;
     }
 }
コード例 #3
0
ファイル: Enemy.cs プロジェクト: EtienneJavelle/JamAurelien
    private void Start()
    {
        SelectableFloor[] selectableFloors = GameObject.Find("Team").GetComponent <SquadControl>().selectableFloors;
        SelectableFloor   under            = Array.Find(selectableFloors, p => Tools.YZero(p.transform.position) == Tools.YZero(this.transform.position));

        under.canMove = false;
        under.blocked = true;
        under.enemy   = this;
    }
コード例 #4
0
ファイル: Enemies.cs プロジェクト: EtienneJavelle/JamAurelien
 void EndMove()
 {
     foreach (var enemy in enemies)
     {
         foreach (SelectableFloor selectable in selectableFloors)
         {
             SelectableFloor under = Array.Find(selectableFloors, p => Tools.YZero(p.transform.position) == Tools.YZero(enemy.transform.position));
             under.enemy = enemy;
         }
     }
 }
コード例 #5
0
ファイル: Enemies.cs プロジェクト: EtienneJavelle/JamAurelien
    // Start is called before the first frame update
    void Start()
    {
        GameObject u = GameObject.Find("Team");

        squadMembers     = u.GetComponent <SquadControl>().squadMembers;
        selectableFloors = u.GetComponent <SquadControl>().selectableFloors;
        enemies          = this.gameObject.GetComponentsInChildren <Enemy>();
        foreach (Enemy enemy in enemies)
        {
            SelectableFloor under = Array.Find(selectableFloors, p => Tools.YZero(p.transform.position) == Tools.YZero(enemy.transform.position));
            under.canMove = false;
            under.blocked = true;
        }
    }
コード例 #6
0
ファイル: Enemies.cs プロジェクト: EtienneJavelle/JamAurelien
    void MoveEnemy(int dist, Vector3 dir, Enemy enemy)
    {
        dir.y  = .9f;
        dir.x += (int)UnityEngine.Random.Range(-1, 2);
        dir.z += (int)UnityEngine.Random.Range(-1, 2);
        dir.x  = Mathf.Clamp(dir.x, 0, GameObject.Find("Map").GetComponent <MapCreator>().mapSize.x - 1);
        dir.z  = Mathf.Clamp(dir.z, 0, GameObject.Find("Map").GetComponent <MapCreator>().mapSize.y - 1);

        foreach (SelectableFloor selectable in selectableFloors)
        {
            SelectableFloor under = Array.Find(selectableFloors, p => Tools.YZero(p.transform.position) == Tools.YZero(enemy.transform.position));
            under.enemy = null;
        }
        enemies[enemyturn].transform.DOMove(dir, .4f, false);
    }