fixed camera system and brightened recipticles
This commit is contained in:
8
Assets/Scripts/Levels/Level0Scripts.meta
Normal file
8
Assets/Scripts/Levels/Level0Scripts.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1f02ae7c1e256284fb81278af2697803
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,233 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
public class BasicLevelProgressionSystem : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
private ObjectiveText objectiveGui;
|
||||
[SerializeField]
|
||||
private WaypointMarker marker;
|
||||
[SerializeField]
|
||||
private PlayerComponent player;
|
||||
[SerializeField]
|
||||
private float minDist = 3;
|
||||
|
||||
[SerializeField]
|
||||
private List<ProgressionSection> sections;
|
||||
public List<ProgressionSection> Sections { get { return sections; } }
|
||||
//Fire1 is click or A
|
||||
//Place is F or "Y" button
|
||||
//Cycle is Tab or RB
|
||||
//Siwtch is Shift or "X"
|
||||
public enum InputType { FIRE1, PLACE, CYCLE, SWITCH, COLLISION, LOCATION,AIM,EXTERNAL};
|
||||
private int progress = 0;
|
||||
private bool transitioning = false;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
Transform cur = this.getCurrent().getActive();
|
||||
if(cur != null)
|
||||
{
|
||||
if (!this.getCurrent().objectiveOneMet)
|
||||
{
|
||||
marker.target = cur;
|
||||
objectiveGui.visualObjects[0].text.text = this.getCurrent().instruction1;
|
||||
objectiveGui.visualObjects[1].text.text = this.getCurrent().istruction2;
|
||||
}
|
||||
else if(!this.getCurrent().objectiveTwoMet)
|
||||
{
|
||||
marker.target = cur;
|
||||
}
|
||||
}
|
||||
|
||||
if(Input.GetButtonDown("Fire1")||Input.GetAxis("Fire1")>0.5f&&!transitioning)
|
||||
{
|
||||
ProgressCurrentIfInput(InputType.FIRE1);
|
||||
}
|
||||
if (Input.GetButtonDown("TempPlace"))
|
||||
{
|
||||
ProgressCurrentIfInput(InputType.PLACE);
|
||||
}
|
||||
if (Input.GetButtonDown("CycleItems"))
|
||||
{
|
||||
ProgressCurrentIfInput(InputType.CYCLE);
|
||||
}
|
||||
if(Input.GetButtonDown("Fire3"))
|
||||
{
|
||||
|
||||
ProgressCurrentIfInput(InputType.SWITCH);
|
||||
}
|
||||
if(Input.GetAxis("Aim")>.5f || Input.GetButtonDown("Aim"))
|
||||
{
|
||||
if(!transitioning)
|
||||
ProgressCurrentIfInput(InputType.AIM);
|
||||
}
|
||||
|
||||
if (Vector3.Distance(player.transform.position, this.getCurrent().getActive().position) < 3)
|
||||
{
|
||||
bool canIterate= this.getCurrent().Iterate();
|
||||
if (!canIterate)
|
||||
{
|
||||
if (!this.getCurrent().objectiveOneMet && this.getCurrent().conditionalOne == InputType.LOCATION)
|
||||
{
|
||||
OnePassed();
|
||||
}else if (this.getCurrent().objectiveOneMet && this.getCurrent().conditionalTwo == InputType.LOCATION && !this.getCurrent().objectiveTwoMet)
|
||||
{
|
||||
TwoPassed();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (other.gameObject.GetComponentInParent<PlayerComponent>() != null)
|
||||
{
|
||||
ProgressCurrentIfCollide();
|
||||
}
|
||||
}
|
||||
|
||||
void ProgressCurrentIfCollide()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void OnePassed()
|
||||
{
|
||||
this.getCurrent().objectiveOneMet = true;
|
||||
this.getCurrent().Progress();
|
||||
|
||||
this.objectiveGui.visualObjects[0].isComplete = true;
|
||||
}
|
||||
public void TwoPassed()
|
||||
{
|
||||
if (transitioning)
|
||||
{
|
||||
return;
|
||||
}
|
||||
this.getCurrent().objectiveTwoMet = true;
|
||||
this.objectiveGui.visualObjects[1].isComplete = true;
|
||||
this.objectiveGui.FadeOut();
|
||||
transitioning = true;
|
||||
StartCoroutine(waitForFadeIn());
|
||||
}
|
||||
public void ProgressCurrentIfInput(InputType type)
|
||||
{
|
||||
|
||||
if (this.getCurrent().AtEnd() && this.getCurrent().conditionalOne == type&&!this.getCurrent().objectiveOneMet)
|
||||
{
|
||||
OnePassed();
|
||||
}else if(this.getCurrent().AtEnd() && this.getCurrent().conditionalTwo == type)
|
||||
{
|
||||
TwoPassed();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public ProgressionSection getCurrent()
|
||||
{
|
||||
|
||||
return this.sections[progress];
|
||||
}
|
||||
|
||||
private IEnumerator waitForFadeIn()
|
||||
{
|
||||
|
||||
yield return new WaitForSeconds(3);
|
||||
if (this.sections.Count > this.progress+1)
|
||||
{
|
||||
this.progress++;
|
||||
this.objectiveGui.FadeIn();
|
||||
this.objectiveGui.visualObjects[0].isComplete = false;
|
||||
this.objectiveGui.visualObjects[1].isComplete = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
transitioning = false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
[System.Serializable]
|
||||
public class ProgressionSection
|
||||
{
|
||||
[SerializeField]
|
||||
public string instruction1;
|
||||
[SerializeField]
|
||||
public string istruction2;
|
||||
[SerializeField]
|
||||
public bool objectiveOneMet = false;
|
||||
[SerializeField]
|
||||
public BasicLevelProgressionSystem.InputType conditionalOne;
|
||||
[SerializeField]
|
||||
public bool objectiveTwoMet = false;
|
||||
[SerializeField]
|
||||
public BasicLevelProgressionSystem.InputType conditionalTwo;
|
||||
|
||||
[SerializeField]
|
||||
public List<Transform> positionsOne= new List<Transform>();
|
||||
[SerializeField]
|
||||
public List<Transform> positionsTwo = new List<Transform>();
|
||||
[HideInInspector]
|
||||
public int activePosition = 0;
|
||||
public Transform getActive()
|
||||
{
|
||||
if (!objectiveOneMet)
|
||||
{
|
||||
return positionsOne[activePosition];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
return positionsTwo[activePosition];
|
||||
}
|
||||
|
||||
}
|
||||
public bool Iterate()
|
||||
{
|
||||
if (!objectiveOneMet && this.activePosition + 1 < positionsOne.Count)
|
||||
{
|
||||
this.activePosition += 1;
|
||||
return true;
|
||||
}else if (objectiveOneMet && !objectiveTwoMet && this.activePosition + 1 < positionsTwo.Count)
|
||||
{
|
||||
this.activePosition += 1;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
public bool AtEnd()
|
||||
{
|
||||
if (!objectiveOneMet && this.activePosition + 1 < positionsOne.Count)
|
||||
{
|
||||
|
||||
return false;
|
||||
}
|
||||
else if (objectiveOneMet && !objectiveTwoMet && this.activePosition + 1 < positionsTwo.Count)
|
||||
{
|
||||
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
public void Progress()
|
||||
{
|
||||
this.activePosition = 0;
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b320804c8114b8e4b954e2f51b5b8083
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
125
Assets/Scripts/Levels/Level0Scripts/LevelZeroSpecial.cs
Normal file
125
Assets/Scripts/Levels/Level0Scripts/LevelZeroSpecial.cs
Normal file
@ -0,0 +1,125 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
public class LevelZeroSpecial : MonoBehaviour
|
||||
{
|
||||
|
||||
[SerializeField]
|
||||
private int initalPlaceIndex = 0;
|
||||
[SerializeField]
|
||||
private DoorInteractable recepticleOne;
|
||||
|
||||
[SerializeField]
|
||||
private BasicLevelProgressionSystem progression;
|
||||
[SerializeField]
|
||||
private int enabledOn = 4;
|
||||
private bool isEnabled = false;
|
||||
|
||||
[SerializeField]
|
||||
private List<HeavyInteractableItem> powercores;
|
||||
[SerializeField]
|
||||
private List<DoorInteractable> recepticals;
|
||||
[SerializeField]
|
||||
private WaypointMarker marker;
|
||||
|
||||
private List<WaypointMarker> markers=new List<WaypointMarker>();
|
||||
private int countPowered = 0;
|
||||
[SerializeField]
|
||||
private Animator cover;
|
||||
[SerializeField]
|
||||
private Animator gate;
|
||||
private bool transitioningOut = false;
|
||||
[SerializeField]
|
||||
private GameObject exitCollider;
|
||||
[SerializeField]
|
||||
private PlayerComponent player;
|
||||
[SerializeField]
|
||||
WaypointMarker marker2Ref;
|
||||
[SerializeField]
|
||||
WaypointMarker marker3Ref;
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
marker2Ref.gameObject.SetActive(false);
|
||||
marker3Ref.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
if (progression.Sections[0] == progression.getCurrent())
|
||||
{
|
||||
if (recepticleOne.Powered)
|
||||
{
|
||||
progression.TwoPassed();
|
||||
//progression.ProgressCurrentIfInput(BasicLevelProgressionSystem.InputType.EXTERNAL);
|
||||
}
|
||||
}
|
||||
countPowered = 0;
|
||||
if (progression.Sections[enabledOn] == progression.getCurrent() && !isEnabled)
|
||||
{
|
||||
isEnabled = true;
|
||||
marker2Ref.gameObject.SetActive(true);
|
||||
marker3Ref.gameObject.SetActive(true);
|
||||
|
||||
|
||||
marker2Ref.target = recepticals[1].transform;
|
||||
|
||||
marker3Ref.target = recepticals[2].transform;
|
||||
markers.Add(marker2Ref);
|
||||
markers.Add(marker3Ref);
|
||||
}
|
||||
if (isEnabled)
|
||||
{
|
||||
|
||||
foreach (DoorInteractable recepitcal in recepticals)
|
||||
{
|
||||
if (recepitcal.Powered)
|
||||
{
|
||||
countPowered++;
|
||||
for(int i = 0; i < markers.Count; i++)
|
||||
{
|
||||
WaypointMarker marker = markers[i];
|
||||
if (marker.gameObject.activeInHierarchy)
|
||||
{
|
||||
if (marker.target = recepitcal.transform)
|
||||
{
|
||||
marker.gameObject.SetActive(true);
|
||||
markers.Remove(marker);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (countPowered == 3 && !transitioningOut)
|
||||
{
|
||||
//transition to cutscene
|
||||
|
||||
transitioningOut = true;
|
||||
gate.Play("Open");
|
||||
|
||||
}
|
||||
if (transitioningOut)
|
||||
{
|
||||
if (player.transform.position.z > exitCollider.transform.position.z)
|
||||
{
|
||||
StartCoroutine(transitionOut());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
IEnumerator transitionOut()
|
||||
{
|
||||
cover.Play("Cover_load_out");
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
SceneManager.LoadScene(0);
|
||||
}
|
||||
}
|
11
Assets/Scripts/Levels/Level0Scripts/LevelZeroSpecial.cs.meta
Normal file
11
Assets/Scripts/Levels/Level0Scripts/LevelZeroSpecial.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a6ee2a8c2974b854f8f08c34f8414193
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Reference in New Issue
Block a user