コード例 #1
0
    public override MomentComponentBase DeepCopy()
    {
        LifeSpanComponent lsc = new LifeSpanComponent();

        lsc.lifeTime = lifeTime;

        return(lsc);
    }
コード例 #2
0
    public override void FixedUpdate(int deltaTime)
    {
        List <EntityBase> list = GetEntityList();

        for (int i = 0; i < list.Count; i++)
        {
            LifeSpanComponent lsc = list[i].GetComp <LifeSpanComponent>();
            lsc.lifeTime -= deltaTime;

            if (lsc.lifeTime < 0)
            {
                m_world.DestroyEntity(list[i].ID);
            }
        }
    }
コード例 #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 override void FixedUpdate(int deltaTime)
    {
        List <EntityBase> list = GetEntityList();

        for (int i = 0; i < list.Count; i++)
        {
            LifeSpanComponent lsc = list[i].GetComp <LifeSpanComponent>(ComponentType.LifeSpanComponent);
            lsc.lifeTime -= deltaTime;

            //Debug.Log("lsc.lifeTime  " + lsc.lifeTime + " frame " + m_world.FrameCount + " ID " + lsc.Entity.ID);

            if (lsc.lifeTime <= 0)
            {
                m_world.ClientDestroyEntity(list[i].ID);
            }
        }
    }
コード例 #5
0
    public override void FixedUpdate(int deltaTime)
    {
        List <EntityBase> list = GetEntityList();

        for (int i = 0; i < list.Count; i++)
        {
            CommandComponent cc = list[i].GetComp <CommandComponent>();
            if (cc.isFire)
            {
                Debug.Log("Fire " + m_world.FrameCount);

                TestSingleComponent tc = m_world.GetSingletonComp <TestSingleComponent>();
                tc.testValue++;

                LifeSpanComponent lsc = new LifeSpanComponent();
                lsc.lifeTime = 500;

                m_world.CreateEntity("FireObject" + cc.Entity.ID, lsc);
            }
        }
    }
コード例 #6
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);
        }
    }
コード例 #7
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());
            }
        }
    }
コード例 #8
0
    public void CreateEffect(EntityBase entity, string effectName, HardPointEnum hardPoint, float time, float offset)
    {
        PerfabComponent      pc  = entity.GetComp <PerfabComponent>();
        SkillStatusComponent ssc = entity.GetComp <SkillStatusComponent>();
        MoveComponent        mc  = entity.GetComp <MoveComponent>();

        //挂载点完全放弃了
        Transform creatPoint = pc.hardPoint.hardPoint.GetHardPoint(hardPoint);

        Vector3 createPos      = mc.pos.ToVector() + ssc.skillDir.ToVector() * offset;
        Vector3 charactorEugle = Vector3.zero;
        Vector3 m_aimWaistDir  = ssc.skillDir.ToVector();
        float   euler          = Mathf.Atan2(m_aimWaistDir.x, m_aimWaistDir.z) * Mathf.Rad2Deg;

        if (m_aimWaistDir.z == 0)
        {
            euler = 0;
        }

        charactorEugle.y = euler;

        TransfromComponent etc = new TransfromComponent();

        etc.pos.FromVector(createPos);
        etc.dir.FromVector(m_aimWaistDir);

        AssetComponent eac = new AssetComponent();

        eac.m_assetName = effectName;

        LifeSpanComponent elc = new LifeSpanComponent();

        elc.lifeTime = (int)(time * 1000);

        m_world.CreateEntity("Effect" + effectName + entity.ID + createPos, etc, eac, elc);
    }