public PuzzleResetTrigger(Collider p_colHitbox, IPuzzle p_lolpuz, bool p_bBroadcast) { this.colHitbox = p_colHitbox; this.bBroadcastTrigger = p_bBroadcast; this.lolpuz = p_lolpuz; this.bRunOnClients = true; }
public ColliderLayerSwitchTrigger(int p_ibitColliderLayers, Collider p_colHitbox) { this.ibitColliderLayers = p_ibitColliderLayers; this.colHitbox = p_colHitbox; this.bRunOnClients = true; this.colHitbox.ibitLayers = 2147483647; }
public void SetCollider(Collider cCol) { Program.game.xCollisionMaster.UnregisterCollider(this.xCollisionComponent.xMovementCollider); this.xCollisionComponent.xMovementCollider = cCol; this.xCollisionComponent.xMovementCollider.bIsLarge = true; this.xCollisionComponent.xMovementCollider.bStaticKnockback = false; Program.game.xCollisionMaster.RegisterStaticCollider(this.xCollisionComponent.xMovementCollider); }
public ShowExamineIconTrigger(Vector2 v2Position, Collider colHitbox) : base(colHitbox, false) { this.v2Position = v2Position; this.bRunOnClients = true; this.bLocalOnly = true; this.xTheIcon = (Program.game._EffectMaster_AddEffect(new SortedAnimated(v2Position, SortedAnimated.SortedAnimatedEffects._GUIEffects_Emote_Examine)) as SortedAnimated); }
public ShowArbitraryIconTrigger(Vector2 v2Position, Collider colHitbox, SortedAnimated.SortedAnimatedEffects enType) : base(colHitbox, false) { this.v2Position = v2Position; this.bRunOnClients = true; this.bLocalOnly = true; this.xTheIcon = (Program.game._EffectMaster_AddEffect(new SortedAnimated(v2Position, enType)) as SortedAnimated); }
public void SetInfo(Collider colInteractCollider, string sDialogueID) { this.colInteractCollider = colInteractCollider; this.sDialogueID = sDialogueID; if (this.xTransform.v2Pos == Vector2.Zero) { this.xTransform.v2Pos = colInteractCollider.WorldPosition; } }
public void RegisterMovementCollider(Collider xCol) { if (xCol == null) { return; } this.lxMovementColliders.Add(xCol); xCol.bIsRegistered = true; }
public void RegisterAttackboxCollider(Collider xCol) { if (xCol == null) { return; } this.lxAttackboxColliders.Add(xCol); xCol.bIsRegistered = true; }
public void SetInfo(Collider colInteractCollider, byte byDir, FlagCodex.FlagID enFlagID) { this.colInteractCollider = colInteractCollider; if (byDir < 4) { this.xRenderComponent.SwitchAnimation((ushort)byDir, Animation.CancelOptions.IgnoreIfPlaying); } this.enFlagID = enFlagID; }
public GroundTrigger(Collider p_colHitbox, List<Collider> p_lcolCollidersToCheckAgainst, bool p_bBroadcast) { this.colHitbox = p_colHitbox; this.lcolCollidersToCheckAgainst = p_lcolCollidersToCheckAgainst; if (this.lcolCollidersToCheckAgainst == null) { this.lcolCollidersToCheckAgainst = new List<Collider>(); } this.bBroadcastTrigger = p_bBroadcast; }
public void SetInfo(Collider colInteractCollider, string sDialogueID, byte byDir, bool bEnforceDirection = false) { this.colInteractCollider = colInteractCollider; if (byDir < 4) { this.xRenderComponent.SwitchAnimation((ushort)byDir, Animation.CancelOptions.IgnoreIfPlaying); } this.sDialogueID = sDialogueID; this.bIsPlate = true; this.bEnforceDirection = bEnforceDirection; }
public void RegisterHitboxCollider(Collider xCol, Collider.ColliderLayers enLayer) { if (xCol == null) { return; } if (!this.dexHitboxColliders.ContainsKey(enLayer)) { this.dexHitboxColliders[enLayer] = new List<Collider>(); } this.dexHitboxColliders[enLayer].Add(xCol); xCol.bIsRegistered = true; }
public SpellEffect_IceSpikes(Vector2 v2Position, byte byDirection, float p_fVelocity, int p_iNumberOfSpikes, Collider colLol, float p_fHeight, int iChargeLevel) { this.xTransform = new TransformComponent(v2Position); this.fVelocity = p_fVelocity; this.byDir = byDirection; this.v2Direction = Utility.AnimationDirectionToVector2((int)this.byDir); this.iNumberOfSpikes = p_iNumberOfSpikes; this.colMovemenet = (SphereCollider)colLol.Clone(this.xTransform); this.colMovemenet.xOwnerObject = this; Program.GetTheGame().xCollisionMaster.RegisterGhostCollider(this.colMovemenet); this.fHeightLol = p_fHeight; this.iChargeLevel = iChargeLevel; }
public void SetAttackPhase(Collider col, int iDamage) { if (this.xAttackPhase != null) { this.xAttackPhase.UnregisterCurrent(); } this.xAttackPhase = new AttackPhase(this); this.xAttackPhase.lxCurrentColliders.Add(col); this.xAttackPhase.xStats.iBaseDamage = iDamage; this.xAttackPhase.xStats.iBreakingPower = 1; this.xAttackPhase.xStats.fKnockBack = 20f; col.xAttackPhase = this.xAttackPhase; this.xAttackPhase.RegisterCurrent(); this.xAttackPhase.lenLayers.Add(Collider.ColliderLayers.Players); this.xAttackPhase.lenLayers.Add(Collider.ColliderLayers.EnivonmentalHazards); }
public void AddBlockingTrees() { Random randos = new Random(5); Rectangle recFill = new Rectangle(45, 0, 120, 330); for (int i = 0; i <= recFill.Height; i += 30) { for (int j = 0; j <= recFill.Width; j += 30) { this.AddBlockingTreeLol(new Vector2((float)(recFill.X + j - 15 + randos.Next(30)), (float)(recFill.Y + i - 15 + randos.Next(30)))); } } this.AddBlockingTreeLol(new Vector2(180f, 336f)); this.AddBlockingTreeLol(new Vector2(157f, 331f)); this.colTreeBlockadeCollider = new BoxCollider(new Rectangle(47, 287, 204, 58)); this.colTreeBlockadeCollider.ibitLayers = 1; Program.game.xCollisionMaster.RegisterStaticCollider(this.colTreeBlockadeCollider); }
public override void OnAdd() { this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(347f, 431f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneBig)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(364f, 428f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmall)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(381f, 433f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmallVariant)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(398f, 427f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneBig)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(415f, 430f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmall)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(432f, 438f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneBig)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(437f, 454f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmallVariant)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(434f, 468f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmall)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(442f, 479f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmallVariant)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(434f, 491f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneBig)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(439f, 503f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmall)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(434f, 514f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneBig)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(437f, 529f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmallVariant)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(436f, 541f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneBig)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(439f, 553f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmallVariant)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(429f, 568f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneBig)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(412f, 565f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmall)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(396f, 569f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmallVariant)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(379f, 565f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmall)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(362f, 569f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneBig)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(345f, 564f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmall)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(334f, 556f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneBig)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(337f, 542f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmallVariant)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(334f, 529f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneBig)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(338f, 516f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmallVariant)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(331f, 504f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmall)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(336f, 492f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneBig)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(334f, 480f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneBig)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(336f, 468f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmallVariant)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(333f, 456f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneSmall)) as SortedAnimated); this.lxBlocksLeft.Add(Program.game._EffectMaster_AddEffect(new SortedAnimated(new Vector2(337f, 443f), SortedAnimated.SortedAnimatedEffects._Blocks_StoneBig)) as SortedAnimated); for (int i = 0; i < this.lxBlocksLeft.Count; i++) { (this.lxBlocksLeft[i].xRenderComponent as AnimatedRenderComponent).SwitchAnimation(1, Animation.CancelOptions.IgnoreIfPlaying); } Collider colbol = new BoxCollider(new Rectangle(319, 415, 134, 156)); colbol.ibitLayers = Utility.CreateIntMask(new int[] { 1 }); Program.game.xCollisionMaster.RegisterStaticCollider(colbol); this.left = colbol; }
public override void OnInstruction(byte byInstructionID, params float[] afParams) { if (byInstructionID == 0) { this.bInTrap = true; this.colLeftA = new BoxCollider(new Rectangle(250, 369, 17, 66), MathHelper.ToRadians(-30f)); this.colLeftB = new BoxCollider(new Rectangle(253, 299, 17, 66), MathHelper.ToRadians(40f)); this.colLeftC = new BoxCollider(new Rectangle(236, 352, 13, 28), MathHelper.ToRadians(0f)); this.colRightA = new BoxCollider(new Rectangle(547, 358, 13, 32), MathHelper.ToRadians(0f)); this.colRightB = new BoxCollider(new Rectangle(530, 319, 15, 53), MathHelper.ToRadians(-40f)); this.colRightC = new BoxCollider(new Rectangle(530, 381, 15, 63), MathHelper.ToRadians(31f)); this.iLaserState = 1; this.iSpawnState = 1; Program.game.xCollisionMaster.RegisterStaticCollider(this.colLeftA); Program.game.xCollisionMaster.RegisterStaticCollider(this.colLeftB); Program.game.xCollisionMaster.RegisterStaticCollider(this.colLeftC); Program.game.xCollisionMaster.RegisterStaticCollider(this.colRightA); Program.game.xCollisionMaster.RegisterStaticCollider(this.colRightB); Program.game.xCollisionMaster.RegisterStaticCollider(this.colRightC); return; } if (byInstructionID == 1) { for (int i = 0; i < this.lxLaserFence.Count; i++) { (this.lxLaserFence[i].xRenderComponent as AnimatedRenderComponent).SwitchAnimation(3, Animation.CancelOptions.IgnoreIfPlaying); } this.UnregisterColliders(); this.bInTrap = false; if (this.xLaserIdleCue != null) { this.xLaserIdleCue.Stop(); return; } } else if (byInstructionID == 2) { Vector2 v2EffectPos = new Vector2(afParams[0], afParams[1]); this.AddSpawnEffect(v2EffectPos); } }
public override void OnInstruction(byte byInstructionID, params float[] afParams) { if (byInstructionID == 0) { this.bInTrap = true; this.colRight = new BoxCollider(new Rectangle(476, 375, 64, 54)); Program.game.xCollisionMaster.RegisterStaticCollider(this.colRight); this.colTop = new BoxCollider(new Rectangle(286, 149, 72, 64)); Program.game.xCollisionMaster.RegisterStaticCollider(this.colTop); this.iSpawnState = 1; return; } if (byInstructionID == 1) { this.bInTrap = false; Program.game.xCollisionMaster.UnregisterStaticCollider(this.colRight); Program.game.xCollisionMaster.UnregisterStaticCollider(this.colTop); Program.game.xGameSessionData.henActiveFlags.Add(FlagCodex.FlagID._MainStory_SeasonChange_F02Battle01Beaten); return; } if (byInstructionID == 2) { this.AddSpawnEffect(new Vector2(afParams[0], afParams[1])); return; } if (byInstructionID == 3) { this.iFenceCounter = 0; this.iFenceState = 1; return; } if (byInstructionID == 4) { this.iFenceCounter = 0; this.iFenceState = -1; } }
public bool ComparePrerequisites(Collider xOtherCol) { return (!this.bIsFlying || xOtherCol.bIsFlying || xOtherCol.bIsLarge) && (!xOtherCol.bIsFlying || this.bIsFlying || this.bIsLarge) && (!this.bIsFlatCollider || xOtherCol.bCollideWithFlat) && (!xOtherCol.bIsFlatCollider || this.bCollideWithFlat) && (this.ibitLayers & xOtherCol.ibitLayers) != 0; }
public void UnregisterStaticCollider(Collider xCol) { if (xCol == null) { return; } this.lxStaticColliders.Remove(xCol); xCol.bIsRegistered = false; }
public void UnregisterCollider(Collider xCol) { if (xCol == null) { return; } xCol.bIsRegistered = false; bool bRemoved = false; bRemoved |= this.lxStaticColliders.Remove(xCol); bRemoved |= this.lxMovementColliders.Remove(xCol); bRemoved |= this.lxGhostColliders.Remove(xCol); if (!(bRemoved | this.lxAttackboxColliders.Remove(xCol))) { foreach (List<Collider> lxCol in this.dexArmorboxColliders.Values) { if (lxCol.Remove(xCol)) { break; } } foreach (List<Collider> lxCol2 in this.dexHitboxColliders.Values) { if (lxCol2.Remove(xCol)) { break; } } } }
public bool TryCollision(Collider col1, Collider col2, out Vector2 v2Normal) { v2Normal = Vector2.Zero; if (col1.sDebugID == "SMash") { v2Normal = Vector2.Zero; } if (col1.bReceiveSpecialOnly || col2.bReceiveSpecialOnly) { if (col1.hsSpecialLayers == null) { return false; } if (col2.hsSpecialLayers == null) { return false; } bool bFound = false; foreach (Collider.SpecialLayer meow in col1.hsSpecialLayers) { if (col2.hsSpecialLayers.Contains(meow)) { bFound = true; } } if (!bFound) { return false; } } if (col1.bIsFlying && !col2.bIsFlying && !col2.bIsLarge) { return false; } if (col2.bIsFlying && !col1.bIsFlying && !col1.bIsLarge) { return false; } if ((col1.bIsFlatCollider && !col2.bCollideWithFlat) || (col2.bIsFlatCollider && !col1.bCollideWithFlat)) { return false; } if ((col1.ibitLayers & col2.ibitLayers) == 0) { return false; } if ((col1.bIgnoreHeavyColliders && col2.fWeight >= 1000f) || (col2.bIgnoreHeavyColliders && col1.fWeight >= 1000f)) { return false; } if (col1.enColliderType == Collider.ColliderType.Sphere) { if (col2.enColliderType == Collider.ColliderType.Sphere) { return Collider.CheckSphereVsSphereCollision((SphereCollider)col1, (SphereCollider)col2, out v2Normal); } if (col2.enColliderType == Collider.ColliderType.Box) { return Collider.CheckSphereVsBoxCollision((SphereCollider)col1, (BoxCollider)col2, out v2Normal); } } else if (col1.enColliderType == Collider.ColliderType.Box) { if (col2.enColliderType == Collider.ColliderType.Sphere) { if (Collider.CheckSphereVsBoxCollision((SphereCollider)col2, (BoxCollider)col1, out v2Normal)) { v2Normal *= -1f; return true; } } else if (col2.enColliderType == Collider.ColliderType.Box) { return !(col1 as BoxCollider).bIgnoreOtherBoxes && !(col2 as BoxCollider).bIgnoreOtherBoxes && Collider.CheckBoxVsBoxCollision((BoxCollider)col1, (BoxCollider)col2); } } return false; }
public bool TryCollision(Collider col1, Collider col2) { Vector2 v2Discard; return !float.IsNaN(col1.WorldPosition.X) && !float.IsNaN(col2.WorldPosition.X) && this.TryCollision(col1, col2, out v2Discard); }
public Vector2 ResolveMovementCollision(Collider col1, Collider col2) { if (col1.enColliderType == Collider.ColliderType.Sphere) { if (col2.enColliderType == Collider.ColliderType.Sphere) { return this.ResolveMovementCollision((SphereCollider)col1, (SphereCollider)col2); } if (col2.enColliderType == Collider.ColliderType.Box) { return this.ResolveMovementCollision((SphereCollider)col1, (BoxCollider)col2); } } else if (col1.enColliderType == Collider.ColliderType.Box) { if (col2.enColliderType == Collider.ColliderType.Sphere) { return -this.ResolveMovementCollision((SphereCollider)col2, (BoxCollider)col1); } if (col2.enColliderType == Collider.ColliderType.Box) { return this.ResolveMovementCollision((BoxCollider)col1, (BoxCollider)col2); } } return Vector2.Zero; }
public void AddCollider(Collider add) { this.lcolColliders.Add(add); Program.game.xCollisionMaster.RegisterStaticCollider(add); }
public PlayerViewGroundTrigger(Collider p_colHitbox, bool p_bBroadcast) { this.colHitbox = p_colHitbox; this.bBroadcastTrigger = p_bBroadcast; }
public void SetInfo(Collider col, int iDamage, WorldActor xOrbitAround) { this.xAttackPhase = new AttackPhase(this); this.xAttackPhase.lxCurrentColliders.Add(col); this.xAttackPhase.xStats.iBaseDamage = iDamage; this.xAttackPhase.xStats.iBreakingPower = 1; this.xAttackPhase.xStats.fKnockBack = 20f; col.xAttackPhase = this.xAttackPhase; this.xAttackPhase.RegisterCurrent(); this.xAttackPhase.lenLayers.Add(Collider.ColliderLayers.Players); this.xAttackPhase.lenLayers.Add(Collider.ColliderLayers.EnivonmentalHazards); this.xOrbitAroundThis = xOrbitAround; SphereCollider colHitbox = new SphereCollider(5f, new Vector2(0f, -2f), this.xTransform, 0f, this); colHitbox.xBaseStats = new BaseStats(this); this.xCollisionComponent.AddHitboxCollider(colHitbox, Collider.ColliderLayers.Enemies); }
public virtual void CopyTransform(Collider xIn) { }
public void RegisterStaticCollider(Collider xCol) { if (xCol == null) { return; } this.lxStaticColliders.Add(xCol); xCol.bIsRegistered = true; }
public void CopyDetails(Collider col) { col.bIsFlatCollider = this.bIsFlatCollider; col.bIsFlying = this.bIsFlying; col.bIsLarge = this.bIsLarge; col.ibitLayers = this.ibitLayers; col.bCollideWithFlat = this.bCollideWithFlat; }