Пример #1
0
    /*Animation BreakDown
     * 0 - Standing Still
     * 1 - Running
     * 2 - Squatting
     * 3 - Reverse Squatting
     * 4 - Squatting Still
     * 5 - Squat Running
     */


    void Awake()
    {
        controller  = GetComponent <Controller> ();
        getDamage   = GetComponent <GetDamage> ();
        allKnow     = GameObject.Find("theOmniscient").GetComponent <GatherAllKnowledge> ();
        crouching   = false;
        uncrouching = false;
        onMyKnees   = false;
        Physics2D.IgnoreLayerCollision(8, 8);

        conAnchs = new Vector2[] {
            new Vector2(0.025f, 0.37f),
            new Vector2(0.025f, 0.315f),
            new Vector2(0.025f, 0.2605f),
            new Vector2(0.025f, 0.2055f),
            new Vector2(0.015f, 0.15f),
        };

        if (GameObject.Find("CheckPoints"))
        {
            checkPoint = GameObject.Find("CheckPoints").GetComponent <CheckPoint>();
        }

        char1          = false;
        char2          = false;
        teleHovering   = false;
        copterHovering = false;

        recoRotoSpeed = 25f;
        angleTol      = 3f;
        liftForce     = 75f;
        jetSpeed      = 300f;
        unitTimeFrame = .083f;
        platforms     = new Collider2D[20];
        minMoveRad    = .4f;

        if (GameObject.Find("ZoomZone"))
        {
            zoomZone = GameObject.Find("ZoomZone").GetComponent <ZoomZone>();
        }

        if (gameObject.name == "Hero1")
        {
            char1                = true;
            hud                  = GameObject.Find("HUD1").GetComponent <HUD> ();
            healthBar            = GameObject.Find("HealthBar1").GetComponent <HealthBar> ();
            arm                  = GameObject.Find("Arm1");
            shield               = GameObject.Find("Shield1");
            hammer               = GameObject.Find("Hammer1");
            tractorBeam          = GameObject.Find("TractorBeam1");
            weaponDetectorScript = GameObject.Find("WeaponDetector1").GetComponent <WeaponDetectorScript> ();
            chargeDisplay        = GameObject.Find("ChargeBar1").GetComponent <ChargeDisplay> ();
        }
        else
        {
            char2       = true;
            hud         = GameObject.Find("HUD2").GetComponent <HUD> ();
            healthBar   = GameObject.Find("HealthBar2").GetComponent <HealthBar> ();
            arm         = GameObject.Find("Arm2");
            shield      = GameObject.Find("Shield2");
            hammer      = GameObject.Find("Hammer2");
            tractorBeam = GameObject.Find("TractorBeam2");

            weaponDetectorScript = GameObject.Find("WeaponDetector2").GetComponent <WeaponDetectorScript> ();
            chargeDisplay        = GameObject.Find("ChargeBar2").GetComponent <ChargeDisplay> ();
        }

        polyCols = GetComponents <PolygonCollider2D> ();
        cirCol   = GetComponent <CircleCollider2D> ();

        hamCol         = hammer.GetComponent <BoxCollider2D> ();
        shieldCol      = shield.GetComponent <PolygonCollider2D> ();
        tractorBeamCol = tractorBeam.GetComponent <PolygonCollider2D> ();
        weaponCol      = weaponDetectorScript.GetComponent <CircleCollider2D> ();

        spriteArm    = arm.GetComponent <SpriteRenderer> ();
        spriteShield = shield.GetComponent <SpriteRenderer> ();
        spriteHero   = GetComponent <SpriteRenderer> ();
        spriteHammer = hammer.GetComponent <SpriteRenderer> ();

        startingBounce   = cirCol.sharedMaterial.bounciness;
        startingFriction = cirCol.sharedMaterial.friction;
        armRotateScript  = arm.GetComponent <ArmRotate> ();
        armRot           = arm.transform.rotation;
        armHinge         = arm.GetComponent <HingeJoint2D>();
        shieldHinge      = shield.GetComponent <HingeJoint2D>();
        hammerHinge      = hammer.GetComponent <HingeJoint2D> ();

        alive = true;
        //transform.position = Vector3.zero;

        if (Application.loadedLevelName == "BattleArena")
        {
            spawnSpots     = new Vector3[6];
            spawnSpots[0]  = new Vector3(0f, -2f, 0f);
            spawnSpots [1] = new Vector3(-2f, -1f, 0f);
            spawnSpots [2] = new Vector3(2f, -1f, 0f);
            spawnSpots [3] = new Vector3(0f, 0f, 0f);
            spawnSpots [4] = new Vector3(0f, -2f, 0f);
            spawnSpots [5] = new Vector3(0f, -2f, 0f);
        }
        else if (Application.loadedLevelName == "BattleShrine")
        {
            spawnSpots     = new Vector3[6];
            spawnSpots [0] = new Vector3(0f, 2.5f, 0f);
            spawnSpots [1] = new Vector3(-1f, 0f, 0f);
            spawnSpots [2] = new Vector3(1f, 0f, 0f);
            spawnSpots [3] = new Vector3(0f, -2.5f, 0f);
            spawnSpots [4] = new Vector3(-3.5f, -.75f, 0f);
            spawnSpots [5] = new Vector3(3.5f, -.75f, 0f);
        }
        else
        {
            spawnSpots     = new Vector3[6];
            spawnSpots [0] = new Vector3(0f, -2f, 0f);
            spawnSpots [1] = new Vector3(-2f, -1f, 0f);
            spawnSpots [2] = new Vector3(2f, -1f, 0f);
            spawnSpots [3] = new Vector3(0f, 0f, 0f);
            spawnSpots [4] = new Vector3(0f, -2f, 0f);
            spawnSpots [5] = new Vector3(0f, -2f, 0f);
        }


        wallJumpLagTime = .7f;

        runningVelThresh       = .3f;
        runningCrouchVelThresh = .1f;
        wallDelay = false;

        heroAnimator = GetComponent <Animator>();

        time2Respawn = 2f;

        startingHealth = 100;

        fallTimeDelay            = 1f;
        runningSpeed             = 7.5f;
        floatingSpeed            = runningSpeed;
        jumpSpeed                = 200f;
        fallSpeed                = -50f;
        maxVelocity              = new Vector2(2f, 5f);
        maxFloatVelocity         = new Vector2(2.5f, 2.5f);
        floorDetectionBoxHeights = new Vector2(0.023f, 0.2f);
        forceX = 0;
        forceY = 0;
        i      = 0;
        damage = 0;


        startingJumpSpeed    = jumpSpeed;
        startingRunningSpeed = runningSpeed;
        startingFallSpeed    = fallSpeed;
        startingMaxVelocity  = maxVelocity.x;

        followP1 = true;
    }