Beispiel #1
0
        public BranchTrap(Vector2 spritePosition, string spriteSheetName = "branchTrap", DrawManager.Layer layer = DrawManager.Layer.Middleground) : base(spritePosition, spriteSheetName, layer)
        {
            CanWalkable = true;
            CreateColliders();

            List <float> randomNumbers = new List <float>
            {
                1.5f,
                2f,
                3f,
                4f,
            };

            randomTimesGetOff = new List <float>();

            while (randomNumbers.Count > 0)
            {
                float randomNumber = randomNumbers[RandomGenerator.GetRandom(0, randomNumbers.Count)];
                randomTimesGetOff.Add(randomNumber);

                randomNumbers.Remove(randomNumber);
            }

            indexGetOff   = 0;
            playerAnimDie = Player.State.DeathMashed;

            audioSource3D = new AudioSource3D(this);

            clipUp = AudioManager.GetAudioClip("branchUp");

            animations[(int)AnimationType.Down].LoopAtFrame(4);
            animations[(int)AnimationType.Up].LoopAtFrame(4);
            Animation.IsActive = true;
            ChangeAnim(AnimationType.Down);
        }
 public IronBounceCrate(Vector2 spritePosition, string spriteSheetName = "ironBounceCrate", DrawManager.Layer drawLayer = DrawManager.Layer.Playground) : base(spritePosition, spriteSheetName, drawLayer)
 {
     bounceMultiplierY += 0.5f;
     bounceBehaviour    = new BounceBehaviour(this, bounceMultiplierY);
     audioSourceBounce  = new AudioSource();
     clipBounce         = AudioManager.GetAudioClip("crateBounce");
 }
Beispiel #3
0
        public BlowGunManEnemy(Vector2 spritePosition, string spriteSheetName = "blowGunMan", DrawManager.Layer drawLayer = DrawManager.Layer.Playground) : base(spritePosition, spriteSheetName, drawLayer)
        {
            sprite.scale = new Vector2(1.3f, 1.1f);

            Machine = new StateMachine(this);
            Machine.RegisterState((int)State.Patrol, new BlowGunManPatrolState());
            Machine.RegisterState((int)State.Alert, new BlowGunManAlertState());
            Machine.RegisterState((int)State.Attack, new BlowGunManAttackState());

            Machine.Switch((int)State.Patrol);

            standUpShootOffset = new Vector2(Width / 2, -Height / 5);
            crouchShootOffset  = new Vector2(Width / 2, 6f); //o 5 al posto di 6
            SightRadius        = 450f;
            halfConeAngle      = MathHelper.DegreesToRadians(15);

            colliderStandUp = new Rect(new Vector2(0, 0), RigidBody, Width / 2, Height - 5);
            colliderCrouch  = new Rect(new Vector2(0, 10), RigidBody, Width / 2, Height - 25);
            RigidBody.SetBoundingBox(colliderStandUp);

            colliderCrouch.IsActive = false;

            IsCrouched     = false;
            useMultiplyRay = true;
            rayOffset      = new Vector2(0, -Height / 2.5f);
            ignoreMaskRaySight.Add(PhysicsManager.ColliderType.Trap);

            clipShoot = AudioManager.GetAudioClip("blowGun");
        }
        public LizardEnemy(Vector2 spritePosition, float patrolXDist = 120, string spriteSheetName = "lizard", DrawManager.Layer drawLayer = DrawManager.Layer.Playground) : base(spritePosition, spriteSheetName, drawLayer)
        {
            sprite.scale = new Vector2(1.3f, 1.3f);

            speedWalk   = 50f;
            speedRun    = PlayScene.Player != null ? PlayScene.Player.Speed.X + 70 : 230f;
            SightRadius = 250f;

            IsTurningAround = false;

            animationSpeedIncrement = 0.15f;
            rangeAttack             = SightRadius * 2f;

            Machine = new StateMachine(this);
            Machine.RegisterState((int)State.Patrol, new LizardPatrolState(new Tuple <float, float>(Position.X - patrolXDist, Position.X + patrolXDist)));
            Machine.RegisterState((int)State.Alert, new LizardAlertState());
            Machine.RegisterState((int)State.Attack, new LizardAttackState());
            Machine.Switch((int)State.Patrol);

            playerDieAnimationOnHitted = Player.State.DeathBurnt;
            smoke = new Smoke(Position, "smoke", DrawManager.Layer.Middleground);

            initialFlipX = FlipX;
            clipCry      = AudioManager.GetAudioClip("lizard");
            nextCry      = 2f;
        }
        public AppleBounceCrate(Vector2 spritePosition, bool useGravity = false, string spriteSheetName = "stripedCrate", DrawManager.Layer drawLayer = DrawManager.Layer.Playground) : base(spritePosition, spriteSheetName, drawLayer)
        {
            Animation.IsActive = false;
            apples             = NUM_APPLES;

            clipBounce = AudioManager.GetAudioClip("crateBounce");
        }
        public WoodenBounceCrate(Vector2 spritePosition, string spriteSheetName = "woodenBounceCrate", DrawManager.Layer drawLayer = DrawManager.Layer.Playground) : base(spritePosition, spriteSheetName, drawLayer)
        {
            Animation.IsActive = false; //sprite è quella vecchia con piu immagini, cambiare
            bounceMultiplierY += 0.5f;
            bounceBehaviour    = new BounceBehaviour(this, bounceMultiplierY);

            clipBounce = AudioManager.GetAudioClip("crateBounce");
        }
        public override void AssignStateMachine(StateMachine machine)
        {
            base.AssignStateMachine(machine);

            yMinDescent     = Owner.Position.Y + 80f;
            velocityDescent = new Vector2(Math.Sign(Owner.LookDirection.X) * 5f, 80f);
            clipAttack      = AudioManager.GetAudioClip("birdAttack");
        }
Beispiel #8
0
        public ExtraLife(Vector2 spritePosition, string spriteSheetName = "extraLife", DrawManager.Layer drawLayer = DrawManager.Layer.Foreground) : base(spritePosition, spriteSheetName, drawLayer)
        {
            Type         = PickableType.ExtraLife;
            ClipOnPicked = AudioManager.GetAudioClip("extraLifePicked");

            initialPos   = spritePosition;
            initialScale = sprite.scale;
        }
Beispiel #9
0
        public TntCrate(Vector2 spritePosition, string spriteSheetName = "tntCrate", DrawManager.Layer drawLayer = DrawManager.Layer.Playground) : base(spritePosition, spriteSheetName, drawLayer)
        {
            Animation.IsActive = false;
            brokenCrate        = new ExplosionCrate(spritePosition - new Vector2(0, 12), "tntExplosion", "tntExplosion");
            countdownStarted   = false;
            clipCountdown      = AudioManager.GetAudioClip("tntCountdown");

            // minVelocityHitY = 35f;
        }
Beispiel #10
0
        public Pickable(Vector2 spritePosition, string spriteSheetName, DrawManager.Layer drawLayer = DrawManager.Layer.Foreground) : base(spritePosition, spriteSheetName, drawLayer)
        {
            RigidBody      = new RigidBody(spritePosition, this);
            RigidBody.Type = (uint)PhysicsManager.ColliderType.Pickable;
            RigidBody.SetCollisionMask((uint)PhysicsManager.ColliderType.Player);
            player = PlayScene.Player;

            clipOnHitted = AudioManager.GetAudioClip("wumpaHit");
            initialPos   = Position;
        }
Beispiel #11
0
        public Apple(Vector2 spritePosition, string spriteSheetName = "apple", DrawManager.Layer drawLayer = DrawManager.Layer.Foreground) : base(spritePosition, spriteSheetName, drawLayer)
        {
            sprite.scale = new Vector2(1.3f, 1.3f);
            speed        = new Vector2(650f);
            Type         = PickableType.Apple;

            clipOnTarget = AudioManager.GetAudioClip("bleep");
            ClipOnPicked = AudioManager.GetAudioClip("applePicked");

            initialPos = spritePosition;
        }
Beispiel #12
0
 public Ground(Vector2 spritePosition, string spriteSheetName = "ground", bool useRigidBody = true, DrawManager.Layer drawLayer = DrawManager.Layer.Middleground) : base(spritePosition, spriteSheetName, drawLayer)
 {
     if (useRigidBody)
     {
         Rect rect = new Rect(new Vector2(0, 2f), RigidBody, Width, Height);
         RigidBody      = new RigidBody(sprite.position, this, null, rect);
         RigidBody.Type = (uint)PhysicsManager.ColliderType.Ground;
         clipFootStep   = AudioManager.GetAudioClip("grassFootStep");
         CanWalkable    = true;
     }
 }
        public BorderCrate(Crate crate) : base(Vector2.Zero, "borderCrate", DrawManager.Layer.Playground)
        {
            Crate = crate;

            clipTriggered   = AudioManager.GetAudioClip("crateTriggered");
            crateTriggered  = false;
            timeToTriggered = TIME_TO_TRIGGER_CRATE;

            PhysicsManager.RemoveItem(RigidBody);
            RigidBody = null;
        }
        public TriggerNitroCrate(Vector2 spritePosition, string spriteSheetName = "triggerNitro", DrawManager.Layer drawLayer = DrawManager.Layer.Playground) : base(spritePosition, spriteSheetName, drawLayer)
        {
            Animation.LoopAtFrame(9);
            Animation.IsActive = false;
            nitroToExplode     = new List <NitroCrate>();

            Rect rect = new Rect(new Vector2(-2, 22), RigidBody, Width - 16, Height / 2 - 5);

            RigidBody.SetBoundingBox(rect);
            clipOnHit = AudioManager.GetAudioClip("crateTriggerHit");

            UseGroundableGravity = false;
        }
Beispiel #15
0
        private void SetAudioClips()
        {
            clipsState = new Dictionary <State, AudioClip>();

            clipsState.Add(State.Attack, AudioManager.GetAudioClip("crashSpin"));
            clipsState.Add(State.JumpStopped, AudioManager.GetAudioClip("crashHop"));
            clipsState.Add(State.JumpInMovement, AudioManager.GetAudioClip("crashHop"));
            clipsState.Add(State.Slide, AudioManager.GetAudioClip("crashSlide"));
            clipsState.Add(State.DeathBurnt, AudioManager.GetAudioClip("crashWoah"));
            clipsState.Add(State.DeathAngel, AudioManager.GetAudioClip("deathAngel"));
            clipsState.Add(State.DeathFalling, AudioManager.GetAudioClip("fallingDeath"));
            clipsState.Add(State.DeathDrowned, AudioManager.GetAudioClip("crashWoah"));
            clipsState.Add(State.DeathMashed, AudioManager.GetAudioClip("crashWoah"));
            clipsState.Add(State.DeathRotation, AudioManager.GetAudioClip("crashWoah"));
        }
        public CheckpointCrate(Vector2 spritePosition, string spriteSheetName = "checkpoint") : base(spritePosition, spriteSheetName)
        {
            animations[(int)AnimationType.OpenCrate].LoopAtFrame(14);
            Animation.IsActive = false;

            uint collisionMask = RigidBody.CollisionMask;

            PhysicsManager.RemoveItem(RigidBody);

            Rect collider = new Rect(new Vector2(0, 0), null, Width / 2.5f, Height / 2);

            RigidBody = new RigidBody(spritePosition, this, null, collider);
            RigidBody.SetCollisionMask(collisionMask);
            RigidBody.Type = (uint)PhysicsManager.ColliderType.Crate;

            clipHitted = AudioManager.GetAudioClip("checkpointHitted");
        }
Beispiel #17
0
        public GeckoEnemy(Vector2 spritePosition, float patrolXDist = 120, string spriteSheetName = "gecko", DrawManager.Layer drawLayer = DrawManager.Layer.Playground) : base(spritePosition, spriteSheetName, drawLayer)
        {
            sprite.scale       = new Vector2(1.2f, 1.2f);
            speed              = 50f;
            speedTurningAround = speed / 2;
            Velocity           = new Vector2(-speed, 0);
            IsTurningAround    = false;
            playerDieAnim      = Player.State.DeathAngel;
            RigidBody.SetBoundingBox(new Rect(Vector2.Zero, null, Width, Height / 2));

            Machine = new StateMachine(this);
            Machine.RegisterState((int)State.Patrol, new GeckoPatrolState(new Tuple <float, float>(Position.X - patrolXDist, Position.X + patrolXDist)));
            Machine.Switch((int)State.Patrol);

            AudioSource3D.VolumeOffset = -0.3f;
            clipCry = AudioManager.GetAudioClip("gecko");
            nextCry = 2f;
        }
        public ExplosionCrate(Vector2 spritePosition, string spriteSheetName, string clipExplosionName = "tntExplosion", DrawManager.Layer drawLayer = DrawManager.Layer.Playground) : base(spritePosition, spriteSheetName, drawLayer)
        {
            sprite.scale       = new Vector2(1.8f, 1.8f);
            Animation.IsActive = false;
            ClipBroken         = AudioManager.GetAudioClip(clipExplosionName);

            float  ray            = (float)(Math.Sqrt(Width * Width + Height * Height) / 2) - Width / 6f;
            Circle circleCollider = new Circle(Vector2.Zero, null, ray);

            RigidBody      = new RigidBody(spritePosition, this, circleCollider, null, false);
            RigidBody.Type = (uint)PhysicsManager.ColliderType.Explosion;

            collisionMask = (uint)(PhysicsManager.ColliderType.Player | PhysicsManager.ColliderType.Crate | PhysicsManager.ColliderType.Pickable | PhysicsManager.ColliderType.Enemy);
            RigidBody.SetCollisionMask(collisionMask);
            objectAlreadyHitted = new List <GameObject>();

            PlayerDeathAnim = Player.State.DeathBurnt;
        }
        public StoneWhellTrap(Vector2 spritePosition, string spriteSheetName = "stoneWheel") : base(spritePosition, spriteSheetName, DrawManager.Layer.Foreground)
        {
            PhysicsManager.RemoveItem(RigidBody);

            Circle circle = new Circle(Vector2.Zero, null, Height / 1.8f);

            RigidBody = new RigidBody(spritePosition, this, circle);
            RigidBody.AddCollision((uint)PhysicsManager.ColliderType.Ground | (uint)PhysicsManager.ColliderType.Crate | (uint)PhysicsManager.ColliderType.Enemy | (uint)PhysicsManager.ColliderType.Player);
            RigidBody.Type = (uint)PhysicsManager.ColliderType.Trap;
            playerAnimDie  = Player.State.DeathMashed;

            CanWalkable = true;

            initialPos      = Position;
            initialRotation = sprite.EulerRotation;
            VelocityOffset  = 8f;
            clipRotation    = AudioManager.GetAudioClip("stoneWheelRotation");
            clipStopped     = AudioManager.GetAudioClip("stoneHit");
        }
Beispiel #20
0
        public AkuAku(Vector2 spritePosition, Player owner, DrawManager.Layer drawLayer = DrawManager.Layer.Foreground) : base(spritePosition, "akuFirstLevel", drawLayer)
        {
            sprite.scale = new Vector2(0.9f, 0.9f);
            IsActive     = false;
            CreateTextures();
            currLevel = Level.FIRST;

            this.owner    = owner;
            clipOnPicked  = AudioManager.GetAudioClip("akuAkuPicked");
            clipLevelDown = AudioManager.GetAudioClip("akuLevelDown");

            AkuAkuState.Player = owner;
            AkuAkuState.Offset = new Vector2(-30f, -20f);

            machine = new StateMachine(this);
            machine.RegisterState((int)AkuState.Idle, new IdleAkuAkuState());
            machine.RegisterState((int)AkuState.Follow, new FollowAkuAkuState());
            machine.RegisterState((int)AkuState.Attack, new AttackAkuAkuState());

            machine.Switch((int)AkuState.Idle);
        }
Beispiel #21
0
        public Fire(Vector2 spritePosition, string spriteSheetName = "fire") : base(spritePosition, spriteSheetName, DrawManager.Layer.Foreground)
        {
            sprite.scale = new Vector2(1f, 0.65f);

            PhysicsManager.RemoveItem(RigidBody);

            Rect rect = new Rect(Vector2.Zero, null, Width / 1.8f, Height);

            RigidBody = new RigidBody(spritePosition, this, null, rect);
            RigidBody.SetCollisionMask((uint)PhysicsManager.ColliderType.Player);

            currAnim      = AnimationType.Start;
            timeLoop      = TIME_LOOP_FIRE;
            playerAnimDie = Player.State.DeathBurnt;
            IsActive      = false;

            audioSourceFire = new AudioSource3D(this);

            clipFireBurn = AudioManager.GetAudioClip("fireBurn");
            clipBurned   = AudioManager.GetAudioClip("clipBurn");
        }
Beispiel #22
0
 public BirdEnemyPatrolState() : base()
 {
     velocityFlyUp = new Vector2(0, -50f);
     clipFlying    = AudioManager.GetAudioClip("birdFly");
 }
 public override void AssignStateMachine(StateMachine machine)
 {
     base.AssignStateMachine(machine);
     clipFireBurn = AudioManager.GetAudioClip("clipBurn");
 }
Beispiel #24
0
 public WaterSplash(Vector2 spritePosition, string spriteSheetName = "waterSplash", DrawManager.Layer drawLayer = DrawManager.Layer.Foreground) : base(spritePosition, spriteSheetName, drawLayer)
 {
     clipSplash = AudioManager.GetAudioClip("waterSplash");
     IsActive   = false;
 }
Beispiel #25
0
 public InvisiblePlatform(Vector2 spritePosition, string spriteSheetName = "platform", DrawManager.Layer layer = DrawManager.Layer.Playground) : base(spritePosition, spriteSheetName, true, layer)
 {
     itDisappearAndAppear = false;
     clipFootStep         = AudioManager.GetAudioClip("metal2FootStep");
 }
Beispiel #26
0
 public DeathMashedState()
 {
     clipSmashed = AudioManager.GetAudioClip("smashed");
 }
Beispiel #27
0
 public IronCrate(Vector2 spritePosition, string spriteSheetName = "ironCrate", DrawManager.Layer drawLayer = DrawManager.Layer.Playground) : base(spritePosition, spriteSheetName, drawLayer)
 {
     audioSource  = new AudioSource();
     clipOnHit    = AudioManager.GetAudioClip("ironCrateHit");
     clipFootStep = AudioManager.GetAudioClip("metal2FootStep");
 }
 public BrokenCrate(Vector2 spritePosition, string spriteSheetName = "brokenCrate", DrawManager.Layer drawLayer = DrawManager.Layer.Foreground) : base(spritePosition, spriteSheetName, drawLayer)
 {
     ClipBroken = AudioManager.GetAudioClip("crateBreak");
     IsActive   = false;
 }
        public BorderCrate(Vector2 position, CrateType type) : base(position, "borderCrate", DrawManager.Layer.Playground)
        {
            Crate c = null;

            switch (type)
            {
            case CrateType.Apple:
                c = new AppleCrate(position);
                break;

            case CrateType.Random:
                c = new RandomCrate(position);
                break;

            case CrateType.Life:
                c = new LifeCrate(position);
                break;

            case CrateType.Aku:
                c = new AkuAkuCrate(position);
                break;

            case CrateType.Bounce_Apple:
                c = new AppleBounceCrate(position);
                break;

            case CrateType.Bounce_Wooden:
                c = new WoodenBounceCrate(position);
                break;

            case CrateType.Bounce_Iron:
                c = new IronBounceCrate(position);
                break;

            case CrateType.Iron:
                c = new IronCrate(position);
                break;

            case CrateType.Trigger_Iron:
                c = new TriggerIronCrate(position);
                break;

            case CrateType.Tnt:
                c = new TntCrate(position);
                break;

            case CrateType.Nitro:
                c = new NitroCrate(position);
                break;

            default:
                c = new IronCrate(position);
                break;
            }

            Crate = c;

            clipTriggered   = AudioManager.GetAudioClip("crateTriggered");
            crateTriggered  = false;
            timeToTriggered = TIME_TO_TRIGGER_CRATE;

            PhysicsManager.RemoveItem(RigidBody);
            RigidBody = null;
        }
Beispiel #30
0
 public BranchPlatform(Vector2 spritePosition, string spriteSheetName = "branchPlatform", DrawManager.Layer layer = DrawManager.Layer.Playground) : base(spritePosition, spriteSheetName)
 {
     clipFootStep = AudioManager.GetAudioClip("woodenFootStep");
 }