Example #1
0
 public void GetPickedUp(Player parent)
 {
     if (this.parent == null)
     {
         this.parent = parent;
         position = parent.position;
         parent.pickUp = this;
     }
 }
Example #2
0
        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;

            }
        }
Example #3
0
 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;
 }
Example #4
0
 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;
 }
Example #5
0
        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);
                                }
                            }
                        }

                    }
                }
            }
        }
Example #6
0
        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;
        }