示例#1
0
    /// <summary>
    /// 获胜后的奖励
    /// </summary>
    private void WinResoult()
    {
        var    bagitems        = ResourceController.Instance.UseBagUItemDict.Keys;
        var    trainer         = context.playerData.scriptableObject;
        var    trainerBagItems = trainer.bagItems;
        int    randomIndex     = RandomService.game.Int(0, bagitems.Count);
        int    i        = 0;
        string itemName = "";

        foreach (var item in bagitems)
        {
            if (i++ == randomIndex)
            {
                itemName = item;
                break;
            }
        }
        if (bagitems.Contains(itemName))
        {
            int itemCount = RandomService.game.Int(1, 5);
            DebugHelper.LogFormat("玩家获得 {0} {1}个", itemName, itemCount);
            trainerBagItems.Add(BagItems.Build(itemName, itemCount));
            context.ReplacePlayerData(trainer);
        }
    }
    public void Initialize()
    {
        string json = null;

        if (File.Exists(ResourceController.Instance.TrainerDataPath.ToString()))
        {
            json = File.ReadAllText(ResourceController.Instance.TrainerDataPath.ToString());
        }

        Trainer trainer = ScriptableObject.CreateInstance <Trainer>();

        if (json != null)
        {
            trainer = JsonConvert.DeserializeObject <Trainer>(json);
        }
        if (null == trainer || null == trainer.pokemons || 0 == trainer.pokemons.Count)
        {
            //如果没有精灵,就给一只皮卡丘和小火龙
            Pokemon Pikaqiu = PokemonFactory.BuildPokemon(25);

            Pokemon Charmander = PokemonFactory.BuildPokemon(4);
            trainer.pokemons = new List <Pokemon>(6)
            {
                Pikaqiu, Charmander
            };
        }
        else
        {
            foreach (Pokemon pokemon in trainer.pokemons)
            {
                new BattlePokemonData(pokemon);
            }
        }
        if (null == trainer || null == trainer.bagItems || 0 == trainer.bagItems.Count)
        {
            //如果道具背包没有物品,给5个精灵球
            trainer.bagItems = new List <BagItems>(24)
            {
                BagItems.Build("精灵球", 5)
            };
        }
        context.ReplacePlayerData(trainer);
    }
示例#3
0
    /// <summary>
    /// 获胜后的奖励
    /// </summary>
    private void WinResoult()
    {
        if (null == bagitems)
        {
            bagitems = ResourceController.Instance.UseBagUItemDict.Keys;
        }
        var    trainerBagItems = trainer.bagItems;
        int    randomIndex     = RandomService.game.Int(0, bagitems.Count);
        int    i        = 0;
        string itemName = "";

        foreach (var item in bagitems)
        {
            if (i++ == randomIndex)
            {
                itemName = item;
                break;
            }
        }
        if (ResourceController.Instance.UseBagUItemDict.ContainsKey(itemName))
        {
            int itemCount = RandomService.game.Int(1, 6);
            DebugHelper.Log(
                new StringBuilder(30)
                .AppendFormat("玩家获得 {0}", itemName)
                .Append(itemCount)
                .Append("个")
                .ToString());

            var item = trainerBagItems.Find(x => x.ItemName == itemName);
            if (null == item)
            {
                trainerBagItems.Add(BagItems.Build(itemName, itemCount));
            }
            else
            {
                item.count += itemCount;
            }
            context.ReplacePlayerData(trainer);
        }
    }