コード例 #1
0
    List <EntityBase> GetSkillDamageList(EntityBase entity, SkillDataGenerate skillData)
    {
        CampComponent        acc = entity.GetComp <CampComponent>();
        SkillStatusComponent ssc = entity.GetComp <SkillStatusComponent>();

        List <EntityBase> result = new List <EntityBase>();
        List <EntityBase> list   = GetEntityList(new string[] { "CollisionComponent", "LifeComponent", "CampComponent" });

        SkillUtils.UpdateArea(skillAreaCache, skillData.m_EffectArea, ssc.skillDir.ToVector(), entity);

        Debug.DrawRay(skillAreaCache.position, skillAreaCache.direction, Color.red, 10);

        for (int i = 0; i < list.Count; i++)
        {
            CollisionComponent bcc    = list[i].GetComp <CollisionComponent>();
            CampComponent      bcampc = list[i].GetComp <CampComponent>();
            LifeComponent      lc     = list[i].GetComp <LifeComponent>();

            //Debug.Log("bcampc.creater " + bcampc.creater + " AreaCollideSucceed -->" + skillAreaCache.AreaCollideSucceed(bcc.area));

            if (acc.creater != bcampc.creater &&
                skillAreaCache.AreaCollideSucceed(bcc.area) &&
                lc.Life > 0)
            {
                result.Add(list[i]);
            }
        }

        return(result);
    }
コード例 #2
0
 public override bool checkProceduralPrecondition(GameObject agent, BlackBoard bb)
 {
     CampComponent[] c = bb.GetData("camp") as CampComponent[];
     if (c == null || c.Length <= 0)
     {
         return(false);
     }
     camp   = c[0];
     target = camp.gameObject;
     return(camp != null);
 }
コード例 #3
0
    void CreateFlyObject(SkillDataGenerate skillData, EntityBase skiller)
    {
        CampComponent campComp = skiller.GetComp <CampComponent>();

        //Debug.Log("CreateFlyObject " + skiller.ID + "  " + campComp.creater);

        if (skillData.m_FlyObjectName.Length != 0)
        {
            List <CreatPostionInfo> poss = GetCreatePostionInfos(skillData, skiller, skillData.m_FlyObjectName.Length);

            for (int i = 0; i < poss.Count; i++)
            {
                FlyDataGenerate flyData = DataGenerateManager <FlyDataGenerate> .GetData(skillData.m_FlyObjectName[i]);

                TransfromComponent tc = new TransfromComponent();
                tc.pos = poss[i].m_pos;
                tc.dir = poss[i].m_dir;

                MoveComponent mc = new MoveComponent();
                mc.pos        = poss[i].m_pos;
                mc.dir        = poss[i].m_dir;
                mc.m_velocity = flyData.m_Speed;

                LifeSpanComponent lsc = new LifeSpanComponent();
                lsc.lifeTime = flyData.m_LiveTime;

                AssetComponent ac = new AssetComponent();
                ac.m_assetName = flyData.m_ModelName;

                CampComponent cp = new CampComponent();
                cp.camp    = campComp.camp;
                cp.creater = campComp.creater;

                CollisionComponent cc = new CollisionComponent();
                cc.area.areaType = AreaType.Circle;
                cc.area.radius   = flyData.m_Radius / 1000;

                FlyObjectComponent fc = new FlyObjectComponent();
                fc.createrID   = skiller.ID;
                fc.damage      = skillData.m_FlyDamageValue;
                fc.flyObjectID = skillData.m_FlyObjectName[i];

                string identify = skiller.ID + "FlyObject" + i + poss[i].m_pos;
                m_world.CreateEntity(identify, tc, mc, ac, cp, lsc, cc, fc);
            }
        }
    }
コード例 #4
0
    public static void FlyDamageLogic(WorldBase world, EntityBase fly, EntityBase entity)
    {
        FlyObjectComponent fc       = fly.GetComp <FlyObjectComponent>();
        LifeComponent      lc       = entity.GetComp <LifeComponent>();
        CampComponent      campComp = fly.GetComp <CampComponent>();
        MoveComponent      mc       = fly.GetComp <MoveComponent>();

        //Debug.Log("FlyDamageLogic " + entity.ID + " ===> campComp.creater " + campComp.creater + " " + world.GetEntity(campComp.creater).ID);
        Damage(world, world.GetEntity(campComp.creater), entity, fc.damage);

        //飞行物击飞
        BlowFly(world, fly, entity, fc.FlyData.m_BlowFlyID);

        //飞行物Buff
        AddBuff(world, world.GetEntity(campComp.creater), entity, fc.FlyData.m_HurtBuff);

        //释放触发技能
        //TokenUseSkill(world,campComp.creater,fc.FlyData.m_TriggerSkill, mc.pos.ToVector(),mc.dir.ToVector());
    }
コード例 #5
0
    public void ECSBeRecover(EntityBase entity, params object[] pbjs)
    {
        PerfabComponent pc  = entity.GetComp <PerfabComponent>();
        LifeComponent   lc  = entity.GetComp <LifeComponent>();
        PlayerComponent plc = entity.GetComp <PlayerComponent>();
        CampComponent   cc  = entity.GetComp <CampComponent>();

        UpdateLifeSliderRecover((float)lc.Life / (float)lc.maxLife);
        float recoverNum = lc.Life - n_oldHp;

        if (recoverNum > 0)
        {
            //if ((bool)(args[1]) == false || character.m_camp == Camp.Brave)//怪物的自动回血,不显示
            {
                DisplayNum(lc.Life - n_oldHp, Camp.Brave, TextDisplaySizeType.Middle, TextDisplayStyleType.Recover);
            }
        }
        n_oldHp = lc.Life;
    }
コード例 #6
0
    void SkillLogic(EntityBase entity, int deltaTime)
    {
        SkillStatusComponent ssc = entity.GetComp <SkillStatusComponent>();
        MoveComponent        mc  = entity.GetComp <MoveComponent>();
        CampComponent        cc  = entity.GetComp <CampComponent>();

        if (ssc.m_isHit)
        {
            SkillDataGenerate skillData = ssc.m_currentSkillData.SkillInfo;

            //技能代处理
            SkillUtils.TokenUseSkill(m_world, entity.ID, skillData.m_SkillAgency, mc.pos.ToVector(), ssc.skillDir.ToVector());

            //获取伤害列表
            List <EntityBase> damageList = GetSkillDamageList(entity, skillData);

            //Debug.Log("damageList " + damageList.Count);

            //创建飞行物
            CreateFlyObject(skillData, entity);

            //自身buff
            SkillUtils.AddBuff(m_world, entity, entity, skillData.m_SelfBuff);

            //Debug.Log("SkillLogic hit " + entity.ID + " createrid " + cc.creater + " damageList.Count " + damageList.Count);

            for (int i = 0; i < damageList.Count; i++)
            {
                //伤害处理
                Damage(entity, damageList[i], skillData);

                //击飞处理
                BlowFly(entity, damageList[i], skillData);

                //伤害Buff处理
                DamageBuff(entity, damageList[i], skillData);
            }

            //TODO 恢复
            Recover(entity, entity, skillData);
        }
    }
コード例 #7
0
    void DamageLogic(EntityBase entity)
    {
        CollisionComponent cc  = entity.GetComp <CollisionComponent>();
        FlyObjectComponent fc  = entity.GetComp <FlyObjectComponent>();
        CampComponent      acc = entity.GetComp <CampComponent>();

        if (cc.CollisionList.Count > 0)
        {
            for (int i = 0; i < cc.CollisionList.Count; i++)
            {
                if (cc.CollisionList[i].GetExistComp <LifeComponent>() &&
                    cc.CollisionList[i].GetExistComp <CampComponent>() &&
                    acc.creater != cc.CollisionList[i].GetComp <CampComponent>().creater)
                {
                    //Debug.Log("fly DamageLogic frame-> " + m_world.FrameCount + "  id " + cc.CollisionList[i].ID + " Fly ID " + entity.ID);
                    if (!fc.damageList.Contains(cc.CollisionList[i].ID)) //第一次伤害
                    {
                        SkillUtils.FlyDamageLogic(m_world, entity, cc.CollisionList[i]);
                        fc.damageList.Add(cc.CollisionList[i].ID);
                    }


                    //不能穿人销毁飞行物
                    if (!fc.FlyData.m_AcrossEnemy)
                    {
                        m_world.ClientDestroyEntity(entity.ID);
                    }

                    //Debug.Log("fc.FlyData.m_AcrossEnemy " + fc.FlyData.m_AcrossEnemy);
                }

                if (cc.CollisionList[i].GetExistComp <BlockComponent>())
                {
                    //不能穿墙摧毁飞行物
                    if (fc.FlyData.m_CollisionTrigger)
                    {
                        m_world.ClientDestroyEntity(entity.ID);
                    }
                }
            }
        }
    }
コード例 #8
0
    List <EntityBase> GetSkillDamageList(EntityBase entity, SkillDataGenerate skillData)
    {
        List <EntityBase> result = new List <EntityBase>();
        List <EntityBase> list   = GetEntityList(new string[] { "CollisionComponent", "LifeComponent", "CampComponent" });

        UpdateArea(skillAreaCache, skillData.m_EffectArea, entity);

        for (int i = 0; i < list.Count; i++)
        {
            CollisionComponent bcc = list[i].GetComp <CollisionComponent>();
            CampComponent      cc  = list[i].GetComp <CampComponent>();

            if (skillAreaCache.AreaCollideSucceed(bcc.area) &&
                entity.ID != list[i].ID)
            {
                result.Add(list[i]);
            }
        }

        return(result);
    }
コード例 #9
0
    public static void TokenUseSkill(WorldBase world, int createrID, string skillID, Vector3 pos, Vector3 dir)
    {
        //Debug.Log("TokenUseSkill pos" + pos + " frame " + world.FrameCount + " skillID" + skillID);

        if (skillID != null &&
            skillID != "null" &&
            skillID != "Null")
        {
            SkillStatusComponent ssc = new SkillStatusComponent();
            ssc.m_skillTime      = 0;
            ssc.m_skillStstus    = SkillStatusEnum.Before;
            ssc.m_isTriggerSkill = false;
            ssc.m_isHit          = false;
            ssc.m_skillList.Add(new SkillData(skillID));
            ssc.m_currentSkillData = ssc.GetSkillData(skillID);
            ssc.m_currentSkillData.UpdateInfo();
            ssc.skillDir.FromVector(dir);

            if (ssc.m_currentSkillData.LaterTime == 0)
            {
                Debug.LogError("技能代 " + skillID + "的持续时间不能为 0 !");
                return;
            }

            TransfromComponent tc = new TransfromComponent();
            tc.pos.FromVector(pos);
            tc.dir.FromVector(dir);

            //打印
            Debug.DrawRay(tc.pos.ToVector(), -tc.dir.ToVector(), Color.green, 10);

            CampComponent cc = new CampComponent();
            cc.creater = createrID;

            LifeSpanComponent lsc = new LifeSpanComponent();
            lsc.lifeTime = (int)(ssc.m_currentSkillData.LaterTime * 1000);

            world.CreateEntity(createrID + "SkillToken", tc, ssc, cc, lsc);
        }
    }
コード例 #10
0
    void CreateFlyObject(SkillDataGenerate skillData, EntityBase skiller)
    {
        CampComponent campComp = skiller.GetComp <CampComponent>();

        if (skillData.m_FlyObjectName.Length != 0)
        {
            List <CreatPostionInfo> poss = GetCreatePostionInfos(skillData, skiller, skillData.m_FlyObjectName.Length);

            for (int i = 0; i < poss.Count; i++)
            {
                FlyDataGenerate flyData = DataGenerateManager <FlyDataGenerate> .GetData(skillData.m_FlyObjectName[i]);

                MoveComponent mc = new MoveComponent();
                mc.pos.FromVector(poss[i].m_pos);
                mc.dir.FromVector(poss[i].m_dir);
                mc.m_velocity = (int)(flyData.m_Speed * 1000);

                LifeSpanComponent lsc = new LifeSpanComponent();
                lsc.lifeTime = (int)(flyData.m_LiveTime * 1000);

                AssetComponent ac = new AssetComponent();
                ac.m_assetName = flyData.m_ModelName;

                CampComponent cp = new CampComponent();
                cp.camp = campComp.camp;

                CollisionComponent cc = new CollisionComponent();
                cc.area.areaType = AreaType.Circle;
                cc.area.radius   = flyData.m_Radius;

                FlyObjectComponent fc = new FlyObjectComponent();
                fc.createrID = skiller.ID;
                fc.damage    = skillData.m_DamageValue;

                m_world.CreateEntity(mc, ac, cp, lsc, cc, fc);

                Debug.Log(poss[i].m_pos.ToString());
            }
        }
    }
コード例 #11
0
    public void Damage(EntityBase skiller, EntityBase hurter, SkillDataGenerate skillData)
    {
        bool isCrit       = false;
        bool isDisrupting = false;
        int  damageNumber = DamageValueFormula(skillData, skiller, hurter, out isCrit, out isDisrupting);

        if (damageNumber == 0)
        {
            return;
        }

        CampComponent acc = skiller.GetComp <CampComponent>();
        CampComponent bcc = hurter.GetComp <CampComponent>();

        //Debug.Log("Damage == " + damageNumber + " hurter  " + hurter.ID + " acc " + acc.creater + " bcc " + bcc.creater + " frame " + m_world.FrameCount);

        //TODO 吸血
        Absorb(damageNumber, skiller, skillData);

        //伤害处理
        SkillUtils.Damage(m_world, skiller, hurter, damageNumber);
    }
コード例 #12
0
    public void SetEntity(EntityBase entity)
    {
        if (CameraService.Instance.m_mainCameraGo == null)
        {
            return;
        }

        PerfabComponent pc  = entity.GetComp <PerfabComponent>();
        LifeComponent   lc  = entity.GetComp <LifeComponent>();
        PlayerComponent plc = entity.GetComp <PlayerComponent>();
        CampComponent   cc  = entity.GetComp <CampComponent>();

        mainCamera = CameraService.Instance.m_mainCamera;

        m_entityID = entity.ID;

        GetEventKey(m_entityID);

        //ECSEvent.AddListener(m_InitKey, InitCharacter);
        //ECSEvent.AddListener(m_MoveKey, RefreshPoition);
        entity.World.eventSystem.AddListener(m_DamageKey, ECSBeAttack, true);
        entity.World.eventSystem.AddListener(m_RecoverKey, ECSBeRecover, true);
        //ECSEvent.AddListener(m_SKillKey, UseSkill);
        //ECSEvent.AddListener(m_AttackKey, UseSkill);
        //ECSEvent.AddListener(m_BeBreakKey, BeBreak);

        go_character = pc.perfab.gameObject;
        n_oldHp      = lc.maxLife;

        //TODO 血条高度读取配置
        v3_FollowOffset.y = -0.15f * Screen.height;


        bloodIsFull = true;

        UpdateSliderLength(0, lc.maxLife);
        InitLifeSlider(cc.camp);
    }
コード例 #13
0
    public void ECSBeAttack(EntityBase entity, params object[] pbjs)
    {
        Debug.Log("ECSBeAttack " + entity.World.FrameCount);

        PerfabComponent pc  = entity.GetComp <PerfabComponent>();
        LifeComponent   lc  = entity.GetComp <LifeComponent>();
        PlayerComponent plc = entity.GetComp <PlayerComponent>();
        CampComponent   cc  = entity.GetComp <CampComponent>();

        //Debug.Log("BeAttack -->");
        UpdateLifeSlider((float)lc.Life / (float)lc.maxLife);
        UpdateSliderLength(0, lc.maxLife);

        TextDisplaySizeType textSizeType = TextDisplaySizeType.Small;

        //if ((bool)args[1] == true)
        //{
        //    textSizeType = TextDisplaySizeType.Large;
        //}

        DisplayNum(n_oldHp - lc.Life, cc.camp, textSizeType, TextDisplayStyleType.Hurt);

        n_oldHp = lc.Life;
    }
コード例 #14
0
    public void PlayerJoin(EntityBase entity)
    {
        PlayerComponent playerComp = null;

        if (!entity.GetExistComp <PlayerComponent>())
        {
            playerComp = new PlayerComponent();

            playerComp.characterID = "1";
            playerComp.nickName    = "Test model";

            ElementData e1 = new ElementData();
            e1.id  = 100;
            e1.num = 10;
            playerComp.elementData.Add(e1);

            ElementData e2 = new ElementData();
            e2.id  = 101;
            e2.num = 10;
            playerComp.elementData.Add(e2);

            ElementData e3 = new ElementData();
            e3.id  = 102;
            e3.num = 10;
            playerComp.elementData.Add(e3);

            ElementData e4 = new ElementData();
            e4.id  = 103;
            e4.num = 00;
            playerComp.elementData.Add(e4);

            entity.AddComp(playerComp);
        }

        if (!entity.GetExistComp <CommandComponent>())
        {
            CommandComponent c = new CommandComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <TransfromComponent>())
        {
            TransfromComponent c = new TransfromComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <AssetComponent>())
        {
            AssetComponent c = new AssetComponent();
            c.m_assetName = "famale_01";
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <MoveComponent>())
        {
            MoveComponent c = new MoveComponent();
            c.pos.FromVector(new Vector3(15, 0, 0));

            entity.AddComp(c);
        }

        if (!entity.GetExistComp <SkillStatusComponent>())
        {
            SkillStatusComponent c = new SkillStatusComponent();

            DataTable data = DataManager.GetData("SkillData");
            for (int i = 0; i < data.TableIDs.Count; i++)
            {
                c.m_skillList.Add(new SkillData(data.TableIDs[i], i));
            }
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CDComponent>())
        {
            CDComponent c = new CDComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CampComponent>())
        {
            CampComponent c = new CampComponent();
            c.creater = entity.ID;
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <MoveComponent>())
        {
            MoveComponent c = new MoveComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CollisionComponent>())
        {
            CollisionComponent c = new CollisionComponent();
            c.area.areaType = AreaType.Circle;
            c.area.radius   = 0.5f;
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <LifeComponent>())
        {
            LifeComponent c = new LifeComponent();
            c.maxLife = playerComp.CharacterData.m_hp;
            c.life    = playerComp.CharacterData.m_hp;
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <BlowFlyComponent>())
        {
            BlowFlyComponent c = new BlowFlyComponent();
            entity.AddComp(c);
        }
    }
コード例 #15
0
    public void PlayerJoin(EntityBase entity)
    {
        if (!entity.GetExistComp <CommandComponent>())
        {
            CommandComponent c = new CommandComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <ViewComponent>())
        {
            ViewComponent c = new ViewComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <AssetComponent>())
        {
            AssetComponent c = new AssetComponent();
            c.m_assetName = "famale_01";
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <MoveComponent>())
        {
            MoveComponent c = new MoveComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <PlayerComponent>())
        {
            PlayerComponent c = new PlayerComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <SkillStatusComponent>())
        {
            SkillStatusComponent c = new SkillStatusComponent();

            DataTable data = DataManager.GetData("SkillData");
            for (int i = 0; i < data.TableIDs.Count; i++)
            {
                c.m_skillList.Add(new SkillData(data.TableIDs[i], i));
            }
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CDComponent>())
        {
            CDComponent c = new CDComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <MoveComponent>())
        {
            MoveComponent c = new MoveComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CampComponent>())
        {
            CampComponent c = new CampComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CollisionComponent>())
        {
            CollisionComponent c = new CollisionComponent();
            c.area.areaType = AreaType.Circle;
            c.area.radius   = 0.5f;
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <LifeComponent>())
        {
            LifeComponent c = new LifeComponent();
            c.maxLife = 100;
            c.life    = 100;
            entity.AddComp(c);
        }

        //预测一个输入
        //TODO 放在框架中
        if (entity.GetExistComp <ConnectionComponent>())
        {
            ConnectionComponent cc = entity.GetComp <ConnectionComponent>();
            cc.m_lastInputCache = new CommandComponent();
        }
    }
コード例 #16
0
    public void PlayerJoin(EntityBase entity)
    {
        ConnectionComponent connectComp = entity.GetComp <ConnectionComponent>();
        PlayerComponent     playerComp  = null;

        if (!entity.GetExistComp <PlayerComponent>())
        {
            playerComp = new PlayerComponent();
            entity.AddComp(playerComp);
        }
        else
        {
            playerComp = entity.GetComp <PlayerComponent>();
        }

        //将角色ID传入游戏
        playerComp.characterID = connectComp.m_session.player.characterID;
        playerComp.nickName    = connectComp.m_session.player.playerID;

        ElementData e1 = new ElementData();

        e1.id  = 100;
        e1.num = 10;
        playerComp.elementData.Add(e1);

        ElementData e2 = new ElementData();

        e2.id  = 101;
        e2.num = 10;
        playerComp.elementData.Add(e2);

        ElementData e3 = new ElementData();

        e3.id  = 102;
        e3.num = 10;
        playerComp.elementData.Add(e3);

        ElementData e4 = new ElementData();

        e4.id  = 103;
        e4.num = 00;
        playerComp.elementData.Add(e4);

        if (!entity.GetExistComp <CommandComponent>())
        {
            CommandComponent c = new CommandComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <TransfromComponent>())
        {
            TransfromComponent c = new TransfromComponent();
            c.pos.FromVector(new Vector3(15, 0, 0));
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <AssetComponent>())
        {
            AssetComponent c = new AssetComponent();
            c.m_assetName = playerComp.CharacterData.m_ModelID;
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <MoveComponent>())
        {
            MoveComponent c = new MoveComponent();
            c.pos.FromVector(new Vector3(15, 0, 0));

            entity.AddComp(c);
        }


        if (!entity.GetExistComp <SkillStatusComponent>())
        {
            SkillStatusComponent c = new SkillStatusComponent();

            DataTable data = DataManager.GetData("SkillData");
            for (int i = 0; i < data.TableIDs.Count; i++)
            {
                c.m_skillList.Add(new SkillData(data.TableIDs[i], i));
            }
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CDComponent>())
        {
            CDComponent c = new CDComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CampComponent>())
        {
            CampComponent c = new CampComponent();
            c.creater = entity.ID;
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <MoveComponent>())
        {
            MoveComponent c = new MoveComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CollisionComponent>())
        {
            CollisionComponent c = new CollisionComponent();
            c.area.areaType = AreaType.Circle;
            c.area.radius   = 0.5f;
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <LifeComponent>())
        {
            LifeComponent c = new LifeComponent();
            c.maxLife = playerComp.CharacterData.m_hp;
            c.life    = playerComp.CharacterData.m_hp;
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <BlowFlyComponent>())
        {
            BlowFlyComponent c = new BlowFlyComponent();
            entity.AddComp(c);
        }

        //预测一个输入
        //TODO 放在框架中
        if (entity.GetExistComp <ConnectionComponent>())
        {
            ConnectionComponent cc = entity.GetComp <ConnectionComponent>();
            cc.m_lastInputCache = new CommandComponent();
            cc.m_defaultInput   = new CommandComponent();
        }

        GameTimeComponent gtc = m_world.GetSingletonComp <GameTimeComponent>();

        gtc.GameTime = 10000 * 1000;
    }