Beispiel #1
0
 public virtual void Init(UnitAllegiance NewAllegiance)
 {
     Allegiance   = NewAllegiance;
     CurrentState = UnitStates.sleep;
     GetComponent <MeshRenderer>().material = NewAllegiance == UnitAllegiance.friendly ?  UnitManager.Instance.FriendlyMat : UnitManager.Instance.EnemyMat;
     SetFinalDestination(NewAllegiance == UnitAllegiance.friendly ? GameManager.Instance.EnemyBase.transform.position : GameManager.Instance.FriendlyBase.transform.position);
     SetState(UnitStates.move);
     ColorManager.Instance.SetUnitColors(this);
     HP = MaxHP;
 }
Beispiel #2
0
    public Unit GetNearestUnitOfOtherAllegianceInRange(Vector3 Position, UnitAllegiance Allegiance, float Range)
    {
        Unit  ClosestUnit     = null;
        Unit  TestUnit        = null;
        float CurrentDistance = Mathf.Infinity;
        float TestDistance;

        switch (Allegiance)
        {
        case UnitAllegiance.nil:
            break;

        case UnitAllegiance.friendly:
            for (int i = 0; i < EnemyUnits.Count; i++)
            {
                TestUnit     = EnemyUnits[i];
                TestDistance = Mathf.Abs(Vector3.Distance(Position, TestUnit.transform.position));
                if (TestDistance < Range)
                {
                    if (TestDistance < CurrentDistance)
                    {
                        CurrentDistance = TestDistance;
                        ClosestUnit     = TestUnit;
                    }
                }
            }
            break;

        case UnitAllegiance.enemy:
            for (int i = 0; i < FriendlyUnits.Count; i++)
            {
                TestUnit     = FriendlyUnits[i];
                TestDistance = Mathf.Abs(Vector3.Distance(Position, TestUnit.transform.position));
                if (TestDistance < Range)
                {
                    if (TestDistance < CurrentDistance)
                    {
                        CurrentDistance = TestDistance;
                        ClosestUnit     = TestUnit;
                    }
                }
            }
            break;


        default:
            break;
        }

        return(ClosestUnit);
    }
Beispiel #3
0
    public void ChangeMoney(UnitAllegiance WalletAllegiance, int MoneyDifference)
    {
        switch (WalletAllegiance)
        {
        case UnitAllegiance.friendly:
            PlayerWallet.Gold += MoneyDifference;
            break;

        case UnitAllegiance.enemy:
            EnemyWallet.Gold += MoneyDifference;
            break;

        default:
            break;
        }
    }
Beispiel #4
0
    public void ChangeMoney(Vector3 WorldPos, UnitAllegiance WalletAllegiance, int MoneyDifference)
    {
        switch (WalletAllegiance)
        {
        case UnitAllegiance.friendly:
            PlayerWallet.Gold += MoneyDifference;
            UIManager.Instance.DisplayTextOnScreen(WorldPos, MoneyDifference.ToString(), MoneyDifference > 0 ? Color.yellow : Color.red);
            break;

        case UnitAllegiance.enemy:
            EnemyWallet.Gold += MoneyDifference;
            break;

        default:
            break;
        }
    }