Ejemplo n.º 1
0
    // 请求购买资源
    public void RequestBuyRes(ResourceType retType, int cost, int resValue)
    {
        PChance data = new PChance();

        data.num       = cost;
        data.priceType = ePriceType.DIAMOND;

        switch (retType)
        {
        case ResourceType.MONEY:
            data.chance = eChance.CHAN_GOLD;
            break;

        case ResourceType.WOOD:
            data.chance = eChance.CHAN_WOOD;
            break;

        case ResourceType.STONE:
            data.chance = eChance.CHAN_STONE;
            break;
        }

        NetworkManager.Instance.Send(eCommand.BUY_CHANCE, data, (buffer) =>
        {
            PChance ret = Net.Deserialize <PChance>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.BUY_CHANCE))
            {
                return;
            }

            switch (ret.chance)
            {
            case eChance.CHAN_GOLD:
                // 购买银两
                Money += ret.num;
                CostMoney(cost, PriceType.GOLD);
                break;

            case eChance.CHAN_WOOD:
                // 购买木材
                Wood += ret.num;
                CostMoney(cost, PriceType.GOLD);
                break;

            case eChance.CHAN_STONE:
                // 购买石材
                Stone += ret.num;
                CostMoney(cost, PriceType.GOLD);
                break;
            }

            EventDispatcher.TriggerEvent(EventID.EVENT_UI_MAIN_REFRESH_VALUE);
        });
    }
Ejemplo n.º 2
0
    // 请求购买攻击次数
    public void RequestBuyAttackChance(int count)
    {
        if (count <= 0)
        {
            return;
        }

        if (UserManager.Instance.Gold < count * GameConfig.PVP_GOLD_PER_ATTACK_COUNT)
        {
            UIUtil.ShowMsgFormat("MSG_CITY_BUILDING_GOLD_LIMIT");
            return;
        }

        PChance data = new PChance();

        data.num       = count;
        data.priceType = ePriceType.DIAMOND;
        data.chance    = eChance.CHAN_ATHLETICS;

        NetworkManager.Instance.Send(eCommand.BUY_CHANCE, data, (buffer) =>
        {
            PChance ret = Net.Deserialize <PChance>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.BUY_CHANCE))
            {
                return;
            }

            switch (ret.chance)
            {
            case eChance.CHAN_ATHLETICS:
                PVPManager.Instance.AttackCount += ret.num;
                UserManager.Instance.CostMoney(GameConfig.PVP_GOLD_PER_ATTACK_COUNT * ret.num, PriceType.GOLD);
                UIManager.Instance.RefreshWindow <UIPVPView>();
                break;
            }

            EventDispatcher.TriggerEvent(EventID.EVENT_UI_MAIN_REFRESH_VALUE);
        });
    }