Exemple #1
0
    // 请求攻打城池
    public void RequestAttack(int mapPos, long playerID, bool isNpc, int cost)
    {
        PAttack data = new PAttack();

        data.pos        = new PVector();
        data.pos.x      = mapPos;
        data.pos.y      = (int)(isNpc ? eWorldMapType.NPC_CITY_MAP : eWorldMapType.PLAYER_CITY_MAP);
        data.defenserId = playerID;

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

            BattleManager.Instance.StartBattle(ret.battleId, LogicBattleType.WORLD);

            UserManager.Instance.CostMoney(cost, PriceType.MONEY);
            EventDispatcher.TriggerEvent(EventID.EVENT_UI_MAIN_REFRESH_VALUE);

            // 刷新地图
            // UIManager.Instance.RefreshWindow<UIWorldView>();
        });
    }
Exemple #2
0
    // 请求攻击
    public void RequestAttack(long playerID)
    {
        PAttack data = new PAttack();

        data.defenserId = playerID;
        Net.Send(eCommand.READY_ATHTECLIC_CHALLENGE, data);
    }
Exemple #3
0
 private void Start()
 {
     movementModule  = GetComponent <PMovement>();
     targetingModule = GetComponent <PTargeting>();
     wardModule      = GetComponent <PWard>();
     attackModule    = GetComponent <PAttack>();
     siphonModule    = GetComponent <PSiphon>();
     EnableControls();
 }
 public void attackUpdate(PAttack givAtkScript, PAttSyst givAttackSystem)
 {
     //if (Time.time > nextAttack)
     //{
     attackSprite.transform.localScale = new Vector3(-attackSprite.transform.localScale.x, attackSprite.transform.localScale.y, attackSprite.transform.localScale.z);
     //nextAttack = Time.time + givAttackSystem.attackRate;
     attackSprite.SetActive(true);
     StartCoroutine(attackUpdateVisuals(givAtkScript));
     //}
 }
Exemple #5
0
    // 请求攻打关卡
    public void RequestFight(int levelID)
    {
        Log.Info("RequestFight:  {0}", levelID);
        MissionConstConfig cfg = MissionConstConfigLoader.GetConfig(levelID);

        if (cfg == null)
        {
            return;
        }

        if (UserManager.Instance.SP < cfg.StaminaCost)
        {
            UIUtil.ShowErrMsgFormat("UI_NOT_ENOUGTH_SP");
            return;
        }

        eCommand cmd = eCommand.READY_BT_FUBEN_NORMAL;

        if (cfg.MissionDegree == (int)ChapterType.NORMAL)
        {
            cmd = eCommand.READY_BT_FUBEN_NORMAL;
        }
        else if (cfg.MissionDegree == (int)ChapterType.ELITE)
        {
            cmd = eCommand.READY_BT_FUBEN_ELITE;
        }

        PAttack data = new PAttack();

//        foreach (var item in UserManager.Instance.PVEHeroList) {
//            data.attackerId.Add(item.EntityID);
//        }
//
        if (UserManager.Instance.HeroList.Count <= 0)
        {
            Log.Error("RequestFight error, no hero");
            return;
        }

        for (int i = 0; i < 3; ++i)
        {
            if (i < UserManager.Instance.HeroList.Count)
            {
                data.attackerId.Add(UserManager.Instance.HeroList[i].EntityID);
            }
        }

        data.pos   = new PVector();
        data.pos.x = levelID;

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

            BattleManager.Instance.StartBattle(ret.battleId, LogicBattleType.PVE);
        });
    }
    IEnumerator attackUpdateVisuals(PAttack givAtkScript)
    {
        yield return(new WaitForSeconds(givAtkScript.activeAttackColliderTime));

        attackSprite.SetActive(false);
    }