Esempio n. 1
0
    private void ConfigureTrap(TrapComponent trap, FormComponent formParent)
    {
        // Configure FormComponent
        var trapGO = formParent.AddChild(PrefabName_TrapDetectionRange);

        if (trapGO != null)
        {
            formParent.SetSphereColliderRadius(trapGO, trap.DetectionRange);
        }

        // Configure more stuff here...
    }
Esempio n. 2
0
    //private void OnUnity_OnAreaOfEffectStay(GameEvent e)
    //{
    //    var data = (EntityBehaviour.Unity_OnTriggerStayData)e.EventData;

    //    // AttackComponent
    //    var attack = this.EntityManager.GetComponent<AttackComponent>(data.ItemID);
    //    if (attack != null)
    //    {
    //        this.EventManager.QueueEvent(RPGGameEvent.AttackHit, new AttackSystem.AttackHit() { EntityID = data.ActorID, AttackerID = data.ItemID });
    //    }
    //}

    public static void CreateEffectEntity(EntityManager em, EffectData data)
    {
        if (data == null)
        {
            return;
        }

        int id = em.CreateEntity();

        FormComponent     form     = null;
        DurationComponent duration = null;

        // FormComponent
        if (data.PrefabName != "")
        {
            form = new FormComponent();
            form.InitComponent(id, data.Location, data.PrefabName, "");
            em.AddComponent(id, form);

            // AreaOfEffectComponent
            if (data.TargetType == TargetTypeEnum.AreaOfEffect)
            {
                form.SetSphereColliderRadius(data.AreaOfEffectRadius);
            }
        }

        // DurationComponent
        if (data.Duration >= 0)
        {
            duration = new DurationComponent();
            duration.InitComponent(data.Duration, false);
            em.AddComponent(id, duration);
        }

        // AttackComponent
        if (data.Description_Attack != "")
        {
            //var attack = new AttackComponent() { Damage = data.Damage, DamageType = data.DamageType, Description = data.Description_Attack };
            //em.AddComponent(id, attack);
        }

        if (duration != null)
        {
            duration.TimerActive = true;
        }
        if (form != null)
        {
            form.SetActive(true);
        }
    }