コード例 #1
0
        void AttackNpc(EnemyController ec, eBattleType battletype)
        {
            if (ec != null)
            {
                GameStateLoadGame loadState = GameStateManager.Instance.GetGameState <GameStateLoadGame>();
                if (GameFlowControlManager.Instance != null)
                {
                    // FsmStateAction[] actions = GameFlowControlManager.Instance.m_StateMachine.Fsm.ActiveState.Actions;
                    // if (actions == null)
                    //     return;
                    if (battletype != eBattleType.AllianceCampaignBattle)
                    {
                        // for (int i = 0; i < actions.Length; i++)
                        // {
                        //     if (actions[i] is BaseFlowAction && actions[i].State.Name == "MainLandView")
                        //     {
                        //         Hotfix_LT.Messenger.Raise("AttackEnemyImediatly", ec, battletype);
                        //     }
                        // }

                        if (GameFlowControlManager.Instance.ActiveStateName == "MainLandView")
                        {
                            Hotfix_LT.Messenger.Raise("AttackEnemyImediatly", ec, battletype);
                        }
                    }
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// 根据战斗类型获得可上阵的最大索引,从0开始
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public static int GetTeamMaxIndex(eBattleType type)
        {
            if (type == eBattleType.LegionMercenary)
            {
                return(0);
            }

            if (type == eBattleType.HeroBattle)//英雄交锋只能4个
            {
                return(3);
            }

            int maxIndex = 2;
            int level    = BalanceResourceUtil.GetUserLevel();

            for (int i = 0; i < OpenTeamFuncID.Count; ++i)
            {
                var func = Hotfix_LT.Data.FuncTemplateManager.Instance.GetFunc(OpenTeamFuncID[i]);
                if (func != null && func.IsConditionOK())
                {
                    maxIndex++;
                }
            }
            return(maxIndex);
        }
コード例 #3
0
        public static bool IsIndexVaild(eBattleType type, int index, out int maxIndex, out string message)
        {
            maxIndex = 0;
            message  = "";
            maxIndex = GetTeamMaxIndex(type);

            if (index > maxIndex)
            {
                if (type == eBattleType.HeroBattle || type == eBattleType.LegionMercenary)
                {
                }
                else if (index == 4)
                {
                    message = Hotfix_LT.Data.FuncTemplateManager.Instance.GetFunc(10080).GetConditionStrShort();
                }
                else if (index == 5)
                {
                    message = Hotfix_LT.Data.FuncTemplateManager.Instance.GetFunc(10081).GetConditionStrShort();
                }
                else
                {
                    var func = Hotfix_LT.Data.FuncTemplateManager.Instance.GetFunc(10046);
                    if (!func.IsConditionOK())
                    {
                        message = func.GetConditionStrShort();
                    }
                }
            }

            return(index > maxIndex);
        }
コード例 #4
0
    public void SubtractStatus(eBattleType state, double value)
    {
        value = Math.Round(value);

        switch (state)
        {
        case eBattleType.Attack:
            mPlayerAtk -= value;
            break;

        case eBattleType.Defend:
            mTotalDef -= value;
            break;

        case eBattleType.Heal:
            mTotalHeal -= value;
            break;

        default:
            break;
        }

        mTotalAtk = mPlayerAtk;
        UIController.Instance.ShowTotalStatus(mTotalAtk, mTotalDef, mTotalHeal);
    }
コード例 #5
0
 public void RequestFastCombatTransition(eBattleType battletype, string campaign_name, System.Action <Response> callback)
 {
     EB.Sparx.Request request = m_endPoint.Post("/combat/startFirstCombat");   ///fastcampaign/requestPvECombatTransition
     request.AddData("campaignName", campaign_name);
     request.AddData("isFTE", GuideManager.Instance.GuideState);
     m_endPoint.Service(request, callback);
 }
コード例 #6
0
ファイル: Player.cs プロジェクト: jk-kim113/Project_jk
 public void Initialize(int id, int level, string name, double atk, double def, double heal, double hpmax, double hpcurrent, eBattleType battletype)
 {
     mID    = id;
     mLevel = level;
     mName  = name;
     Renew(atk, def, heal, hpmax, hpcurrent);
     mBattleType = battletype;
 }
コード例 #7
0
ファイル: UIController.cs プロジェクト: jk-kim113/Project_jk
    public void ShowPlayerInfo(eBattleType state, double atk, double def, double heal, double hpCurrent, double hpMax, int conditionCurrent)
    {
        mPlayerInfoObj.SetActive(true);

        mPlayerInfoText[0].text = state.ToString();
        mPlayerInfoText[1].text = "ATK : " + UnitBuilder.GetUnitStr(atk);
        mPlayerInfoText[2].text = "DEF : " + UnitBuilder.GetUnitStr(def);
        mPlayerInfoText[3].text = "HEAL : " + UnitBuilder.GetUnitStr(heal);
        mPlayerInfoText[4].text = string.Format("HP : {0}/{1}", UnitBuilder.GetUnitStr(hpCurrent), UnitBuilder.GetUnitStr(hpMax));
        mPlayerInfoText[5].text = string.Format("Field : {0}", conditionCurrent);
    }
コード例 #8
0
 public override void SetMenuData(object param)
 {
     base.SetMenuData(param);
     if (param != null)
     {
         Hashtable table = param as Hashtable;
         callback    = table["action"] as System.Action;
         isConfirm   = (bool)table["isConfirm"];
         _battleType = (eBattleType)table["battleType"];
     }
 }
コード例 #9
0
 public static string GetCurrentTeamName(eBattleType battle_type = eBattleType.None)
 {
     if (battle_type == eBattleType.None)
     {
         battle_type = BattleReadyHudController.sBattleType;
     }
     if (battle_type == eBattleType.ArenaBattle)
     {
         return("arena");
     }
     else if (battle_type == eBattleType.ChallengeCampaign)
     {
         return("lt_challenge_camp");
     }
     else if (battle_type == eBattleType.NationBattle)
     {
         string teamName = "nation1";
         if (!DataLookupsCache.Instance.SearchDataByID <string>("combat.useTeam", out teamName))
         {
             Debug.LogError("Not Found NationBattle combat.useTeam ");
         }
         return(teamName);
     }
     else if (battle_type == eBattleType.AllieanceFinalBattle || battle_type == eBattleType.AllieancePreBattle)
     {
         return("awar");
     }
     else if (battle_type == eBattleType.HeroBattle)
     {
         return("lt_coh");
     }
     else if (battle_type == eBattleType.LadderBattle)
     {
         return("ladder_battle");
     }
     else if (battle_type == eBattleType.AlienMazeBattle)
     {
         return("lt_aw_camp");
     }
     else if (battle_type == eBattleType.SleepTower)
     {
         return("lt_st");
     }
     else if (battle_type == eBattleType.LegionMercenary)
     {
         return("lt_mercenary");
     }
     else
     {
         return(OnGetCurrentTeamName());
     }
 }
コード例 #10
0
ファイル: Player.cs プロジェクト: jk-kim113/Project_jk
    public void NextState()
    {
        mBattleCount++;
        SubtractPlayerState();

        mBattleType++;
        if ((int)mBattleType > 2)
        {
            mBattleType = 0;
        }

        CurrentBattleState(mBattleType);
    }
コード例 #11
0
 public void Show(eBattleType battletype, eCombatOutcome outcome, bool isCampaignFinished)
 {
     if (Instance == null)
     {
         return;
     }
     _isCampaignFinished = isCampaignFinished;
     _battleType         = battletype;
     if (!_isShowingBattleResult)
     {
         RecordBattle(outcome);
         controller.gameObject.CustomSetActive(true);
         EB.Coroutines.Run(ShowOutcome(outcome));
         _isShowingBattleResult = true;
     }
 }
コード例 #12
0
        public void RequestCombatTransition(eBattleType battletype, int sceneid, Vector3 pos, float dir, List <string> enemies, System.Action <Response> callback)
        {
            EB.Sparx.Request request;
            switch (battletype)
            {
            case eBattleType.CampaignBattle:
                request = m_endPoint.Post("/scenes/campaign/requestPvECombatTransition");
                break;

            case eBattleType.HantBattle:
                request = m_endPoint.Post("/scenes/mainland/requestPvECombatTransition");
                break;

            case eBattleType.GhostBattle:
                request = m_endPoint.Post("/specialactivity/startGhostChallenge");
                break;

            case eBattleType.BossBattle:
                request = m_endPoint.Post("/worldboss/startChallenge");
                break;

            case eBattleType.ComboTest:
                request = m_endPoint.Post("/combat/startComboPractice");
                break;

            case eBattleType.AllianceCampaignBattle:
                request = m_endPoint.Post("/allianceCampaign/requestPvECombatTransition");
                break;

            default:
                request = m_endPoint.Post("/scenes/mainland/requestPvECombatTransition");
                break;
            }
            request.AddData("campaignId", sceneid);
            request.AddData("pos", pos.ToString());
            request.AddData("dir", dir);
            if (enemies != null)
            {
                string json = EB.JSON.Stringify(enemies);
                request.AddData("enemyGroup", json);    // fixme
            }
            else
            {
                request.AddData("enemyGroup", null);    // fixme
            }
            m_endPoint.Service(request, callback);
        }
コード例 #13
0
        public void GetEnterVigor(eBattleType battleType, out int discountTime, out int discountVigor, out int norVigor)
        {
            string goodsStr = "";

            switch (battleType)
            {
            // //金币副本
            // case eBattleType.TreasuryBattle:
            //     goodsStr = GetGameConfigStrValue("TreasureCost");
            //     break;
            // //经验副本
            // case eBattleType.ExpSpringBattle:
            //     goodsStr = GetGameConfigStrValue("ExpSpringCost");
            //     break;
            //极限试炼
            case eBattleType.InfiniteChallenge:
                goodsStr = GetGameConfigStrValue("InfiniteChallengeCost");
                break;

            //觉醒副本
            case eBattleType.AwakeningBattle:
                goodsStr = GetGameConfigStrValue("AwakenDungeonCost");
                break;
            }
            string[] tempGoodsStrs = goodsStr.Split(',');
            if (tempGoodsStrs.Length == 3)
            {
                int.TryParse(tempGoodsStrs[0], out discountTime);
                int.TryParse(tempGoodsStrs[1], out discountVigor);
                int.TryParse(tempGoodsStrs[2], out norVigor);
                if (battleType == eBattleType.InfiniteChallenge)
                {
                    discountTime += VIPTemplateManager.Instance.GetTotalNum(VIPPrivilegeKey.InfiDiscountTimes);
                }

                if (battleType == eBattleType.AwakeningBattle)
                {
                    discountTime += VIPTemplateManager.Instance.GetTotalNum(VIPPrivilegeKey.AwakenCampDiscountTimes);
                }
            }
            else
            {
                discountTime  = 0;
                discountVigor = 0;
                norVigor      = 0;
            }
        }
コード例 #14
0
        public void SetData(int lineupIndex, int[] lineupInfo, string lineupType, bool showSavePanel, int battleType, System.Action callback)
        {
            _lineupIndex   = lineupIndex;
            _lineupType    = lineupType;
            _labOrder.text = string.Format("{0}{1}", EB.Localizer.GetString("ID_LINEUP"), lineupIndex + 1);
            _btnSave.gameObject.SetActive(showSavePanel);
            _btnUse.gameObject.SetActive(!showSavePanel);
            _callback   = callback;
            _battleType = (eBattleType)battleType;

            var battleCount = SetData(lineupInfo);

            // 一组阵容中无人出战,屏蔽使用按钮
            if (!showSavePanel && battleCount == 0)
            {
                _btnUse.gameObject.SetActive(false);
            }
        }
コード例 #15
0
        public void AttackEnemyImediatly(EnemyController ec, eBattleType battletype)
        {
            if (SceneLogic.SceneState != SceneLogic.eSceneState.SceneLoop)
            {
                return;
            }

            PlayerController local_player_controller = PlayerManager.LocalPlayerController();

            if (local_player_controller == null)
            {
                return;
            }

            m_EnemiesInCombatRange.Clear();
            m_EnemiesInCombatRange.Add(ec);
            GameObject player = PlayerManager.LocalPlayerGameObject();

            if (battletype == eBattleType.HantBattle)
            {
                MainLandLogic.GetInstance().RequestBountyTaskCombatTransition();
            }
            else if (battletype == eBattleType.GhostBattle)
            {
                //夺宝奇兵 改成通过事件告诉给热更层
                FusionAudio.PostEvent("SFX_CombatView_BattleStart");
                Hotfix_LT.Messenger.Raise <string, string>("LTSpeedSnatchEvent.TouchEnemy", ec.name, MainLandLogic.GetInstance().SceneId.ToString());
            }
            else
            {
                if (ec.name == "EnemySpawns_11")
                {
                    EnemyController emCtrl = MainLandLogic.GetInstance().EnemyControllers["EnemySpawns_11"];
                    MainLandLogic.GetInstance().RequestCombatTransition(eBattleType.BossBattle, player.transform.position, player.transform.rotation, new List <EnemyController> {
                        emCtrl
                    });
                }
                else
                {
                    UIStack.Instance.ShowLoadingScreen(null, false, true);
                    MainLandLogic.GetInstance().RequestCombatTransition(battletype, player.transform.position, player.transform.rotation, m_EnemiesInCombatRange);
                }
            }
        }
コード例 #16
0
ファイル: Player.cs プロジェクト: jk-kim113/Project_jk
    public void CurrentBattleState(eBattleType state)
    {
        switch (state)
        {
        case eBattleType.Attack:
            PlayerController.Instance.TotalStatus(state, mATK);
            break;

        case eBattleType.Defend:
            PlayerController.Instance.TotalStatus(state, mDEF);
            break;

        case eBattleType.Heal:
            PlayerController.Instance.TotalStatus(state, mHEAL);
            break;

        default:
            Debug.LogError("Wrong State : " + state);
            break;
        }
    }
コード例 #17
0
        public override void Awake()
        {
            base.Awake();

            BattleType = eBattleType.TreasuryBattle;

            var t = mDMono.transform;

            VictoryAnimationObj    = t.FindEx("Content/Title").gameObject;
            NameLabel              = t.GetComponent <UILabel>("Content/Text/Name/Num");
            DamageLabel            = t.GetComponent <UILabel>("Content/Text/Damage/Num");
            DamageDescLabel        = t.GetComponent <UILabel>("Content/Text/Damage/Desc");
            RewardLabel            = t.GetComponent <UILabel>("Content/Text/Reward/Num");
            PrivilegeAdditionLabel = t.GetComponent <UILabel>("Content/Privilege");
            GoldSprite             = t.GetComponent <UISprite>("Content/Text/Reward/Gold");
            ExpSprite              = t.GetComponent <UISprite>("Content/Text/Reward/Exp");

            BuddyItemList = new List <UIBuddyShowItem>();
            BuddyItemList.Add(t.GetMonoILRComponent <UIBuddyShowItem>("Content/Heros/Heros_Grid/0_Pos"));
            BuddyItemList.Add(t.GetMonoILRComponent <UIBuddyShowItem>("Content/Heros/Heros_Grid/0_Pos (1)"));
            BuddyItemList.Add(t.GetMonoILRComponent <UIBuddyShowItem>("Content/Heros/Heros_Grid/0_Pos (2)"));
            BuddyItemList.Add(t.GetMonoILRComponent <UIBuddyShowItem>("Content/Heros/Heros_Grid/0_Pos (3)"));
            BuddyItemList.Add(t.GetMonoILRComponent <UIBuddyShowItem>("Content/Heros/Heros_Grid/0_Pos (4)"));
            BuddyItemList.Add(t.GetMonoILRComponent <UIBuddyShowItem>("Content/Heros/Heros_Grid/0_Pos (5)"));

            Grid = t.GetComponent <UIGrid>("Content/Heros/Heros_Grid");

            for (var i = 0; i < Grid.transform.childCount; i++)
            {
                var ts = Grid.transform.GetChild(i).GetComponent <TweenScale>();

                if (ts != null)
                {
                    var buddyBaseStats = ts.transform.GetMonoILRComponent <CamapignVictoryExpDataSet>("BuddyBaseStats");
                    ts.onFinished.Add(new EventDelegate(buddyBaseStats.OnTSFinished));
                }
            }
        }
コード例 #18
0
        public override IEnumerator OnAddToStack()
        {
            Hashtable   ht         = mParam as Hashtable;
            eBattleType battleType = (eBattleType)ht["battleType"];

            if (SceneLogic.BattleType != battleType)
            {
                SceneLogic.BattleType = battleType;
            }
            eCombatOutcome outCome            = (eCombatOutcome)ht["outCome"];
            bool           isCampaignFinished = (bool)ht["campaignFinished"];

            isCombatOut  = (bool)ht["isCombatOut"];
            isFastCombat = EB.Dot.Bool("isFastCombat", ht, false);
            yield return(base.OnAddToStack());

            Show(battleType, outCome, isCampaignFinished);
            if (BattleReadyHudController.ShowMercenary())
            {
                //战斗结束 预先把雇佣的伙伴换下
                LTFormationDataManager.Instance.SetCurTeamMemberData();
            }
        }
コード例 #19
0
 private string GetBattleIsFailedKey(eBattleType type)
 {
     return(string.Format("{0}-{1}-{2}", LoginManager.Instance.LocalUserId.Value, NodeMessageManager.CheckBattleIsFailed, type.ToString()));
 }