예제 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="PlayerService"/> class.
        /// </summary>
        /// <param name="clientLurker">The lurker.</param>
        public PlayerService(ClientLurker clientLurker)
        {
            if (clientLurker != null)
            {
                this._clientLurker = clientLurker;
                this._clientLurker.PlayerLevelUp += this.Lurker_PlayerLevelUp;
                this._clientLurker.PlayerJoined  += this.AddExternalPlayer;
                this._clientLurker.PlayerLeft    += this.AddExternalPlayer;
            }

            this._playerBank = new PlayerBank();

            if (!File.Exists(this.FilePath))
            {
                using (var file = File.Create(this.FilePath))
                {
                }

                this.Save();
            }
            else
            {
                try
                {
                    this._playerBank.ReadJsonFile(this.FilePath);
                    this.CleanExternalPlayers();
                }
                catch
                {
                    File.Delete(this.FilePath);
                }
            }
        }
예제 #2
0
        public void ClearGoodsAndCurrency()
        {
            foreach (BarterGoods good in PlayerGoods)
            {
                good.Clear();
            }
            foreach (BarterGoods good in CharacterGoods)
            {
                good.Clear();
            }
            if (PlayerBank != null && PlayerGoodsBank != null)
            {
                PlayerBank.Absorb(PlayerGoodsBank);
            }
            if (CharacterBank != null && CharacterGoodsBank != null)
            {
                CharacterBank.Absorb(CharacterGoodsBank);
            }
            PlayerGoodsBank.Clear();
            CharacterGoodsBank.Clear();

            TotalValueCharacterGoods = 0;
            TotalValuePlayerGoods    = 0;
            BaseValueCharacterGoods  = 0;
            BaseValuePlayerGoods     = 0;

            RefreshAction.SafeInvoke();
        }
예제 #3
0
    private void Start()
    {
        //Seeks in the Bank Script the num of coins and Writes in the coins Text space in the top right corner
        Bank = FindObjectOfType <PlayerBank>();
        numOfCoinsText.text = "Coins: " + Bank.numOfPlayerCoins.ToString();

        UpdateTracksImage();
        UpdateCarsImage();
    }
    // Start is called before the first frame update
    void Start()
    {
        bank = PlayerBank.Get(nation);
        col  = GetComponent <Collider>();

        foreach (var t in soldiers)
        {
            t.action = () => { Train(t); };
        }
    }
예제 #5
0
 private void Start()
 {
     bank = PlayerBank.Get(GetComponent <Nation>());
 }
예제 #6
0
 // Use this for initialization
 void Awake()
 {
     instance = this;
 }
예제 #7
0
        protected IEnumerator MakeTradeoverTime()
        {
            Debug.Log("Starting to make trade");
            var loadStart = GUILoading.LoadStart(GUILoading.Mode.SmallInGame);

            while (loadStart.MoveNext())
            {
                yield return(null);
            }
            GUILoading.ActivityInfo = "Making Trade... " + CharacterGoods.Count.ToString() + " character goods going to player";
            //give stuff to player...
            foreach (BarterGoods good in CharacterGoods)
            {
                foreach (KeyValuePair <WIStack, int> goodPair in good)
                {
                    if (goodPair.Key.HasTopItem)
                    {
                        Debug.Log("Adding " + goodPair.Key.TopItem.FileName + " to player inventory...");
                    }
                    var addItem = PlayerInventory.AddItems(goodPair.Key, goodPair.Value);
                    while (addItem.MoveNext())
                    {
                        yield return(null);
                    }
                }
                yield return(null);
            }
            //wait a tick...
            yield return(null);

            //give stuff to character...
            foreach (BarterGoods good in PlayerGoods)
            {
                foreach (KeyValuePair <WIStack, int> goodPair in good)
                {
                    var enumerator = CharacterInventory.AddItems(goodPair.Key, goodPair.Value);
                    while (enumerator.MoveNext())
                    {
                        yield return(null);
                    }
                }
            }
            //TODO determine what counts as a 'successful use'
            BarterManager.Use(true);

            PlayerBank.Absorb(CharacterGoodsBank);
            CharacterBank.Absorb(PlayerGoodsBank);

            ClearGoodsAndCurrency();
            MadeTradeThisSession = true;
            Player.Get.AvatarActions.ReceiveAction(AvatarAction.BarterMakeTrade, WorldClock.AdjustedRealTime);
            var loadFinish = GUILoading.LoadFinish();

            while (loadFinish.MoveNext())
            {
                yield return(null);
            }
            Debug.Log("Finished making trade");
            mMakingTrade = false;
            yield break;
        }