Example #1
0
    public LevelManager.CheckpointData.PlayerData MakeCheckpoint()
    {
        LevelManager.CheckpointData.PlayerData data = new LevelManager.CheckpointData.PlayerData();
        data.worldPosition = transform.position;
        data.localRotation = transform.localEulerAngles;
        data.health        = currentHealth;
        data.armor         = armorDurability;
        data.maxArmor      = maxArmorDurability;
        data.rageAmount    = rageAmount;

        data.guns = new LevelManager.CheckpointData.GunData[guns.Length];

        for (int i = 1; i < guns.Length; i++)
        {
            if (guns[i] != null)
            {
                data.guns[i].collected     = true;
                data.guns[i].ammoRemaining = guns[i].ammoRemaining;
            }
            else
            {
                data.guns[i].collected = false;
            }
        }

        data.keys = new List <KeyPickup.Key>(keys);

        data.gunIndex = currentGunIndex;

        return(data);
    }
Example #2
0
    public void LoadCheckpoint(LevelManager.CheckpointData.PlayerData data)
    {
        deathText.SetActive(false);
        isAlive = true;
        GetComponent <CharacterController>().enabled = false;
        StartCoroutine(LockControlTemporarily());
        transform.position         = data.worldPosition;
        transform.localEulerAngles = data.localRotation;

        minimapCamera.enabled = false;
        CharacterActions.instance.fpsCamera.enabled = false;
        CharacterActions.instance.fpsCamera.transform.localEulerAngles = Vector3.zero;
        CharacterActions.instance.fpsCamera.enabled = true;
        minimapCamera.enabled = true;

        currentHealth      = data.health;
        armorDurability    = data.armor;
        maxArmorDurability = data.maxArmor;
        rageAmount         = data.rageAmount;
        hurtVignette.color = new Color(1, 1, 1, 0);

        for (int i = 1; i < data.guns.Length; i++)
        {
            if (data.guns[i].collected)
            {
                guns[i].SetAmmo(data.guns[i].ammoRemaining);
            }
            else if (guns[i] != null)
            {
                guns[i] = null;
            }
        }

        ClearKeys();
        keys = new List <KeyPickup.Key>(data.keys);

        SwapGun(data.gunIndex);

        GetComponent <CharacterController>().enabled = true;

        ResetUI();
    }