public override void Process(Action _action, Track _track)
        {
            base.Process(_action, _track);
            Player hostPlayer = Singleton <GamePlayerCenter> .instance.GetHostPlayer();

            if (hostPlayer != null && hostPlayer.Captain)
            {
                if (hostPlayer.Captain.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Call)
                {
                    CallActorWrapper callActorWrapper = hostPlayer.Captain.handle.ActorControl as CallActorWrapper;
                    if (callActorWrapper != null && callActorWrapper.hostActor)
                    {
                        callActorWrapper.hostActor.handle.ValueComponent.ChangeGoldCoinInBattle(this.iGoldToAdd, true, false, default(Vector3), false, default(PoolObjHandle <ActorRoot>));
                    }
                }
                else if (hostPlayer.Captain.handle.ValueComponent != null)
                {
                    hostPlayer.Captain.handle.ValueComponent.ChangeGoldCoinInBattle(this.iGoldToAdd, true, false, default(Vector3), false, default(PoolObjHandle <ActorRoot>));
                }
            }
            else if (hostPlayer == null)
            {
                DebugHelper.Assert(false, "invalid host player");
            }
            else if (!hostPlayer.Captain)
            {
                DebugHelper.Assert(false, "invalid host player captain");
            }
            else if (hostPlayer.Captain.handle.ValueComponent == null)
            {
                DebugHelper.Assert(false, "invalid host player captain->valuecomponent");
            }
        }
        private void CaptainHostSwitch(ref PoolObjHandle <ActorRoot> tarActor)
        {
            CallActorWrapper callActorWrapper = tarActor.handle.ActorControl as CallActorWrapper;

            if (callActorWrapper != null)
            {
                callActorWrapper.CaptainHostSwitch();
            }
        }
        private void CallActorGetHostHero(ref PoolObjHandle <ActorRoot> srcActor, ref PoolObjHandle <ActorRoot> tempActor)
        {
            if (!srcActor || srcActor.handle.TheActorMeta.ActorType != ActorTypeDef.Actor_Type_Call)
            {
                return;
            }
            CallActorWrapper callActorWrapper = srcActor.handle.ActorControl as CallActorWrapper;

            if (callActorWrapper != null)
            {
                tempActor = callActorWrapper.GetHostActor();
            }
        }
        private void CaptainCallActorSwitch(ref PoolObjHandle <ActorRoot> tarActor)
        {
            HeroWrapper heroWrapper = tarActor.handle.ActorControl as HeroWrapper;

            if (heroWrapper != null)
            {
                CallActorWrapper callActorWrapper = heroWrapper.GetCallActor().handle.ActorControl as CallActorWrapper;
                if (callActorWrapper != null)
                {
                    callActorWrapper.CaptainCallActorSwitch();
                }
            }
        }
示例#5
0
        public void Enter(Action _action, Track _track)
        {
            PoolObjHandle <ActorRoot> actorHandle = _action.GetActorHandle(this.targetId);

            if (!actorHandle)
            {
                return;
            }
            HeroWrapper heroWrapper = actorHandle.handle.ActorControl as HeroWrapper;

            this.callActor = heroWrapper.GetCallActor();
            CallActorWrapper callActorWrapper = this.callActor.handle.ActorControl as CallActorWrapper;

            if (callActorWrapper != null)
            {
                this.imposterActor = callActorWrapper.GetImposterActor();
            }
            this.EnterImposterMesh(ref this.callActor, ref this.imposterActor);
        }
示例#6
0
        private PoolObjHandle <ActorRoot> SpawnCallActor(Action _action, int configId, ref PoolObjHandle <ActorRoot> tarActor)
        {
            PoolObjHandle <ActorRoot> actorHandle = _action.GetActorHandle(this.objectSpaceId);
            ActorMeta actorMeta  = default(ActorMeta);
            ActorMeta actorMeta2 = actorMeta;

            actorMeta2.ConfigId     = configId;
            actorMeta2.HostConfigId = tarActor.handle.TheActorMeta.ConfigId;
            actorMeta2.ActorType    = ActorTypeDef.Actor_Type_Call;
            actorMeta2.ActorCamp    = tarActor.handle.TheActorMeta.ActorCamp;
            actorMeta2.PlayerId     = tarActor.handle.TheActorMeta.PlayerId;
            actorMeta = actorMeta2;
            VInt3 pos     = VInt3.zero;
            VInt3 forward = tarActor.handle.forward;

            if (actorHandle)
            {
                pos = actorHandle.handle.location;
            }
            else
            {
                pos = tarActor.handle.location;
            }
            PoolObjHandle <ActorRoot> poolObjHandle = Singleton <GameObjMgr> .instance.SpawnCallActorEx(null, ref actorMeta, pos, forward, false, true);

            poolObjHandle.handle.InitActor();
            CallActorWrapper callActorWrapper = poolObjHandle.handle.ActorControl as CallActorWrapper;

            if (callActorWrapper != null)
            {
                callActorWrapper.InitProperty(ref tarActor);
            }
            poolObjHandle.handle.PrepareFight();
            poolObjHandle.handle.StartFight();
            this.SetSoulLevel(ref poolObjHandle, tarActor.handle.ValueComponent.actorSoulLevel);
            if (callActorWrapper != null)
            {
                callActorWrapper.CopyImposterInfo();
            }
            Singleton <GameObjMgr> .instance.AddActor(poolObjHandle);

            return(poolObjHandle);
        }
示例#7
0
        private void DoCheatAction(CTrainingHelper.ECheatAct inAct, CTrainingHelper.EActTarget inTar, int inParam)
        {
            Player hostPlayer = Singleton <GamePlayerCenter> .instance.GetHostPlayer();

            COM_PLAYERCAMP playerCamp     = hostPlayer.PlayerCamp;
            COM_PLAYERCAMP cOM_PLAYERCAMP = (playerCamp == COM_PLAYERCAMP.COM_PLAYERCAMP_1) ? COM_PLAYERCAMP.COM_PLAYERCAMP_2 : COM_PLAYERCAMP.COM_PLAYERCAMP_1;
            COM_PLAYERCAMP inCamp         = (inTar == CTrainingHelper.EActTarget.Hostile) ? cOM_PLAYERCAMP : playerCamp;

            switch (inAct)
            {
            case CTrainingHelper.ECheatAct.LevelUp:
                CTrainingHelper.HeroVisiter(inCamp, inParam, new Action <ActorRoot, int>(CTrainingHelper.LevelUp));
                break;

            case CTrainingHelper.ECheatAct.SetLevel:
                CTrainingHelper.HeroVisiter(inCamp, inParam, new Action <ActorRoot, int>(CTrainingHelper.ResetSkillLevel));
                CTrainingHelper.HeroVisiter(inCamp, inParam, new Action <ActorRoot, int>(CTrainingHelper.SetLevel));
                break;

            case CTrainingHelper.ECheatAct.FullHp:
                CTrainingHelper.HeroVisiter(inCamp, inParam, new Action <ActorRoot, int>(CTrainingHelper.FullHp));
                break;

            case CTrainingHelper.ECheatAct.FullEp:
                CTrainingHelper.HeroVisiter(inCamp, inParam, new Action <ActorRoot, int>(CTrainingHelper.FullEp));
                break;

            case CTrainingHelper.ECheatAct.ToggleInvincible:
            {
                SLevelContext curLvelContext = Singleton <BattleLogic> .instance.GetCurLvelContext();

                bool   arg_F7_0    = curLvelContext != null && curLvelContext.IsMobaMode();
                Player hostPlayer2 = Singleton <GamePlayerCenter> .GetInstance().GetHostPlayer();

                if (hostPlayer2 != null && hostPlayer2.Captain && hostPlayer2.Captain.handle.ActorControl is HeroWrapper)
                {
                    HeroWrapper heroWrapper = (HeroWrapper)hostPlayer2.Captain.handle.ActorControl;
                    heroWrapper.bGodMode = !heroWrapper.bGodMode;
                }
                this.m_invincibleToggleFlag = !this.m_invincibleToggleFlag;
                this.RefreshBtnToggleInvincible();
                break;
            }

            case CTrainingHelper.ECheatAct.ToggleAi:
                CTrainingHelper.HeroVisiter(inCamp, inParam, new Action <ActorRoot, int>(CTrainingHelper.ToggleAi));
                this.m_aiToggleFlag = !this.m_aiToggleFlag;
                this.RefreshBtnToggleAi();
                break;

            case CTrainingHelper.ECheatAct.ToggleSoldier:
                Singleton <BattleLogic> .GetInstance().mapLogic.EnableSoldierRegion(this.m_soldierToggleFlag);

                this.m_soldierToggleFlag = !this.m_soldierToggleFlag;
                this.RefreshBtnToggleSoldier();
                break;

            case CTrainingHelper.ECheatAct.ResetSoldier:
            {
                Singleton <BattleLogic> .instance.mapLogic.ResetSoldierRegion();

                Singleton <BattleLogic> .instance.dynamicProperty.ResetTimer();

                Singleton <GameObjMgr> .GetInstance().KillSoldiers();

                CTrainingHelper.OrganVisiter(COM_PLAYERCAMP.COM_PLAYERCAMP_1, inParam, new Action <ActorRoot, int>(CTrainingHelper.ReviveTower));
                CTrainingHelper.OrganVisiter(COM_PLAYERCAMP.COM_PLAYERCAMP_2, inParam, new Action <ActorRoot, int>(CTrainingHelper.ReviveTower));
                AttackOrder attackOrder = Singleton <BattleLogic> .instance.attackOrder;
                if (attackOrder != null)
                {
                    attackOrder.FightOver();
                    attackOrder.FightStart();
                }
                break;
            }

            case CTrainingHelper.ECheatAct.AddGold:
            {
                SLevelContext curLvelContext2 = Singleton <BattleLogic> .instance.GetCurLvelContext();

                bool   arg_268_0   = curLvelContext2 != null && curLvelContext2.IsMobaMode();
                Player hostPlayer3 = Singleton <GamePlayerCenter> .GetInstance().GetHostPlayer();

                if (hostPlayer3 != null && hostPlayer3.Captain)
                {
                    if (hostPlayer3.Captain.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Call)
                    {
                        CallActorWrapper callActorWrapper = hostPlayer3.Captain.handle.ActorControl as CallActorWrapper;
                        if (callActorWrapper != null && callActorWrapper.hostActor)
                        {
                            callActorWrapper.hostActor.handle.ValueComponent.ChangeGoldCoinInBattle(1000, true, true, default(Vector3), false, default(PoolObjHandle <ActorRoot>));
                        }
                    }
                    else if (hostPlayer3.Captain.handle.ValueComponent != null)
                    {
                        hostPlayer3.Captain.handle.ValueComponent.ChangeGoldCoinInBattle(1000, true, true, default(Vector3), false, default(PoolObjHandle <ActorRoot>));
                    }
                }
                break;
            }

            case CTrainingHelper.ECheatAct.ToggleZeroCd:
                CTrainingHelper.HeroVisiter(inCamp, inParam, new Action <ActorRoot, int>(CTrainingHelper.ToggleZeroCd));
                this.m_cdToggleFlag = !this.m_cdToggleFlag;
                this.RefreshBtnToggleCd();
                break;
            }
        }
        public static GameObject GetMapGameObject(ActorRoot actor, bool bMiniMap, out UI3DEventCom evtCom)
        {
            evtCom = null;
            float      num        = 1f;
            GameObject gameObject = null;
            string     text       = string.Empty;
            bool       flag       = Singleton <WatchController> .GetInstance().IsWatching ? (actor.TheActorMeta.ActorCamp == COM_PLAYERCAMP.COM_PLAYERCAMP_1) : actor.IsHostCamp();

            MinimapSys theMinimapSys = Singleton <CBattleSystem> .GetInstance().TheMinimapSys;

            if (theMinimapSys == null)
            {
                return(null);
            }
            if (actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero || actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Call)
            {
                if (!flag && actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Call)
                {
                    CallActorWrapper callActorWrapper = actor.ActorControl as CallActorWrapper;
                    if (callActorWrapper != null && !callActorWrapper.IsTrueType)
                    {
                        flag = true;
                    }
                }
                text = (flag ? MiniMapSysUT.Map_HeroAlice_prefab : MiniMapSysUT.Map_HeroEnemy_prefab);
                bool flag2 = actor.TheActorMeta.PlayerId == Singleton <GamePlayerCenter> .GetInstance().HostPlayerId;

                if (flag2)
                {
                    text = MiniMapSysUT.Map_HeroSelf_prefab;
                }
                if (bMiniMap)
                {
                    gameObject = (flag ? theMinimapSys.mmpcHeroBgFrame_Friend : theMinimapSys.mmpcHeroBgFrame_Enemy);
                }
                else
                {
                    gameObject = (flag ? theMinimapSys.bmpcHeroBgFrame_Friend : theMinimapSys.bmpcHeroBgFrame_Enemy);
                }
                if (!bMiniMap)
                {
                    evtCom = new UI3DEventCom();
                    MiniMapSysUT.SetEventComScreenSize(evtCom, 40f, 40f, 1f);
                    MiniMapSysUT.SetMapElement_EventParam(evtCom, actor.IsHostCamp(), MinimapSys.ElementType.Hero, actor.ObjID, (uint)actor.TheActorMeta.ConfigId);
                    theMinimapSys.UI3DEventMgr.Register(evtCom, UI3DEventMgr.EventComType.Hero);
                }
            }
            else if (actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_EYE)
            {
                text       = (flag ? MiniMapSysUT.Map_EyeAlice_prefab : MiniMapSysUT.Map_EyeEnemy_prefab);
                gameObject = (bMiniMap ? theMinimapSys.mmpcEye : theMinimapSys.bmpcEye);
                num        = (bMiniMap ? 0.5f : 1f);
                if (!bMiniMap)
                {
                    evtCom = new UI3DEventCom();
                    MiniMapSysUT.SetEventComScreenSize(evtCom, 30f, 18f, 1f);
                    MiniMapSysUT.SetMapElement_EventParam(evtCom, actor.IsHostCamp(), MinimapSys.ElementType.Eye, actor.ObjID, (uint)actor.TheActorMeta.ConfigId);
                    theMinimapSys.UI3DEventMgr.Register(evtCom, UI3DEventMgr.EventComType.Eye);
                }
            }
            else if (actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Monster)
            {
                byte actorSubType = actor.ActorControl.GetActorSubType();
                if (actorSubType == 2)
                {
                    byte actorSubSoliderType = actor.ActorControl.GetActorSubSoliderType();
                    if (actorSubSoliderType == 8 || actorSubSoliderType == 9 || actorSubSoliderType == 13 || actorSubSoliderType == 7)
                    {
                        return(null);
                    }
                    if (actorSubSoliderType == 11)
                    {
                        text       = MiniMapSysUT.Map_RedBuff_prefab;
                        gameObject = (bMiniMap ? theMinimapSys.mmpcRedBuff : theMinimapSys.bmpcRedBuff);
                        num        = (bMiniMap ? 0.6f : 1f);
                    }
                    else if (actorSubSoliderType == 10)
                    {
                        text       = MiniMapSysUT.Map_BlueBuff_prefab;
                        gameObject = (bMiniMap ? theMinimapSys.mmpcBlueBuff : theMinimapSys.bmpcBlueBuff);
                        num        = (bMiniMap ? 0.6f : 1f);
                    }
                    else
                    {
                        text       = MiniMapSysUT.Map_Jungle_prefab;
                        gameObject = (bMiniMap ? theMinimapSys.mmpcJungle : theMinimapSys.bmpcJungle);
                        num        = (bMiniMap ? 1f : 1.3f);
                    }
                }
                else
                {
                    if (bMiniMap)
                    {
                        gameObject = (flag ? theMinimapSys.mmpcAlies : theMinimapSys.mmpcEnemy);
                    }
                    else
                    {
                        gameObject = (flag ? theMinimapSys.bmpcAlies : theMinimapSys.bmpcEnemy);
                    }
                    text = (flag ? MiniMapSysUT.Map_SoilderAlice_prefab : MiniMapSysUT.Map_SoilderEnemy_prefab);
                    num  = (bMiniMap ? 0.3f : 0.6f);
                    byte actorSubSoliderType2 = actor.ActorControl.GetActorSubSoliderType();
                    if (actorSubSoliderType2 == 16)
                    {
                        text = MiniMapSysUT.Map_Vanguard_prefab;
                        num  = (bMiniMap ? 1f : 1.5f);
                    }
                    if (!bMiniMap)
                    {
                        evtCom = new UI3DEventCom();
                        MiniMapSysUT.SetEventComScreenSize(evtCom, 30f, 18f, 1f);
                        MiniMapSysUT.SetMapElement_EventParam(evtCom, actor.IsHostCamp(), MinimapSys.ElementType.Solider, actor.ObjID, (uint)actor.TheActorMeta.ConfigId);
                        theMinimapSys.UI3DEventMgr.Register(evtCom, UI3DEventMgr.EventComType.Solider);
                    }
                }
            }
            else if (actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Organ)
            {
                if (actor.TheStaticData.TheOrganOnlyInfo.OrganType == 1 || actor.TheStaticData.TheOrganOnlyInfo.OrganType == 4)
                {
                    text       = (flag ? MiniMapSysUT.Map_OrganAlice_prefab : MiniMapSysUT.Map_OrganEnemy_prefab);
                    gameObject = (bMiniMap ? theMinimapSys.mmpcOrgan : theMinimapSys.bmpcOrgan);
                    num        = (bMiniMap ? 0.5f : 1f);
                    if (!bMiniMap)
                    {
                        evtCom = new UI3DEventCom();
                        MiniMapSysUT.SetEventComScreenSize(evtCom, 30f, 32f, 1f);
                        MiniMapSysUT.SetMapElement_EventParam(evtCom, flag, MinimapSys.ElementType.Tower, actor.ObjID, 0u);
                        theMinimapSys.UI3DEventMgr.Register(evtCom, UI3DEventMgr.EventComType.Tower);
                        if (flag)
                        {
                            Singleton <CBattleSystem> .GetInstance().TowerHitMgr.Register(actor.ObjID, (RES_ORGAN_TYPE)actor.TheStaticData.TheOrganOnlyInfo.OrganType);
                        }
                    }
                }
                else
                {
                    if (actor.TheStaticData.TheOrganOnlyInfo.OrganType != 2)
                    {
                        return(null);
                    }
                    text       = (flag ? MiniMapSysUT.Map_BaseAlice_prefab : MiniMapSysUT.Map_BaseEnemy_prefab);
                    gameObject = (bMiniMap ? theMinimapSys.mmpcOrgan : theMinimapSys.bmpcOrgan);
                    num        = (bMiniMap ? 0.5f : 1f);
                    if (!bMiniMap)
                    {
                        evtCom = new UI3DEventCom();
                        MiniMapSysUT.SetEventComScreenSize(evtCom, 30f, 32f, 1f);
                        MiniMapSysUT.SetMapElement_EventParam(evtCom, flag, MinimapSys.ElementType.Base, actor.ObjID, 0u);
                        theMinimapSys.UI3DEventMgr.Register(evtCom, UI3DEventMgr.EventComType.Tower);
                        if (flag)
                        {
                            Singleton <CBattleSystem> .GetInstance().TowerHitMgr.Register(actor.ObjID, (RES_ORGAN_TYPE)actor.TheStaticData.TheOrganOnlyInfo.OrganType);
                        }
                    }
                }
            }
            if (string.IsNullOrEmpty(text) || gameObject == null)
            {
                return(null);
            }
            GameObject gameObject2 = Singleton <CGameObjectPool> .GetInstance().GetGameObject(text, enResourceType.BattleScene);

            if (gameObject2 != null)
            {
                gameObject2.transform.SetParent(gameObject.transform, true);
                gameObject2.transform.localScale    = new Vector3(num, num, 1f);
                gameObject2.transform.localRotation = Quaternion.identity;
                MiniMapSysUT.NativeSizeLize(gameObject2);
            }
            if (actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero || actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Call)
            {
                float num2 = bMiniMap ? (34f * Sprite3D.Ratio()) : (65f * Sprite3D.Ratio());
                MiniMapSysUT.NativeSizeLize(gameObject2, num2, num2);
            }
            return(gameObject2);
        }