public static bool IsNextFrame(RealBattleScript.RealBattleTroops type, ref float infDelta)
    {
        float speedTime = 0;

        switch (type)
        {
        case RealBattleScript.RealBattleTroops.Inf:
            speedTime = InfSpeedTime;
            break;

        case RealBattleScript.RealBattleTroops.CavLeft:
        case RealBattleScript.RealBattleTroops.CavRight:
            speedTime = CavSpeedTime;
            break;

        case RealBattleScript.RealBattleTroops.Art:
            speedTime = ArtSpeedTime;
            break;

        default:
            Debug.Log("error in IsNextFrame in BattleDeltaTimeScript");
            break;
        }

        if (speedTime < infDelta)
        {
            infDelta %= speedTime;
            return(true);
        }

        return(false);
    }
Ejemplo n.º 2
0
    //отрисовывает группу юнитов
    void _drawGroup(RealBattleScript.BattleGroup group,
                    RealBattleScript.RealBattleTroops troop, SkeletonAnimation[] arr)
    {
        for (int i = 0; i < group.GetUnitsCount(); i++)
        {
            //считает нужную пощицию на поле и размер юнита
            //повыше - поменьше, пониже - побольше
            #region SCALE_AND_POSITION
            float half_side = RealBattleInfoScript.GetUnitSide(troop) / 2.0f;
            float left      = group.GetUnit(i).X - half_side - RealBattleInfoScript.FieldLeft;
            float top       = group.GetUnit(i).Y - half_side - RealBattleInfoScript.FieldTop;
            arr[i].transform.position = new Vector3(left, top, 0);
            float scalePer = 1.0f - ((group.GetUnit(i).Y - RealBattleInfoScript.FieldLeft) /
                                     (RealBattleInfoScript.FieldWidth - RealBattleInfoScript.FieldLeft));
            scalePer *= scalePer;
            float scaleFactor = troop == RealBattleScript.RealBattleTroops.Inf ||
                                troop == RealBattleScript.RealBattleTroops.Art ? 5.0f : 3.2f;
            float xScale = scaleFactor * scalePer * (group.IsOne ? 1 : -1);
            float yScale = scaleFactor * scalePer;
            arr[i].transform.localScale = new Vector3(xScale, yScale, 1.0f);
            #endregion

            //выставляет анимацию по информации из логики битвы
            #region ANIM
            RealBattleScript.BattleUnit unit = group.GetUnit(i);
            switch (unit.State)
            {
            case RealBattleScript.UnitStates.Stay:
                SetAnim(arr[i], AnimState.IDLE);
                break;

            case RealBattleScript.UnitStates.MoveOne:
            case RealBattleScript.UnitStates.MoveAll:
                SetAnim(arr[i], AnimState.WALK);
                break;

            case RealBattleScript.UnitStates.Fight:
                if (troop != RealBattleScript.RealBattleTroops.Art)
                {
                    SetAnim(arr[i], AnimState.ATTACK);
                }
                else if (unit.ArtShoot)
                {
                    SetAnim(arr[i], AnimState.BOW_SHOOT, false);
                    arr[i].state.Complete += delegate(Spine.TrackEntry entry)
                    { unit.ArtShoot = false; };
                }
                else
                {
                    SetAnim(arr[i], AnimState.IDLE, true);
                }
                break;
            }
            #endregion
        }
    }
Ejemplo n.º 3
0
    public static float GetSpeed(RealBattleScript.RealBattleTroops type)
    {
        switch (type)
        {
        case RealBattleScript.RealBattleTroops.Inf:
            return(InfSpeed_PerSec);

        case RealBattleScript.RealBattleTroops.CavLeft:
        case RealBattleScript.RealBattleTroops.CavRight:
            return(CavSpeed_PerSec);

        case RealBattleScript.RealBattleTroops.Art:
            return(ArtSpeed_PerSec);

        default:
            Debug.Log("error in GetSpeed in RealBattleInfoScript");
            return(0);
        }
    }
Ejemplo n.º 4
0
    public static float GetUnitSide(RealBattleScript.RealBattleTroops type)
    {
        switch (type)
        {
        case RealBattleScript.RealBattleTroops.Inf:
            return(Inf_UnitSide);

        case RealBattleScript.RealBattleTroops.CavLeft:
        case RealBattleScript.RealBattleTroops.CavRight:
            return(Cav_UnitSide);

        case RealBattleScript.RealBattleTroops.Art:
            return(Art_UnitSide);

        default:
            Debug.Log("error in GetUnitSide in RealBattleInfoScript");
            return(0);
        }
    }