Example #1
0
    private void AddChest(Vector3 location, bool locked, bool trapped, bool addHealth)
    {
        int id = Game.EntityManager.CreateEntity();

        var formComp = new FormComponent();

        formComp.InitComponent(id, location, "Chest001", "Chest001_Broken");
        Game.EntityManager.AddComponent(id, formComp);

        var openComp = new OpenComponent();

        openComp.InitComponent(null);
        Game.EntityManager.AddComponent(id, openComp);

        var animComp = new AnimationComponent();

        animComp.InitComponent(null);
        animComp.Animations.Add(new AnimationSystem.AnimationData()
        {
            EntityID = id, Name = "ChestClose", Sound = "ChestClose001", DisablePhysics = true, TriggerEvent = RPGGameEvent.Menu_Close
        });
        animComp.Animations.Add(new AnimationSystem.AnimationData()
        {
            EntityID = id, Name = "ChestOpen90", Sound = "ChestOpen001", DisablePhysics = true, TriggerEvent = RPGGameEvent.Menu_Open
        });
        Game.EntityManager.AddComponent(id, animComp);

        if (locked)
        {
            var lockComp = new LockComponent();
            lockComp.InitComponent(null);
            lockComp.InitComponent(44);
            Game.EntityManager.AddComponent(id, lockComp);
        }

        if (trapped)
        {
            var trapComp = new TrapComponent();
            trapComp.InitComponent(formComp, new EffectSystem.EffectData()
            {
                AreaOfEffectRadius = 10,
                Duration           = 5,
                PrefabName         = "AOE/Fireball",
                TargetType         = EffectSystem.TargetTypeEnum.AreaOfEffect,
                Damage             = new DieRollData(2, 4, 0, 0),
                DamageType         = AttackSystem.DamageTypes.Crush,
                Description_Attack = "Fireball Blast"
            });
            Game.EntityManager.AddComponent(id, trapComp);
        }

        if (addHealth)
        {
            var health = new HealthComponent()
            {
                Damage = 0, DeathType = HealthComponent.DeathTypes.Broken, HP_Max = 5000
            };
            Game.EntityManager.AddComponent(id, health);
        }
    }
Example #2
0
    private void AddDoor(Vector3 location)
    {
        int id = Game.EntityManager.CreateEntity();

        var formComp = new FormComponent();

        formComp.InitComponent(id, location, "Door001", "");
        Game.EntityManager.AddComponent(id, formComp);

        var openComp = new OpenComponent();

        openComp.InitComponent(null);
        Game.EntityManager.AddComponent(id, openComp);

        var animComp = new AnimationComponent();

        animComp.InitComponent(null);
        animComp.Animations.Add(new AnimationSystem.AnimationData()
        {
            EntityID = id, Name = "DoorClose90", Sound = "DoorClose001", DisablePhysics = true, TriggerEvent = RPGGameEvent.Menu_Close
        });
        animComp.Animations.Add(new AnimationSystem.AnimationData()
        {
            EntityID = id, Name = "DoorOpen90", Sound = "DoorOpen001", DisablePhysics = true, TriggerEvent = RPGGameEvent.Menu_Open
        });
        Game.EntityManager.AddComponent(id, animComp);

        //// Theoretically, this should work if the attribute table is set in the blueprints. Untested
        //var cursorComp = new CursorComponent();
        //cursorComp.InitComponent(null);
        //Game.EntityManager.AddComponent(id, cursorComp);
    }
Example #3
0
    private void OnBroken(int entityID)
    {
        // Check for anything "inside" the item that should be saved?

        // Replace FormComponent?
        FormComponent newForm = null;
        var           form    = this.EntityManager.GetComponent <FormComponent>(entityID);

        if (form != null && form.PrefabDeath != "")
        {
            newForm = new FormComponent();
            newForm.InitComponent(entityID, form.Position_Center, form.PrefabDeath, "");
        }

        // Other Components that suruve should be copied here

        // Remove components unless of a type to keep
        var removeList = this.EntityManager.GetComponents(entityID);

        foreach (var comp in removeList)
        {
            this.EntityManager.RemoveComponent(entityID, comp.GetType());
        }

        // Add new Components
        if (newForm != null)
        {
            this.EntityManager.AddComponent(entityID, newForm);
        }

        this.EventManager.QueueEvent(RPGGameEvent.Death_Broken, new Broken()
        {
            EntityID = entityID
        });
    }
Example #4
0
    private void AddPlayer()
    {
        playerID = Game.EntityManager.CreateEntity();

        var inputBlock = new ActionComponent();

        inputBlock.InitComponent(null);
        Game.EntityManager.AddComponent(playerID, inputBlock);

        var form = new FormComponent();

        form.InitComponent(playerID, new Vector3(0, 50, 0), "Player", "");
        Game.EntityManager.AddComponent(playerID, form);

        var animComp = new AnimationComponent();

        animComp.InitComponent(null);
        Game.EntityManager.AddComponent(playerID, animComp);

        var move = new MovementComponent();

        move.InitComponent(null);
        Game.EntityManager.AddComponent(playerID, move);

        var crouch = new CrouchComponent();

        crouch.InitComponent(null);
        Game.EntityManager.AddComponent(playerID, crouch);

        var run = new RunComponent();

        run.InitComponent(null);
        Game.EntityManager.AddComponent(playerID, run);

        var jump = new JumpComponent();

        jump.InitComponent(null);
        Game.EntityManager.AddComponent(playerID, jump);

        var skill = new SkillComponent();

        skill.InitComponent(null);
        Game.EntityManager.AddComponent(playerID, skill);

        var health = new HealthComponent()
        {
            Damage = 0, DeathType = HealthComponent.DeathTypes.LifeEnded, HP_Max = 50
        };

        health.InitComponent(null);
        Game.EntityManager.AddComponent(playerID, health);

        var menuOptions = new MenuComponent();

        menuOptions.InitComponent(null);
        menuOptions.InitComponent(playerID, "Menu");
        Game.EntityManager.AddComponent(playerID, menuOptions);
    }
Example #5
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);
        }
    }