Ejemplo n.º 1
0
    void SelectItem(Jyx2ItemUI itemUI)
    {
        var item = itemUI.GetItem();

        m_InfoText.text = item.Name + "\n\n" + item.Desc;
        currentItem     = item;
    }
Ejemplo n.º 2
0
    void OnConfirmClick()
    {
        if (curSelectItem == null)
        {
            return;
        }
        int count = curSelectItem.GetBuyCount();

        if (count <= 0)
        {
            return;
        }
        Jyx2ShopItem item    = curShopData.ShopItems[curSelectItem.GetIndex()];
        Jyx2Item     itemCfg = ConfigTable.Get <Jyx2Item>(item.Id);

        if (itemCfg == null)
        {
            return;
        }
        int moneyCost = count * item.Price;

        if (GameRuntimeData.Instance.GetMoney() < moneyCost)
        {
            GameUtil.DisplayPopinfo("银两不够");
            return;
        }
        GameRuntimeData.Instance.AddItem(item.Id, count);
        AddBuyCount(item.Id, count);
        GameUtil.DisplayPopinfo($"获得物品{itemCfg.Name},数量{count}");
        GameRuntimeData.Instance.AddItem(Jyx2Consts.MONEY_ID, -moneyCost);

        RefreshChild();
        RefreshMoney();
    }
Ejemplo n.º 3
0
    public static string GetItemDesText(int itemId)
    {
        Jyx2Item item = ConfigTable.Get <Jyx2Item>(itemId);

        if (item == null)
        {
            GameUtil.LogError("配置表错误,查询不到物品,itemid=" + itemId);
            return("");
        }
        return(GetItemDesText(item));
    }
Ejemplo n.º 4
0
 float castAnimLenght = 0.5f;//使用物品动画时间1s
 public override void OnEnterState()
 {
     currentRole = BattleStateMechine.Instance.CurrentRole;
     currentItem = BattleStateMechine.Instance.CurrentUseItem;
     if (currentRole == null || currentItem == null)
     {
         GameUtil.LogError("使用物品状态错误");
         return;
     }
     UseItem();
 }
Ejemplo n.º 5
0
    /// <summary>
    /// 获取使用物品的需求 //NeedMPType;
    /// </summary>
    /// <param name="item"></param>
    public static Dictionary <int, int> GetUseItemRequire(Jyx2Item item)
    {
        Dictionary <int, int> result = new Dictionary <int, int>();

        if (item.ConditionMp > 0)
        {
            result.Add(15, item.ConditionMp);
        }
        if (item.ConditionAttack > 0)
        {
            result.Add(18, item.ConditionAttack);
        }
        if (item.ConditionQinggong > 0)
        {
            result.Add(3, item.ConditionQinggong);
        }
        if (item.ConditionPoison > 0)
        {
            result.Add(7, item.ConditionPoison);
        }
        if (item.ConditionDePoison > 0)
        {
            result.Add(8, item.ConditionDePoison);
        }
        if (item.ConditionQuanzhang > 0)
        {
            result.Add(9, item.ConditionQuanzhang);
        }
        if (item.ConditionYujian > 0)
        {
            result.Add(10, item.ConditionYujian);
        }
        if (item.ConditionShuadao > 0)
        {
            result.Add(11, item.ConditionShuadao);
        }
        if (item.ConditionQimen > 0)
        {
            result.Add(20, item.ConditionQimen);
        }
        if (item.ConditionIQ > 0)
        {
            result.Add(25, item.ConditionIQ);
        }

        return(result);
    }
Ejemplo n.º 6
0
    //效果
    static string GetEffectText(Jyx2Item item)
    {
        Dictionary <int, int> effects = UIHelper.GetItemEffect(item);
        StringBuilder         sb      = new StringBuilder();

        foreach (var effect in effects)
        {
            if (!GameConst.ProItemDic.ContainsKey(effect.Key.ToString()))
            {
                continue;
            }
            PropertyItem pro       = GameConst.ProItemDic[effect.Key.ToString()];
            string       valueText = effect.Value > 0 ? $"+{effect.Value}" : effect.Value.ToString();
            sb.Append($"{pro.Name}:  {valueText}\n");
        }
        return(sb.ToString());
    }
Ejemplo n.º 7
0
    public void Refresh(Jyx2ShopItem shopItem, int index, int hasBuyNum)
    {
        this.index    = index;
        this.shopItem = shopItem;
        Jyx2Item item = ConfigTable.Get <Jyx2Item>(shopItem.Id);

        if (item == null)
        {
            GameUtil.LogError("查询不到物品配置,id =" + shopItem.Id);
            return;
        }
        Jyx2ResourceHelper.GetItemSprite(int.Parse(item.Id), iconImg);
        desText.text = $"{item.Name}\n价格:{shopItem.Price}";
        leftNum      = shopItem.Count - hasBuyNum;
        leftNum      = Tools.Limit(leftNum, 0, shopItem.Count);
        itemNum.text = leftNum.ToString();
    }
Ejemplo n.º 8
0
    static string GetItemDesText(Jyx2Item item)
    {
        StringBuilder strBuilder = new StringBuilder();

        strBuilder.Append($"<size=35><color=#FFDB00>{item.Name}</color></size>\n");
        strBuilder.Append($"{item.Desc}");

        string effect = GetEffectText(item);

        if (!string.IsNullOrEmpty(effect))
        {
            strBuilder.Append($"\n\n");
            strBuilder.Append("<size=28><color=#FFDB00>效果</color></size>\n");
            strBuilder.Append(effect);
        }

        string useRequire = GetUseRquire(item);

        if (!string.IsNullOrEmpty(useRequire))
        {
            strBuilder.Append($"\n\n");
            strBuilder.Append("<size=28><color=#FFDB00>使用需求</color></size>\n");
            strBuilder.Append(useRequire);
        }

        string output = GetOutPut(item);

        if (!string.IsNullOrEmpty(output))
        {
            strBuilder.Append($"\n\n");
            strBuilder.Append("<size=28><color=#FFDB00>练出</color></size>\n");
            strBuilder.Append(output);
        }

        string needItem = GetNeedItem(item);

        if (!string.IsNullOrEmpty(needItem))
        {
            strBuilder.Append($"\n\n");
            strBuilder.Append("<size=28><color=#FFDB00>需要物品</color></size>\n");
            strBuilder.Append(needItem);
        }

        return(strBuilder.ToString());
    }
Ejemplo n.º 9
0
    //需要物品
    static string GetNeedItem(Jyx2Item item)
    {
        StringBuilder sb = new StringBuilder();

        if (item.GenerateItemNeedExp > 0)
        {
            sb.Append($"练出物品需经验:  {item.GenerateItemNeedExp}\n");
        }
        if (item.GenerateItemNeedCost > 0)
        {
            Jyx2Item cfg = ConfigTable.Get <Jyx2Item>(item.GenerateItemNeedCost);
            if (cfg != null)
            {
                sb.Append($"材料:  {cfg.Name}\n");
            }
        }

        return(sb.ToString());
    }
Ejemplo n.º 10
0
    //使用要求
    static string GetUseRquire(Jyx2Item item)
    {
        Dictionary <int, int> effects = UIHelper.GetUseItemRequire(item);
        StringBuilder         sb      = new StringBuilder();

        if (item.NeedExp > 0)
        {
            sb.Append($"经验:  {item.NeedExp}\n");
        }
        foreach (var effect in effects)
        {
            if (!GameConst.ProItemDic.ContainsKey(effect.Key.ToString()))
            {
                continue;
            }
            PropertyItem pro = GameConst.ProItemDic[effect.Key.ToString()];
            sb.Append($"{pro.Name}:  {effect.Value.ToString()}\n");
        }
        return(sb.ToString());
    }
Ejemplo n.º 11
0
    public override void OnEnterState()
    {
        BattleboxHelper.Instance.HideAllBlocks();
        BattleStateMechine.Instance.BindBattleAction(null);

        m_currentRole = BattleStateMechine.Instance.CurrentRole;
        if (m_currentRole == null)
        {
            GameUtil.LogError("ai当前角色为空");
            return;
        }
        AIManager.Instance.GetAIResult(BattleStateMechine.Instance.CurrentRole, (result) =>
        {
            m_aiResult = result;
            BattleBlockVector MoveTo    = new BattleBlockVector(result.MoveX, result.MoveY);
            BattleBlockVector SkillTo   = new BattleBlockVector(result.AttackX, result.AttackY);
            BattleZhaoshiInstance Skill = result.Zhaoshi;
            Jyx2Item Item = result.Item;
            DoAIAction(MoveTo, SkillTo, Skill, Item);
        });
    }
Ejemplo n.º 12
0
    //产出
    static string GetOutPut(Jyx2Item item)
    {
        List <Jyx2RoleItem> items = item.GenerateItems;

        if (items == null || items.Count <= 0)
        {
            return("");
        }
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < items.Count; i++)
        {
            Jyx2RoleItem tempItem = items[i];
            Jyx2Item     cfg      = ConfigTable.Get <Jyx2Item>(tempItem.Id);
            if (cfg == null)
            {
                continue;
            }
            sb.Append($"{cfg.Name}:  {tempItem.Count}\n");
        }

        return(sb.ToString());
    }
Ejemplo n.º 13
0
 //绑定使用的物品数据
 public void BindItem(Jyx2Item useItem)
 {
     CurrentUseItem = useItem;
 }
Ejemplo n.º 14
0
 void DoAIAction(BattleBlockVector MoveTo, BattleBlockVector SkillTo, BattleZhaoshiInstance Skill, Jyx2Item Item)
 {
     //将ai行为储存
     BattleStateMechine.Instance.BindBattleAction(Skill, SkillTo);
     BattleStateMechine.Instance.BindItem(Item);
     if (MoveTo != null)
     {
         BattleStateMechine.Instance.CurrentToPos = MoveTo;
         BattleStateMechine.Instance.SwitchState(BattleManager.BattleViewStates.Move);
     }
     else
     {
         m_currentRole.View.Idle();
         m_currentRole.OnRest();
         BattleStateMechine.Instance.SwitchState(BattleManager.BattleViewStates.WaitingForNextActiveBattleRole);
     }
 }
Ejemplo n.º 15
0
    /// <summary>
    /// 获取物品的效果 //ChangeMPType
    /// </summary>
    /// <param name="item"></param>
    /// <returns></returns>
    public static Dictionary <int, int> GetItemEffect(Jyx2Item item)
    {
        Dictionary <int, int> result = new Dictionary <int, int>();

        if (item.AddHp != 0)//加血
        {
            result.Add(13, item.AddHp);
        }
        if (item.AddMaxHp != 0)//最大血量
        {
            result.Add(16, item.AddMaxHp);
        }
        if (item.AddMp != 0)//加内力
        {
            result.Add(15, item.AddMp);
        }
        if (item.AddMaxMp != 0)//最大内力
        {
            result.Add(17, item.AddMaxMp);
        }
        if (item.Attack != 0)//攻击
        {
            result.Add(18, item.Attack);
        }
        if (item.Qinggong != 0)//轻功
        {
            result.Add(3, item.Qinggong);
        }
        if (item.Defence != 0)//防御
        {
            result.Add(4, item.Defence);
        }
        if (item.Heal != 0)//医疗
        {
            result.Add(6, item.Heal);
        }
        if (item.UsePoison != 0)//用毒
        {
            result.Add(7, item.UsePoison);
        }
        if (item.DePoison != 0)//解毒
        {
            result.Add(8, item.DePoison);
        }
        if (item.AntiPoison != 0)//抗毒
        {
            result.Add(19, item.AntiPoison);
        }
        if (item.Quanzhang != 0)//拳掌
        {
            result.Add(9, item.Quanzhang);
        }
        if (item.Yujian != 0)//御剑
        {
            result.Add(10, item.Yujian);
        }
        if (item.Shuadao != 0)//耍刀
        {
            result.Add(11, item.Shuadao);
        }
        if (item.Qimen != 0)//奇门
        {
            result.Add(20, item.Qimen);
        }
        if (item.Anqi != 0)//暗器
        {
            result.Add(12, item.Anqi);
        }
        if (item.Wuxuechangshi != 0)//武学常识
        {
            result.Add(21, item.Wuxuechangshi);
        }
        if (item.AttackFreq != 0)//左右互搏
        {
            result.Add(24, item.AttackFreq);
        }
        if (item.AttackPoison != 0)//攻击带毒
        {
            result.Add(23, item.AttackPoison);
        }
        if (item.ChangePoisonLevel != 0)//中毒解毒
        {
            result.Add(26, item.ChangePoisonLevel);
        }


        return(result);
    }
Ejemplo n.º 16
0
 public override void OnLeaveState()
 {
     currentRole = null;
     currentItem = null;
     BattleStateMechine.Instance.BindItem(null);
 }