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; } } } } }
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); }
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); }
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; }
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); } }
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); }
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(); }
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); } }
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); }
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(); } } } }
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); }
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(); }
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); }
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); }