public void GetPickedUp(Player parent) { if (this.parent == null) { this.parent = parent; position = parent.position; parent.pickUp = this; } }
public void PressConsole(Player player, bool canDo) { if (hasLight && canDo) { if (light != null && player.light == null) { light.target = player; player.light = light; light = null; if (linkedConsole != null && linkedConsole.light != null && player.sleeperLight == null) { linkedConsole.light.target = player; player.sleeperLight = linkedConsole.light; player.sleeperLight.visible = false; linkedConsole.light = null; linkedConsole.hasLight = false; } else if (linkedConsole == null && player.sleeperLight == null && sleeperLight != null) { player.sleeperLight = sleeperLight; sleeperLight.target = player; sleeperLight = null; } } hasLight = false; ActivateEvent(TriggerState.Untriggered); } else { if (light == null && player.light != null) { light = player.light; player.light = null; light.target = this; if (linkedConsole != null && linkedConsole.light == null && player.sleeperLight != null) { linkedConsole.light = player.sleeperLight; linkedConsole.light.target = linkedConsole; linkedConsole.light.visible = true; player.sleeperLight = null; linkedConsole.hasLight = true; } else if (linkedConsole == null && player.sleeperLight != null) { sleeperLight = player.sleeperLight; player.sleeperLight = null; sleeperLight.target = this; } ActivateEvent(TriggerState.Triggered); } hasLight = true; } }
public Portal(Player player1, Player player2, EventTrigger eventTrigger, Texture2D texture, Vector2 position) : base(texture, position) { this.player1 = player1; this.player2 = player2; isSolidEnvironment = false; AddEvent(eventTrigger); selfIlluminating = true; illuminatingAllTheTime = true; }
public Particle AddSignal(Player player) { Particle p = new Particle(signalTexture, player.position); p.startScale = .2f; p.endScale = 4; p.startAlpha = 255; p.endAlpha = 0; p.target = player; p.life = 60; p.color = player.auraColor; p.illuminatingAllTheTime = true; p.StartParticleSystems(); particleList.Add(p); return p; }
public static void CheckForPlayerStuff(Player player) { Point cornerTopLeft = PositionToGrid(new Vector2(player.hitBox.Left(), player.hitBox.Top())); Point cornerBottomRight = PositionToGrid(new Vector2(player.hitBox.Right(), player.hitBox.Bottom())); for (int y = cornerTopLeft.Y; y <= cornerBottomRight.Y; y++) { for (int x = cornerTopLeft.X; x <= cornerBottomRight.X; x++) { if (IsLegalXY(x, y)) { if (environmentData[x, y].checkpoint) { if (player.checkpoint != GridToCenterPosition(x, y)) { AudioManager.checkpoint.Play(); player.checkpoint = GridToCenterPosition(new Point(x, y)); if (player.playerObjectMode == PlayerObjectMode.One) { player1Checkpoint.position = GridToCenterPosition(x, y); GSPlay.AddCheckpointParticles(GridToCenterPosition(x, y), true); GSPlay.AddCheckpointParticles(GridToCenterPosition(x, y), true); GSPlay.AddCheckpointParticles(GridToCenterPosition(x, y), true); } else { player2Checkpoint.position = GridToCenterPosition(x, y); GSPlay.AddCheckpointParticles(GridToCenterPosition(x, y), false); GSPlay.AddCheckpointParticles(GridToCenterPosition(x, y), false); GSPlay.AddCheckpointParticles(GridToCenterPosition(x, y), false); } } } } } } }
public void AdjustToPlayer(Player player) { if (playerTangible != PlayerObjectMode.None && player.playerTangible != PlayerObjectMode.None) { if (playerTangible != player.playerTangible) return; } if (!player.isSolidObject || !hitBox.CheckCollision(player.hitBox)) return; AABB aabb = player.hitBox.GetAABB(); Vector2 solution = aabb.SolveCollision(hitBox.GetAABB()); solution.Y = 0; hitBox.SetPosition(hitBox.GetPosition() + solution); Vector2 newpos = hitBox.GetPosition(); if (newpos.Y != position.Y) speed.Y = Level.SolveBounce(this, true); if (newpos.X != position.X) speed.X = Level.SolveBounce(this, false); if (newpos.Y < position.Y) { state = PhysState.Grounded; frictionMultiplier = EnvironmentData.NORMAL; player.currentMass += currentMass; if (player.affectsResident) player.residentList.Add(this); } position = newpos; }