private void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
예제 #2
0
 public CollisionHandlerStateSheet(PlayerCollisionHandler handler, int groundContatctCount = 0, int steepContactCount = 0, int stepsSinceLastGrounded = 0)
 {
     this.handler                = handler ?? throw new ArgumentNullException(nameof(handler));
     this.groundContatctCount    = groundContatctCount;
     this.steepContactCount      = steepContactCount;
     this.stepsSinceLastGrounded = stepsSinceLastGrounded;
 }
    public override void HandleCollision(PlayerCollisionHandler player, Vector3 fromDirection, float distance)
    {
        base.HandleCollision(player.collider, fromDirection, distance);

        if (fromDirection.y <= 0) {
            // If the player hits his twin from the bottom, left, or right, then jump
            _controller.Jump();
        }
    }
    void Start()
    {
        rb    = GetComponent <Rigidbody2D>();
        col   = GetComponent <PlayerCollisionHandler>();
        joint = GetComponent <DistanceJoint2D>();

        x   = 0;
        y   = 0;
        dir = Vector2.zero;
    }
예제 #5
0
 public void Construct(
     PlayerModel player,
     PlayerCollisionHandler collisionHandler,
     PlayerMovementHandler movementHandler,
     PlayerAnimationHandler animationHandler)
 {
     _player           = player;
     _collisionHandler = collisionHandler;
     _movementHandler  = movementHandler;
     _animationHandler = animationHandler;
 }
예제 #6
0
 void SetSwimStateSurfaceWater()
 {
     //Debug.Log("SetSwimStateSurfaceWater");
     m_SwimState = SwimmingState.InWaterSurface;
     if (m_AnimStatePlayer != null)
     {
         m_AnimStatePlayer.SetSwimState(m_SwimState);
     }
     PlayerCollisionHandler.ResizeNormalCollider();
     m_HipHeightAdjust = 0.0f;
 }
예제 #7
0
 void SetSwimStateShallowWater()
 {
     //Debug.Log("SetSwimStateShallowWater");
     m_SwimState = SwimmingState.InShallowWater;
     if (m_AnimStatePlayer != null)
     {
         m_AnimStatePlayer.SetSwimState(m_SwimState);
     }
     PlayerCollisionHandler.ResizeNormalCollider();
     m_HipHeightAdjust = -0.1f;
 }
예제 #8
0
    void Start()
    {
        rb             = GetComponent <Rigidbody2D>();
        col            = GetComponent <PlayerCollisionHandler>();
        joint          = GetComponent <DistanceJoint2D>();
        animator       = GetComponent <Animator>();
        spriteRenderer = GetComponent <SpriteRenderer>();

        x   = 0;
        y   = 0;
        dir = Vector2.zero;
    }
예제 #9
0
 void SetSwimStateDeepWater()
 {
     //Debug.Log("SetSwimStateDeepWater");
     m_SwimState = SwimmingState.InDeepWater;
     if (m_AnimStatePlayer != null)
     {
         m_AnimStatePlayer.SetSwimState(m_SwimState);
     }
     PlayerCollisionHandler.ResizeSwimmCollider();
     m_HipHeightAdjust  = 0.0f;
     m_bDivingIntoWater = false;
 }
예제 #10
0
 void Update()
 {
     PlayerCollisionHandler.StartCollisions(HorizontalMovement.HorizontalMovementState,
                                            PlayerStatusVariables.facingDirection);
     HorizontalMovement.StartMovement();
     HorizontalMovement.PressMovementHandler();
     VerticalMovement.StartMovement();
     VerticalMovement.PressMovementHandler();
     MiscellaneousMovement.StartMovement();
     MiscellaneousMovement.PressMovementHandler();
     CombatMovement.StartMovement();
     CombatMovement.PressMovementHandler();
 }
예제 #11
0
 void SetSwimStateDiving()
 {
     //Debug.Log("SetSwimStateDiving: Diving");
     m_SwimState = SwimmingState.Diving;
     if (m_AnimStatePlayer != null)
     {
         m_AnimStatePlayer.SetSwimState(m_SwimState);
     }
     PlayerCollisionHandler.ResizeSwimmCollider();
     m_HipHeightAdjust = 0.0f;
     if (physics != null)
     {
         physics.SetFreeFallSpeed(0.085f);
     }
 }
예제 #12
0
 void SetSwimStateNone()
 {
     //Debug.Log("SetSwimStateNone: Setting Normal Physics (e.g standing jump)");
     m_SwimState = SwimmingState.None;
     if (m_AnimStatePlayer != null)
     {
         m_AnimStatePlayer.SetSwimState(m_SwimState);
     }
     PlayerCollisionHandler.ResizeNormalCollider();
     m_HipHeightAdjust = -0.1f;
     if (physics != null)
     {
         physics.SetFreeFallSpeed(2.5f);
     }
 }
            private static GameObject CreateTrigger(Vector2 start, Vector2 end, string name, Action onEnter, Color c)
            {
                GameObject gameObject = CollisionTrigger.CreatePlane(new Vector3[]
                {
                    new Vector3(start.x, start.y),
                    new Vector3(start.x, end.y),
                    new Vector3(end.x, start.y),
                    new Vector3(end.x, end.y)
                }, name, c);
                PlayerCollisionHandler playerPosTrigger = gameObject.AddComponent <PlayerCollisionHandler>();

                playerPosTrigger.onEnter = onEnter;
                gameObject.SetActive(true);
                return(gameObject);
            }
예제 #14
0
    private void OnGameStartedOrResumed()
    {
        isPlaying = true;
        // Track time playing
        startTime = Time.time;

        scoreLabel.Score        = score = 0;
        ComponentsEnabled       = true;
        scoreLabel.Displayed    = true;
        scoreLabel.DisplayStars = false;
        scoreLabel.GetComponent <Animator>().SetBool(FocusedID, false);

        // Restart game components components
        PlayerController.ResetPlayer();
        SpeedIncreaser.Restart();
        PlayerCollisionHandler.Restart();
    }
예제 #15
0
        protected override void LoadContent()
        {
            EnemySpriteFactory.Instance.LoadAllTextures(Content);
            ItemSpriteFactory.Instance.LoadAllTextures(Content);
            PlayerSpriteFactory.Instance.LoadAllTextures(Content);
            PlayerCollisionHandler.LoadCollisionResponseTable();

            /*Test item collisions from left*/
            PlayerOnItemCollisionTests.AssertPlayerCollectsBalloonLeft();
            PlayerOnItemCollisionTests.AssertPlayerCollectsBananaLeft();
            PlayerOnItemCollisionTests.AssertPlayerCollectsBananaGroupLeft();
            PlayerOnItemCollisionTests.AssertPlayerCollectsKongTileLeft();
            PlayerOnItemCollisionTests.AssertPlayerRollsPlayerBarrelLeft();
            PlayerOnItemCollisionTests.AssertPlayerCollectsTrophyLeft();
            PlayerOnItemCollisionTests.AssertPlayerRollsStandardBarrelLeft();

            /*Test item collisions from right*/
            PlayerOnItemCollisionTests.AssertPlayerCollectsBalloonRight();
            PlayerOnItemCollisionTests.AssertPlayerCollectsBananaRight();
            PlayerOnItemCollisionTests.AssertPlayerCollectsBananaGroupRight();
            PlayerOnItemCollisionTests.AssertPlayerCollectsKongTileRight();
            PlayerOnItemCollisionTests.AssertPlayerRollsPlayerBarrelRight();
            PlayerOnItemCollisionTests.AssertPlayerCollectsTrophyRight();
            PlayerOnItemCollisionTests.AssertPlayerRollsStandardBarrelRight();

            /*Test item collisions from bottom*/
            PlayerOnItemCollisionTests.AssertPlayerCollectsBalloonBottom();
            PlayerOnItemCollisionTests.AssertPlayerCollectsBananaBottom();
            PlayerOnItemCollisionTests.AssertPlayerCollectsBananaGroupBottom();
            PlayerOnItemCollisionTests.AssertPlayerCollectsKongTileBottom();
            PlayerOnItemCollisionTests.AssertPlayerRollsPlayerBarrelBottom();
            PlayerOnItemCollisionTests.AssertPlayerCollectsTrophyBottom();
            PlayerOnItemCollisionTests.AssertPlayerRollsStandardBarrelBottom();

            /*Test item collisions from top*/
            PlayerOnItemCollisionTests.AssertPlayerCollectsBalloonTop();
            PlayerOnItemCollisionTests.AssertPlayerCollectsBananaTop();
            PlayerOnItemCollisionTests.AssertPlayerCollectsBananaGroupTop();
            PlayerOnItemCollisionTests.AssertPlayerCollectsKongTileTop();
            PlayerOnItemCollisionTests.AssertPlayerRollsPlayerBarrelTop();
            PlayerOnItemCollisionTests.AssertPlayerCollectsTrophyTop();
            PlayerOnItemCollisionTests.AssertPlayerRollsStandardBarrelTop();

            /*Test enemy collisions from left*/
            //PlayerOnEnemyCollisionTests.AssertGnawtyKillsPlayerLeft();
            PlayerOnEnemyCollisionTests.AssertKritterKillsPlayerLeft();
            PlayerOnEnemyCollisionTests.AssertKlumpKillsPlayerLeft();
            PlayerOnEnemyCollisionTests.AssertNeckyKillsPlayerLeft();

            /*Test enemy collisions from right*/
            //PlayerOnEnemyCollisionTests.AssertGnawtyKillsPlayerRight();
            PlayerOnEnemyCollisionTests.AssertKritterKillsPlayerRight();
            PlayerOnEnemyCollisionTests.AssertKlumpKillsPlayerRight();
            PlayerOnEnemyCollisionTests.AssertNeckyKillsPlayerRight();

            /*Test enemy collisions from top*/
            //PlayerOnEnemyCollisionTests.AssertGnawtyKillsPlayerBottom();
            PlayerOnEnemyCollisionTests.AssertKritterKillsPlayerBottom();
            PlayerOnEnemyCollisionTests.AssertKlumpKillsPlayerBottom();
            PlayerOnEnemyCollisionTests.AssertNeckyKillsPlayerBottom();

            /*Test player kill enemy collisions*/
            PlayerOnEnemyCollisionTests.AssertPlayerKillsGnawty();
            PlayerOnEnemyCollisionTests.AssertPlayerKillsKlump();
            PlayerOnEnemyCollisionTests.AssertPlayerKillsKritter();
            PlayerOnEnemyCollisionTests.AssertPlayerKillsNecky();

            /*Test player kill enemy by rolling from left collisions*/
            PlayerOnEnemyCollisionTests.AssertPlayerKillsGnawtyRollLeft();
            PlayerOnEnemyCollisionTests.AssertPlayerKillsKlumpRollLeft();
            PlayerOnEnemyCollisionTests.AssertPlayerKillsKritterRollLeft();
            PlayerOnEnemyCollisionTests.AssertPlayerKillsNeckyRollLeft();

            /*Test player kill enemy by rolling from right collisions*/
            PlayerOnEnemyCollisionTests.AssertPlayerKillsGnawtyRollRight();
            PlayerOnEnemyCollisionTests.AssertPlayerKillsKlumpRollRight();
            PlayerOnEnemyCollisionTests.AssertPlayerKillsKritterRollRight();
            PlayerOnEnemyCollisionTests.AssertPlayerKillsNeckyRollRight();
        }
예제 #16
0
    int m_bPlayerInstanceCount = 0;  //flag to disable multiple player instances
    void InitialiseInstance(Parser.Tr2Item tr2item)
    {
        GameObject go = tr2item.UnityObject;

        go.name += " " + tr2item.ObjectID;
        if (tr2item.ObjectID == 0)
        {
            if (m_bPlayerInstanceCount == 1)
            {
                GameObject.Destroy(tr2item.UnityObject);
                return;
            }
            //playable character found!
            m_Player                  = go;
            m_Player.layer            = UnityLayer.Player;
            m_PrevPlayPos             = m_Player.transform.position;
            m_Player.transform.parent = m_LevelRoot;

            if (m_leveldata.Camera != null)
            {
                m_leveldata.Camera.target = m_Player.transform;
            }
            LaraStatePlayer stateplayer = m_Player.AddComponent <LaraStatePlayer>();
            stateplayer.tranimations = m_DynamicPrefabs[0].AnimClips;
            m_Player.name            = "Lara";

            GameObject FlashLight = new GameObject("Fire Torch");
            FlashLight.AddComponent <FlashLightStatePlayer>();
            Light lt = FlashLight.AddComponent <Light>();
            lt.type      = LightType.Spot;
            lt.range     = 5;
            lt.spotAngle = 70;
            lt.intensity = 5;

            FlashLight.transform.parent   = m_Player.transform.Find("objPart:0");//.Find("objPart:7").Find("objPart:14");
            FlashLight.transform.position = FlashLight.transform.parent.position;
            FlashLight.transform.forward  = FlashLight.transform.parent.forward;
            lt.enabled = false;

            Player player = go.AddComponent <Player>();
            player.m_Tr2Item = tr2item;
            HealthMonitor          healthmon      = go.AddComponent <HealthMonitor>();
            PlayerCollisionHandler playercollider = go.AddComponent <PlayerCollisionHandler>();

            //Initialise Current Active Room for player
            player.m_AnimStatePlayer = stateplayer;
            player.m_Room            = SetRoomForPlayer();
            if (player.m_Room != null)
            {
                Debug.Log("Player Rooms: " + player.m_Room.name);
                player.SetSwimState(player.m_Room);
            }
            AICondition.SetActive(m_Player, true);

            //set every game object under player as player
            Transform[] objs = m_Player.GetComponentsInChildren <Transform>();
            foreach (Transform t in objs)
            {
                t.gameObject.layer = UnityLayer.Player;
            }

            //Add Charecter light
            GameObject LaraLight = new GameObject("Lara Light");
            Light      light     = LaraLight.AddComponent <Light>();
            light.transform.position = m_Player.transform.position;
            light.type = LightType.Directional;
            light.transform.forward = Vector3.Reflect(Vector3.one, -Vector3.up);
            light.transform.parent  = m_Player.transform;
            light.cullingMask       = MaskedLayer.Player;
            light.intensity         = 0.3f;
            light.gameObject.AddComponent <LaraLightStatePlayer>();

            m_bPlayerInstanceCount = 1;
        }
        //check if we have any custom behabiour  script for object
        else if (m_OnAttachBehabiourScript != null && !m_OnAttachBehabiourScript(tr2item.UnityObject, tr2item.ObjectID, m_Player, tr2item))
        {
            go.AddComponent <DefaultStatePlayer>(); // user did not attached any custom behabiour. so use default one
            AICondition.SetActive(go, true);        //Added default activation state active
        }
    }
예제 #17
0
 private void Awake()
 {
     Instance = this;
 }
예제 #18
0
 private void Awake()
 {
     _enemyTrigger = GetComponent <PlayerCollisionHandler>();
 }
예제 #19
0
 private void Awake()
 {
     rb              = GetComponent <Rigidbody2D>();
     playerCol       = GetComponent <PlayerCollisionHandler>();
     desiredPosition = transform.position;
 }
 public virtual void HandleCollision(PlayerCollisionHandler other, Vector3 fromDirection, float distance)
 {
     DefaultHandleCollision(other, fromDirection, distance);
 }