Example #1
0
    public void ReturnToBase(bool successful)
    {
        if (successful)
        {//all enemies defeated
            HomeBase.ResourceConMat += ResourceConMat;
            HomeBase.ResourceGold   += ResourceGold;
            HomeBase.ResourceOre    += ResourceOre;
            HomeBase.BaseWeaponInventory.AddRange(WeaponLoot);
            HomeBase.BaseArmorInventory.AddRange(ArmourLoot);

            for (int i = Friends.Count - 1; i >= 0; i--)
            {
                Character temp = null;
                temp = Friends[i];
                Friends.RemoveAt(i);

                HomeBase.TakeCharacter(temp);
                break;
            }
        }
        else
        {
            if (Friends.Count > 0)
            {//Retreat button hit
                //get survivors out
                for (int i = Friends.Count - 1; i >= 0; i--)
                {
                    Character temp = null;
                    temp = Friends[i];
                    Friends.RemoveAt(i);

                    HomeBase.TakeCharacter(temp);
                    break;
                }
                //take home half the stuff you would have gotten on a victory
                HomeBase.ResourceConMat += ResourceConMat / 2;
                HomeBase.ResourceGold   += ResourceGold / 2;
                HomeBase.ResourceOre    += ResourceOre / 2;
                int removeAmount = WeaponLoot.Count / 2;
                while (removeAmount > 0)
                {
                    WeaponLoot.RemoveAt(Random.Range(0, WeaponLoot.Count - 1));
                    removeAmount--;
                }
                HomeBase.BaseWeaponInventory.AddRange(WeaponLoot);


                removeAmount = ArmourLoot.Count / 2;
                while (removeAmount > 0)
                {
                    ArmourLoot.RemoveAt(Random.Range(0, ArmourLoot.Count - 1));
                    removeAmount--;
                }
                HomeBase.BaseArmorInventory.AddRange(ArmourLoot);
            }
            else
            {//everyone's dead
            }
        }
        //stuff that always happens.
        WeaponLoot.Clear();
        ArmourLoot.Clear();
        ResourceConMat = 0; ResourceGold = 0; ResourceOre = 0;
        foreach (CombatTile CT in BattleFieldTiles)
        {
            CT.ChangeState(0);
        }
        foreach (Character friend in Friends)
        {
            friend.MapPosition = new Vector2Int(-1, -1);
        }
        Foes.Clear();
        HomeBase.OnReturnFromCombat();
        ReturnsToMainBase.Toggle();
    }