Exemple #1
0
        protected override void OnUpdate()
        {
            for (int i = 0; i < PickupEntities.Length; i++)
            {
                PickupComponent    pickup    = PickupEntities.PickupComponents[i];
                TriggerComponent   trigger   = PickupEntities.TriggerComponents[i];
                InventoryComponent inventory = PickupEntities.InventoryComponents[i];
                Entity             curr      = PickupEntities.Entities[i];

                if (pickup.isPickingUp)
                {
                    foreach (TriggerComponent.TriggerData data in trigger.triggers)
                    {
                        // Can only pick up items
                        if (data.entity != Entity.Null && EntityManager.HasComponent <ItemComponent>(data.entity) &&
                            EntityManager.GetComponentObject <ItemComponent>(data.entity).pickupCooldown > PICKUP_COOLDOWN) // Make sure items have a small wait time before being picked up again
                        {
                            inventory.commands.Add(new InventorySystem.AddCommand(data.entity));
                            trigger.triggers.Remove(data);
                            break;
                        }
                    }
                }
            }
        }
Exemple #2
0
 public ComponentJump(GroupUI g, Trigger t, TriggerComponent c, TriggerTemplateMapping m)
 {
     trig  = t;
     comp  = c;
     group = g;
     map   = m;
 }
        public override void Initialize()
        {
            bc = gs.GetComponent <LockableBoltComponent>();
            tc = gs.GetComponent <TriggerComponent>();

            tc.trigger_pressable_predicates.Add(() => bc.bolt_stage == BoltActionStage.LOCKED);
        }
Exemple #4
0
 bool ValidateComponent(TriggerComponent comp)
 {
     if (mComponentSearch.Effect != null && mComponentSearch.Effect != "")
     {
         if (comp is TriggerEffect)
         {
             if (mComponentSearch.Effect != comp.Type)
             {
                 return(false);
             }
         }
         else
         {
             return(false);
         }
     }
     if (mComponentSearch.Condition != null && mComponentSearch.Condition != "")
     {
         if (comp is TriggerCondition)
         {
             if (mComponentSearch.Condition != comp.Type)
             {
                 return(false);
             }
         }
         else
         {
             return(false);
         }
     }
     return(true);
 }
Exemple #5
0
        public override void Initialize()
        {
            tc  = gs.GetComponent <TriggerComponent>();
            tvc = gs.GetComponent <TriggerVisualComponent>();

            tvc.trigger_rel_pos = tvc.trigger.localPosition;
            tvc.trigger_rel_rot = tvc.trigger.localRotation;
        }
Exemple #6
0
 public TriggerVarJump(GroupUI g, Trigger t, TriggerVariable v, TriggerComponent c, TriggerTemplateMapping m)
 {
     trig  = t;
     var   = v;
     comp  = c;
     group = g;
     map   = m;
 }
        public override void Initialize()
        {
            yc = gs.GetComponent <YokeComponent>();
            tc = gs.GetComponent <TriggerComponent>();

            if (yc.open_yoke_blocks_trigger)
            {
                tc.trigger_pressable_predicates.Add(() => yc.yoke_stage == YokeStage.CLOSED);
            }
        }
Exemple #8
0
        public override void Start()
        {
            m_goalsCount        = 0;
            m_goalsCountDisplay = 0;

            m_goalTrigger = new TriggerComponent();
            var triggerFixture = FixtureFactory.AttachRectangle(
                m_size.X, m_size.Y,
                0,
                Vector2.Zero,
                m_goalTrigger.Body);

            triggerFixture.IsSensor         = true;
            m_goalTrigger.Body.CollidesWith = (Category)CollisionType.Ball;

            m_goalTrigger.OnTrigger += new Action <GameObject>(m_goalTrigger_OnTrigger);
            m_goalTrigger.OnLeave   += new Action <GameObject>(m_goalTrigger_OnLeave);

            Owner.Attach(m_goalTrigger);

            RigidBodyComponent rbCmp = new RigidBodyComponent();

            FixtureFactory.AttachRectangle(
                m_size.X, m_size.Y,
                0,
                Vector2.Zero,
                rbCmp.Body);
            rbCmp.Body.BodyType     = BodyType.Static;
            rbCmp.Body.CollidesWith = (Category)CollisionType.None;
            Owner.Attach(rbCmp);

            rbCmp.OnCollision += new CollisionEvent(RigidBodyCmp_OnCollision);

            Sprite sprite = Sprite.Create("Graphics/goalFx.lua::Sprite");

            sprite.Scale = new Vector2(0.7f, 0.55f);
            //sprite.Playing = true;

            m_goalSprite         = new SpriteComponent(sprite, "ArenaOverlay8");
            m_goalSprite.Visible = false;
            Owner.Attach(m_goalSprite);



            m_AudioCmpGoal = new AudioComponent("Audio/Sounds.lua::Goal");
            Owner.Attach(m_AudioCmpGoal);

            float goalDisableTimeMS = 0.1f * 1000;

            m_goalDisableTimer = new Timer(Engine.GameTime.Source, goalDisableTimeMS, TimerBehaviour.Stop);

            Engine.World.EventManager.AddListener((int)EventId.MatchEnd, OnMatchEnd);

            m_goalTimer = new Timer(Engine.GameTime.Source, 1000, TimerBehaviour.Stop);
        }
Exemple #9
0
        public void Init(TriggerComponent comp, TriggerVariable var, TriggerValue val, TriggerNamespace trigNS)//, Trigger trigger)
        {
            mComponent = comp;
            mVariable  = var;
            mValue     = val;

            ParentTriggerNamespace = trigNS;
            //Trigger = trigger;

            InitHLProp();

            UpdateControl();
        }
Exemple #10
0
        public Control BuildUIFromParameterVariable(TriggerComponent comp, TriggerVariable var, TriggerValue val, bool watchForChange)
        {
            TriggerParameterControl c = new TriggerParameterControl();

            c.Init(comp, var, val, ParentTriggerNamespace);//, Trigger);
            c.HotSelect    += new EventHandler(c_HotSelect);
            c.HotSelectEnd += new EventHandler(c_HotSelectEnd);

            if (watchForChange)
            {
                c.LabelChanged += new EventHandler(c_LabelChanged);
            }
            return(c);
        }
        public override void Initialize()
        {
            asc = gs.GetComponent <AlternativeStanceComponent>();
            tc  = gs.GetComponent <TriggerComponent>();

            if (asc.alt_stance_blocks_trigger)
            {
                tc.trigger_pressable_predicates.Add(() => !asc.is_alternative);
            }

            if (asc.stance_blocks_trigger)
            {
                tc.trigger_pressable_predicates.Add(() => asc.is_alternative);
            }
        }
Exemple #12
0
        public virtual BaseActor SpawnTrigger(SpawnParams spawnParam)
        {
            BaseActor actor = m_ActorService.AddActor(spawnParam.ActorType);

            //TransformComponent transform = actor.AddComponent<TransformComponent>(spawnParam.InitPos.HasValue ? spawnParam.InitPos.Value : Vector3.Zero,
            //                                                                      spawnParam.InitRot.HasValue ? spawnParam.InitRot.Value : Quaternion.Identity, spawnParam.InitScale.HasValue ? spawnParam.InitScale.Value : Vector3.One);
            actor.AddComponent(spawnParam.AttributeComponent, spawnParam.AttributeKey);
            TriggerComponent trigger = actor.AddComponent <TriggerComponent>();

            trigger.Owner = spawnParam.Owner;

            MovementSystem movementSysten = m_ActorService.GetComponentSystem <MovementSystem>();

            movementSysten.Transform(actor, spawnParam.InitPos, spawnParam.InitRot, spawnParam.InitScale);



            return(actor);
        }
Exemple #13
0
        void c_LabelChanged(object sender, EventArgs e)
        {
            TriggerParameterControl p = sender as TriggerParameterControl;

            if (p != null)
            {
                if (TriggerSystemMain.mTriggerDefinitions.IsSchemaType(p.GetValue().Type))
                {
                    Dictionary <int, TriggerValue> values;
                    TriggerComponent comp = p.GetComponent();
                    if (TriggerSystemMain.mTriggerDefinitions.UpdateComponentUserDataVars(comp, p.GetValue().Value, mParentTriggerNamespace, out values))
                    {
                        mParentTriggerNamespace.InsertVariableList(this.Trigger.ID, comp.Parameter, values);
                        ReloadUI();
                        InvokeNeedsResize();
                    }
                }
            }
        }
Exemple #14
0
        void f_HotSelect(object sender, EventArgs e)
        {
            //if (mComponentHelp != null)
            //{
            //   if (mComponentHelp.Active)
            //   {
            //      mComponentHelp.Active = false;
            //      mComponentHelp.Dispose();//.Hide(this.Parent.Parent);
            //   }
            //   mComponentHelp = new ToolTip();
            //}

            FunctorEditor f = sender as FunctorEditor;

            ToolTip t = mToolTipGroup.GetToolTip(sender.GetHashCode()); //mComponentHelp;

            t.IsBalloon = true;
            Point p = f.PointToScreen(new Point(0, 0));

            p = this.PointToClient(p);
            TriggerComponent           comp = f.Tag as TriggerComponent;
            TriggerComponentDefinition def;

            if (comp == null)
            {
                return;
            }
            if (TriggerSystemMain.mTriggerDefinitions.TryGetDefinition(comp.DBID, comp.Version, out def) == false)
            {
                return;
            }

            string message = UpdateHelpText(f, def);

            if (message == "")
            {
                message = f.FunctionName;
            }
            t.Show(message, f, 50, -40, 5000);

            //t.Show(message, f, f.Width, -45, 5000);
            //t.Show(message, this, 140, p.Y - 2, 3000);
        }
Exemple #15
0
        void f_FunctionNameClicked(object sender, EventArgs e)
        {
            FunctorEditor fe = sender as FunctorEditor;

            if (fe == null)
            {
                return;
            }
            TriggerComponent comp = fe.Tag as TriggerComponent;

            if (comp == null)
            {
                return;
            }

            TriggerComponentWorksheet worksheet = new TriggerComponentWorksheet();

            if (worksheet.Setup(mParentTriggerNamespace, comp))
            {
                PopupEditor p = new PopupEditor();
                p.ShowPopup(this, worksheet);
            }
        }
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            AggregateFactory = new AggregateFactory(this);
            WeaponFactory = new WeaponFactory(this);
            DoorFactory = new DoorFactory(this);
            RoomFactory = new RoomFactory(this);
            CollectableFactory = new CollectibleFactory(this);
            WallFactory = new WallFactory(this);
            EnemyFactory = new EnemyFactory(this);
            SkillEntityFactory = new SkillEntityFactory(this);
            NPCFactory = new NPCFactory(this);

            // Initialize Components
            PlayerComponent = new PlayerComponent();
            LocalComponent = new LocalComponent();
            RemoteComponent = new RemoteComponent();
            PositionComponent = new PositionComponent();
            MovementComponent = new MovementComponent();
            MovementSpriteComponent = new MovementSpriteComponent();
            SpriteComponent = new SpriteComponent();
            DoorComponent = new DoorComponent();
            RoomComponent = new RoomComponent();
            HUDSpriteComponent = new HUDSpriteComponent();
            HUDComponent = new HUDComponent();
            InventoryComponent = new InventoryComponent();
            InventorySpriteComponent = new InventorySpriteComponent();
            ContinueNewGameScreen = new ContinueNewGameScreen(graphics, this);
            EquipmentComponent = new EquipmentComponent();
            WeaponComponent = new WeaponComponent();
            BulletComponent = new BulletComponent();
            PlayerInfoComponent = new PlayerInfoComponent();
            WeaponSpriteComponent = new WeaponSpriteComponent();
            StatsComponent = new StatsComponent();
            EnemyAIComponent = new EnemyAIComponent();
            NpcAIComponent = new NpcAIComponent();

            CollectibleComponent = new CollectibleComponent();
            CollisionComponent = new CollisionComponent();
            TriggerComponent = new TriggerComponent();
            EnemyComponent = new EnemyComponent();
            NPCComponent = new NPCComponent();
            //QuestComponent = new QuestComponent();
            LevelManager = new LevelManager(this);
            SpriteAnimationComponent = new SpriteAnimationComponent();
            SkillProjectileComponent = new SkillProjectileComponent();
            SkillAoEComponent = new SkillAoEComponent();
            SkillDeployableComponent = new SkillDeployableComponent();
            SoundComponent = new SoundComponent();
            ActorTextComponent = new ActorTextComponent();
            TurretComponent = new TurretComponent();
            TrapComponent = new TrapComponent();
            ExplodingDroidComponent = new ExplodingDroidComponent();
            HealingStationComponent = new HealingStationComponent();
            PortableShieldComponent = new PortableShieldComponent();
            PortableStoreComponent = new PortableStoreComponent();
            ActiveSkillComponent = new ActiveSkillComponent();
            PlayerSkillInfoComponent = new PlayerSkillInfoComponent();

            Quests = new List<Quest>();

            #region Initialize Effect Components
            AgroDropComponent = new AgroDropComponent();
            AgroGainComponent = new AgroGainComponent();
            BuffComponent = new BuffComponent();
            ChanceToSucceedComponent = new ChanceToSucceedComponent();
            ChangeVisibilityComponent = new ChangeVisibilityComponent();
            CoolDownComponent = new CoolDownComponent();
            DamageOverTimeComponent = new DamageOverTimeComponent();
            DirectDamageComponent = new DirectDamageComponent();
            DirectHealComponent = new DirectHealComponent();
            FearComponent = new FearComponent();
            HealOverTimeComponent = new HealOverTimeComponent();
            InstantEffectComponent = new InstantEffectComponent();
            KnockBackComponent = new KnockBackComponent();
            TargetedKnockBackComponent = new TargetedKnockBackComponent();
            ReduceAgroRangeComponent = new ReduceAgroRangeComponent();
            ResurrectComponent = new ResurrectComponent();
            StunComponent = new StunComponent();
            TimedEffectComponent = new TimedEffectComponent();
            EnslaveComponent = new EnslaveComponent();
            CloakComponent = new CloakComponent();
            #endregion

            base.Initialize();
        }
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            AggregateFactory = new AggregateFactory(this);
            WeaponFactory = new WeaponFactory(this);
            DoorFactory = new DoorFactory(this);
            RoomFactory = new RoomFactory(this);
            CollectableFactory = new CollectibleFactory(this);
            WallFactory = new WallFactory(this);
            EnemyFactory = new EnemyFactory(this);

            // Initialize Components
            PlayerComponent = new PlayerComponent();
            LocalComponent = new LocalComponent();
            RemoteComponent = new RemoteComponent();
            PositionComponent = new PositionComponent();
            MovementComponent = new MovementComponent();
            MovementSpriteComponent = new MovementSpriteComponent();
            SpriteComponent = new SpriteComponent();
            DoorComponent = new DoorComponent();
            RoomComponent = new RoomComponent();
            HUDSpriteComponent = new HUDSpriteComponent();
            HUDComponent = new HUDComponent();
            InventoryComponent = new InventoryComponent();
            InventorySpriteComponent = new InventorySpriteComponent();
            ContinueNewGameScreen = new ContinueNewGameScreen(graphics, this);
            EquipmentComponent = new EquipmentComponent();
            WeaponComponent = new WeaponComponent();
            BulletComponent = new BulletComponent();
            PlayerInfoComponent = new PlayerInfoComponent();
            WeaponSpriteComponent = new WeaponSpriteComponent();
            StatsComponent = new StatsComponent();
            EnemyAIComponent = new EnemyAIComponent();
            CollectibleComponent = new CollectibleComponent();
            CollisionComponent = new CollisionComponent();
            TriggerComponent = new TriggerComponent();
            EnemyComponent = new EnemyComponent();
            QuestComponent = new QuestComponent();
            LevelManager = new LevelManager(this);
            SpriteAnimationComponent = new SpriteAnimationComponent();
            SkillProjectileComponent = new SkillProjectileComponent();
            SkillAoEComponent = new SkillAoEComponent();
            SkillDeployableComponent = new SkillDeployableComponent();

            //TurretComponent = new TurretComponent();
            //TrapComponent = new TrapComponent();
            //PortableShopComponent = new PortableShopComponent();
            //PortableShieldComponent = new PortableShieldComponent();
            //MotivateComponent =  new MotivateComponent();
            //FallbackComponent = new FallbackComponent();
            //ChargeComponent = new ChargeComponent();
            //HealingStationComponent = new HealingStationComponent();
            //ExplodingDroidComponent = new ExplodingDroidComponent();

            base.Initialize();
        }
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            AggregateFactory   = new AggregateFactory(this);
            WeaponFactory      = new WeaponFactory(this);
            DoorFactory        = new DoorFactory(this);
            RoomFactory        = new RoomFactory(this);
            CollectableFactory = new CollectibleFactory(this);
            WallFactory        = new WallFactory(this);
            EnemyFactory       = new EnemyFactory(this);
            SkillEntityFactory = new SkillEntityFactory(this);
            NPCFactory         = new NPCFactory(this);

            // Initialize Components
            PlayerComponent          = new PlayerComponent();
            LocalComponent           = new LocalComponent();
            RemoteComponent          = new RemoteComponent();
            PositionComponent        = new PositionComponent();
            MovementComponent        = new MovementComponent();
            MovementSpriteComponent  = new MovementSpriteComponent();
            SpriteComponent          = new SpriteComponent();
            DoorComponent            = new DoorComponent();
            RoomComponent            = new RoomComponent();
            HUDSpriteComponent       = new HUDSpriteComponent();
            HUDComponent             = new HUDComponent();
            InventoryComponent       = new InventoryComponent();
            InventorySpriteComponent = new InventorySpriteComponent();
            ContinueNewGameScreen    = new ContinueNewGameScreen(graphics, this);
            EquipmentComponent       = new EquipmentComponent();
            WeaponComponent          = new WeaponComponent();
            BulletComponent          = new BulletComponent();
            PlayerInfoComponent      = new PlayerInfoComponent();
            WeaponSpriteComponent    = new WeaponSpriteComponent();
            StatsComponent           = new StatsComponent();
            EnemyAIComponent         = new EnemyAIComponent();
            NpcAIComponent           = new NpcAIComponent();

            CollectibleComponent = new CollectibleComponent();
            CollisionComponent   = new CollisionComponent();
            TriggerComponent     = new TriggerComponent();
            EnemyComponent       = new EnemyComponent();
            NPCComponent         = new NPCComponent();
            //QuestComponent = new QuestComponent();
            LevelManager             = new LevelManager(this);
            SpriteAnimationComponent = new SpriteAnimationComponent();
            SkillProjectileComponent = new SkillProjectileComponent();
            SkillAoEComponent        = new SkillAoEComponent();
            SkillDeployableComponent = new SkillDeployableComponent();
            SoundComponent           = new SoundComponent();
            ActorTextComponent       = new ActorTextComponent();
            TurretComponent          = new TurretComponent();
            TrapComponent            = new TrapComponent();
            ExplodingDroidComponent  = new ExplodingDroidComponent();
            HealingStationComponent  = new HealingStationComponent();
            PortableShieldComponent  = new PortableShieldComponent();
            PortableStoreComponent   = new PortableStoreComponent();
            ActiveSkillComponent     = new ActiveSkillComponent();
            PlayerSkillInfoComponent = new PlayerSkillInfoComponent();
            MatchingPuzzleComponent  = new MatchingPuzzleComponent();
            pI = new PlayerInfo();

            Quests = new List <Quest>();


            #region Initialize Effect Components
            AgroDropComponent          = new AgroDropComponent();
            AgroGainComponent          = new AgroGainComponent();
            BuffComponent              = new BuffComponent();
            ChanceToSucceedComponent   = new ChanceToSucceedComponent();
            ChangeVisibilityComponent  = new ChangeVisibilityComponent();
            CoolDownComponent          = new CoolDownComponent();
            DamageOverTimeComponent    = new DamageOverTimeComponent();
            DirectDamageComponent      = new DirectDamageComponent();
            DirectHealComponent        = new DirectHealComponent();
            FearComponent              = new FearComponent();
            HealOverTimeComponent      = new HealOverTimeComponent();
            PsiOrFatigueRegenComponent = new PsiOrFatigueRegenComponent();
            InstantEffectComponent     = new InstantEffectComponent();
            KnockBackComponent         = new KnockBackComponent();
            TargetedKnockBackComponent = new TargetedKnockBackComponent();
            ReduceAgroRangeComponent   = new ReduceAgroRangeComponent();
            ResurrectComponent         = new ResurrectComponent();
            StunComponent              = new StunComponent();
            TimedEffectComponent       = new TimedEffectComponent();
            EnslaveComponent           = new EnslaveComponent();
            CloakComponent             = new CloakComponent();
            #endregion

            base.Initialize();
        }
Exemple #19
0
        public bool Setup(TriggerNamespace triggerNamespace, TriggerComponent component)
        {
            mParentTriggerNamespace = triggerNamespace;
            mTriggerComponent       = component;

            if (TriggerSystemMain.mTriggerDefinitions.TryGetDefinition(component.DBID, component.Version, out mDefinition) == false)
            {
                return(false);
            }

            this.ComponentNameLabel.Text = mDefinition.Type;



            int column1X = 0;
            int column2X = 100;
            int column3X = 200;
            int row1Y    = 50;

            int rowN   = row1Y;
            int deltaY = 20;

            Dictionary <int, TriggerValue> values = mParentTriggerNamespace.GetValues();

            foreach (TriggerVariable v in component.Parameter)
            {
                Label ioLabel = new Label();
                if (v is TriggersInputVariable)
                {
                    ioLabel.Text = "Input";
                }
                else if (v is TriggersOutputVariable)
                {
                    ioLabel.Text = "Output";
                }
                ioLabel.Height -= 5;

                Label nameLabel = new Label();
                nameLabel.Text    = v.Name;
                nameLabel.Height -= 5;

                Label typeLabel = new Label();
                typeLabel.Text    = values[v.ID].Type;
                typeLabel.Height -= 5;


                TriggerParameterControl c = new TriggerParameterControl();
                c.Init(component, v, values[v.ID], mParentTriggerNamespace);
                c.LabelChanged += new EventHandler(c_LabelChanged);

                AddControl(InputPanel, ioLabel, column1X, rowN);
                AddControl(TypesPanel, typeLabel, column1X, rowN);
                AddControl(NamePanel, nameLabel, column1X, rowN);
                AddControl(ParameterPanel, c, column1X, rowN);


                nameLabel.Width = nameLabel.Parent.Width;
                c.Width         = c.Parent.Width;



                mParamcontrols.Add(c);

                rowN += deltaY;
            }

            //smart help text

            string helptext = mDefinition.HelpText;

            //string newHelpText;
            //int startOffset  = helptext.IndexOf("{",startOffset);
            //int lastSpot = 0;
            //while(startOffset != -1)
            //{
            //   newHelpText += helptext.Substring(lastSpot, startOffset - lastSpot);
            //   newHelpText +=

            //   startOffset = helptext.IndexOf("{", startOffset);
            //}

            UpdateHelpText();

            return(true);
        }
Exemple #20
0
        public void Init()
        {
            m_effects = new List <PlayerEffect>();

            var allPlayerSpriteInfos = Engine.AssetManager.Get <PlayerSpriteInfo[]>("Game/PlayerSprites.lua::PlayerSprites");
            var playerSpriteInfo     = allPlayerSpriteInfos[(int)m_playerIndex];

            Sprite playerSprite = Sprite.CreateFromTexture(playerSpriteInfo.Material);

            playerSprite.Scale = new Vector2(0.48f, 0.48f);
            m_spritePlayerCmp  = new ColorMaskedSprite(playerSprite, "ArenaOverlay9");
            var texAsset = playerSpriteInfo.Mask;

            m_spritePlayerCmp.Mask = texAsset;
            ResetColors();
            Owner.Attach(m_spritePlayerCmp);

            m_shadowCmp = new SpriteComponent(
                Sprite.CreateFromTexture("Graphics/playerShadow.png"),
                "ArenaOverlay8");
            m_shadowCmp.Sprite.Scale = playerSprite.Scale;
            Owner.Attach(m_shadowCmp);

            Sprite sparksSprite = Sprite.Create("Graphics/playerSprite.lua::Sprite");

            sparksSprite.SetAnimation("Sparks");
            sparksSprite.Playing = true;
            m_sparksCmp          = new SpriteComponent(sparksSprite, "ArenaOverlay10");
            m_sparksCmp.Visible  = false;
            Owner.Attach(m_sparksCmp);

            Sprite goldFxSprite = Sprite.Create("Graphics/playerSprite.lua::Sprite");

            goldFxSprite.SetAnimation("GoldFx");
            goldFxSprite.Playing      = false;
            m_goldFxSpriteCmp         = new SpriteComponent(goldFxSprite, "ArenaOverlay10");
            m_goldFxSpriteCmp.Visible = false;
            Owner.Attach(m_goldFxSpriteCmp);

            Sprite shieldUpFxSprite = Sprite.Create("Graphics/playerSprite.lua::Sprite");

            shieldUpFxSprite.SetAnimation("ShieldUp");
            shieldUpFxSprite.Playing      = false;
            m_shieldUpFxSpriteCmp         = new SpriteComponent(shieldUpFxSprite, "ArenaOverlay10");
            m_shieldUpFxSpriteCmp.Visible = false;
            Owner.Attach(m_shieldUpFxSpriteCmp);

            // Physic
            m_bodyCmp = new RigidBodyComponent();
            CircleShape bodyShape = new CircleShape(ConvertUnits.ToSimUnits(Parameters.Radius), 1.0f);
            Fixture     fix       = new Fixture(m_bodyCmp.Body, bodyShape);

            Owner.Attach(m_bodyCmp);

            m_bodyCmp.Body.FixedRotation = true;

            m_bodyCmp.Body.LinearDamping       = Parameters.Physic.LinearDamping;
            m_bodyCmp.Body.AngularDamping      = Parameters.Physic.AngularDamping;
            m_bodyCmp.Body.Restitution         = Parameters.Physic.Restitution;
            m_bodyCmp.Body.Mass                = Parameters.Physic.Mass;
            m_bodyCmp.Body.CollisionCategories = (Category)CollisionType.Player;
            m_bodyCmp.Body.SleepingAllowed     = false;
            m_bodyCmp.Body.IsBullet            = true;

            // Blink
            m_blink = new PlayerBlink(this);
            Owner.Attach(m_blink);

            if (m_playerIndex == PlayerIndex.One)
            {
                m_bodyCmp.Body.CollisionCategories = (Category)CollisionType.Gameplay | (Category)CollisionType.Player | (Category)CollisionType.TeamA;
            }
            if (m_playerIndex == PlayerIndex.Two)
            {
                m_bodyCmp.Body.CollisionCategories = (Category)CollisionType.Gameplay | (Category)CollisionType.Player | (Category)CollisionType.TeamA;
            }
            if (m_playerIndex == PlayerIndex.Three)
            {
                m_bodyCmp.Body.CollisionCategories = (Category)CollisionType.Gameplay | (Category)CollisionType.Player | (Category)CollisionType.TeamB;
            }
            if (m_playerIndex == PlayerIndex.Four)
            {
                m_bodyCmp.Body.CollisionCategories = (Category)CollisionType.Gameplay | (Category)CollisionType.Player | (Category)CollisionType.TeamB;
            }

            // Audio
            m_audioCmpBallShot = new AudioComponent("Audio/Sounds.lua::BallShot");
            Owner.Attach(m_audioCmpBallShot);
            m_audioCmpStun = new AudioComponent("Audio/Sounds.lua::Stun");
            Owner.Attach(m_audioCmpStun);
            m_audioCmpCharge = new AudioComponent("Audio/Sounds.lua::Charge");
            Owner.Attach(m_audioCmpCharge);

            //
            m_ballTrigger = new TriggerComponent();
            var triggerFixture = FixtureFactory.AttachCircle(
                ConvertUnits.ToSimUnits(Parameters.Radius + Parameters.BallSnapRadius),
                0,
                m_ballTrigger.Body);

            triggerFixture.IsSensor         = true;
            m_ballTrigger.Body.CollidesWith = (Category)CollisionType.Ball;
            Owner.Attach(m_ballTrigger);

            m_magnetSensor = new TriggerComponent();
            triggerFixture = FixtureFactory.AttachCircle(
                ConvertUnits.ToSimUnits(Parameters.MagnetRadiusMax),
                0,
                m_magnetSensor.Body);
            triggerFixture.IsSensor          = true;
            m_magnetSensor.Body.CollidesWith = (Category)CollisionType.Ball;
            Owner.Attach(m_magnetSensor);

            Engine.World.EventManager.AddListener((int)EventId.MatchBegin, OnMatchBegin);
            Engine.World.EventManager.AddListener((int)EventId.FirstPeriod, OnFirstPeriod);
            Engine.World.EventManager.AddListener((int)EventId.HalfTime, OnHalfTime);
            Engine.World.EventManager.AddListener((int)EventId.HalfTimeTransition, OnHalfTimeTransition);
            Engine.World.EventManager.AddListener((int)EventId.SecondPeriod, OnSecondPeriod);
            Engine.World.EventManager.AddListener((int)EventId.MatchEnd, OnMatchEnd);
            Engine.World.EventManager.AddListener((int)EventId.Victory, OnMatchVictory);
            Engine.World.EventManager.AddListener((int)EventId.KickOff, OnKickOff);

            m_ballAngle = 0;

            //Initialise ChargetShots Timer
            float chargeTimeMS = Parameters.ChargedShot.ChargeTimeMS;

            chargeTimeMS      *= ComputeSkillCoef("ChargedShotTime", Parameters.Skills.ChargedShotTimeBase, Parameters.Skills.ChargedShotTimeCoef);
            m_chargedShotTimer = new Timer(Engine.GameTime.Source, chargeTimeMS, TimerBehaviour.Stop);

            float delay = Engine.Debug.EditSingle("ChargedShotDelay", 250);

            m_chargedShotDelayTimer = new Timer(Engine.GameTime.Source, delay);

            ShakeComponent shakeCmp = new ShakeComponent(m_spritePlayerCmp);

            shakeCmp.ShakeAmount = 4.0f;
            Owner.Attach(shakeCmp);

            PlayerOffScreenMarker offScreenMarker = new PlayerOffScreenMarker();

            Owner.Attach(offScreenMarker);

            if (m_playerInfo.InputType == InputType.AI && m_teamMate.PlayerInfo.InputType == InputType.AI)
            {
                offScreenMarker.Hide = true;
            }

            m_moveDirection = Vector2.Zero;

            m_bodyCmp.OnCollision += new CollisionEvent(OnCollision);

            m_bodyCmp.UserData.Add("Tag", "Player");

            //Antenna
            var playerAntenna = new PlayerAntenna();

            Owner.Attach(playerAntenna);
        }