Ejemplo n.º 1
0
 public float GetTeamCurrentHP(DataConfig.TEAM team)
 {
     if (team == DataConfig.TEAM.MY)
     {
         return(myTeam.GetCurrentHP());
     }
     else if (team == DataConfig.TEAM.FRIEND)
     {
         float hp = 0;
         for (int i = 0; i < friendTeams.Length; ++i)
         {
             if (friendTeams[i] != null)
             {
                 hp += friendTeams[i].GetCurrentHP();
             }
         }
         return(hp);
     }
     else
     {
         float hp = 0;
         for (int i = 0; i < enemyTeams.Length; ++i)
         {
             if (enemyTeams[i] != null)
             {
                 hp += enemyTeams[i].GetCurrentHP();
             }
         }
         return(hp);
     }
 }
Ejemplo n.º 2
0
    public static GameObject CreateBattleUnit(InstanceUnit instUnit, int slotIndex, DataConfig.TEAM teamSide,
                                              COORD location, COORD playerLocation, float rotationDegree)
    {
        DataUnit dataUnit = instUnit.dataUnit;

        string     asset = AppConfig.FOLDER_PROFAB_TANK + "tankPrimitive";     //dataUnit.asset
        GameObject obj   = ResourceHelper.Load(asset);
//		obj.transform.localScale = new Vector3 (2, 2, 2);

        Unit unit = obj.GetComponent <Unit> ();

        unit.transform.Rotate(new Vector3(0, rotationDegree, 0));
//		unit.body.transform.Rotate(new Vector3(0, rotationDegree, 0));
//		unit.launcher.transform.Rotate(new Vector3(0, rotationDegree, 0));

        /*
         * if(teamSide == DataConfig.TEAM.MY)
         * {
         *      unit.body.transform.Rotate(new Vector3(0, 90, 0));
         *      unit.launcher.transform.Rotate(new Vector3(0, 90, 0));
         * }
         * else
         * {
         *      Vector3 o = new Vector3(
         *              playerLocation.x - location.x,
         *              0,
         *              playerLocation.z - location.z);
         *
         *      unit.body.transform.LookAt(unit.body.transform.position + o);
         *      unit.launcher.transform.LookAt(unit.launcher.transform.position + o);
         * }
         */


        Vector3 offset = CalcUnitPosOffset(slotIndex);

        offset = unit.body.transform.TransformDirection(offset);

        Vector2 center = MapGrid.GetTileCenter(location.x, location.z);
        float   x      = center.x + offset.x;
        float   z      = center.y + offset.z;

        float randomRange = 0.5f;

        x += RandomHelper.Range(-randomRange, randomRange);
        z += RandomHelper.Range(-randomRange, randomRange);

        Vector3 fightPos = new Vector3(x, 0, z);

        unit.Init(instUnit, teamSide, fightPos, slotIndex);

        AddUnitToLayer(obj, BattleConfig.LAYER.TANK);
        return(obj);
    }
Ejemplo n.º 3
0
 public List <Unit> GetOpponents(DataConfig.TEAM team)
 {
     if (team == DataConfig.TEAM.ENEMY)
     {
         return(_ourUnits);
     }
     else if (team == DataConfig.TEAM.MY || team == DataConfig.TEAM.FRIEND)
     {
         return(_enemyUnits);
     }
     else
     {
         Assert.assert(false);
         return(null);
     }
 }
Ejemplo n.º 4
0
    public static GameObject[] CreateBattleTeam(InstanceTeam team, DataConfig.TEAM teamSide,
                                                COORD location, COORD playerLocation, float rotationDegree)
    {
        int n = team.units.Length;

        GameObject[] objects = new GameObject[n];

        for (int i = 0; i < n; ++i)
        {
            InstanceUnit unit = team.units[i];
            if (unit != null)
            {
                GameObject obj = CreateBattleUnit(unit, i, teamSide, location, playerLocation, rotationDegree);
                objects[i] = obj;
            }
        }

        return(objects);
    }
Ejemplo n.º 5
0
    public void Init(InstanceUnit unit, DataConfig.TEAM team, Vector3 fightPos, int slotIndex)
    {
        this._unit = unit;
        this._team = team;

        gameObject.transform.position = fightPos;

        _slotIndex = slotIndex;

        if (team == DataConfig.TEAM.ENEMY)
        {
            RenderHelper.ChangeWholeModelColor(gameObject, Color.blue);
        }

        TankSpineAttach spine = GetComponent <TankSpineAttach> ();

        if (spine != null)
        {
            spine.Attach(gameObject, unit.dataUnit.asset);
        }
    }