Assemblies Made and Refactored Code Folders
Created assemblies for the new design code. Relocated legacy scripts into a legacy folder and made a "new_design" folder for new design.
This commit is contained in:
8
Assets/Scripts/Legacy/Levels/Level0Scripts.meta
Normal file
8
Assets/Scripts/Legacy/Levels/Level0Scripts.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1f02ae7c1e256284fb81278af2697803
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,195 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class BasicLevelProgressionSystem : MonoBehaviour
|
||||
{
|
||||
//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
|
||||
}
|
||||
|
||||
[SerializeField] private UI.ObjectiveText objectiveGui;
|
||||
|
||||
[SerializeField] private UI.WaypointMarker marker;
|
||||
|
||||
[SerializeField] private Player.PlayerComponent player;
|
||||
//[SerializeField]
|
||||
//private float minDist = 3;
|
||||
|
||||
[SerializeField] private List<ProgressionSection> sections;
|
||||
|
||||
private int progress;
|
||||
private bool transitioning;
|
||||
public List<ProgressionSection> Sections => sections;
|
||||
|
||||
// Start is called before the first frame update
|
||||
private void Start()
|
||||
{
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
private void Update()
|
||||
{
|
||||
var cur = getCurrent().getActive();
|
||||
if (cur != null)
|
||||
{
|
||||
if (!getCurrent().objectiveOneMet)
|
||||
{
|
||||
marker.target = cur;
|
||||
objectiveGui.visualObjects[0].text.text = getCurrent().instruction1;
|
||||
objectiveGui.visualObjects[1].text.text = getCurrent().istruction2;
|
||||
}
|
||||
else if (!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, getCurrent().getActive().position) < 3)
|
||||
{
|
||||
var canIterate = getCurrent().Iterate();
|
||||
if (!canIterate)
|
||||
{
|
||||
if (!getCurrent().objectiveOneMet && getCurrent().conditionalOne == InputType.LOCATION)
|
||||
OnePassed();
|
||||
else if (getCurrent().objectiveOneMet && getCurrent().conditionalTwo == InputType.LOCATION &&
|
||||
!getCurrent().objectiveTwoMet) TwoPassed();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (other.gameObject.GetComponentInParent<Player.PlayerComponent>() != null) ProgressCurrentIfCollide();
|
||||
}
|
||||
|
||||
private void ProgressCurrentIfCollide()
|
||||
{
|
||||
}
|
||||
|
||||
private void OnePassed()
|
||||
{
|
||||
getCurrent().objectiveOneMet = true;
|
||||
getCurrent().Progress();
|
||||
|
||||
objectiveGui.visualObjects[0].isComplete = true;
|
||||
}
|
||||
|
||||
public void TwoPassed()
|
||||
{
|
||||
if (transitioning) return;
|
||||
getCurrent().objectiveTwoMet = true;
|
||||
objectiveGui.visualObjects[1].isComplete = true;
|
||||
objectiveGui.FadeOut();
|
||||
transitioning = true;
|
||||
StartCoroutine(waitForFadeIn());
|
||||
}
|
||||
|
||||
public void ProgressCurrentIfInput(InputType type)
|
||||
{
|
||||
if (getCurrent().AtEnd() && getCurrent().conditionalOne == type && !getCurrent().objectiveOneMet)
|
||||
OnePassed();
|
||||
else if (getCurrent().AtEnd() && getCurrent().conditionalTwo == type) TwoPassed();
|
||||
}
|
||||
|
||||
public ProgressionSection getCurrent()
|
||||
{
|
||||
return sections[progress];
|
||||
}
|
||||
|
||||
private IEnumerator waitForFadeIn()
|
||||
{
|
||||
yield return new WaitForSeconds(3);
|
||||
if (sections.Count > progress + 1)
|
||||
{
|
||||
progress++;
|
||||
objectiveGui.FadeIn();
|
||||
objectiveGui.visualObjects[0].isComplete = false;
|
||||
objectiveGui.visualObjects[1].isComplete = false;
|
||||
}
|
||||
|
||||
transitioning = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[Serializable]
|
||||
public class ProgressionSection
|
||||
{
|
||||
[SerializeField] public string instruction1;
|
||||
|
||||
[SerializeField] public string istruction2;
|
||||
|
||||
[SerializeField] public bool objectiveOneMet;
|
||||
|
||||
[SerializeField] public BasicLevelProgressionSystem.InputType conditionalOne;
|
||||
|
||||
[SerializeField] public bool objectiveTwoMet;
|
||||
|
||||
[SerializeField] public BasicLevelProgressionSystem.InputType conditionalTwo;
|
||||
|
||||
[SerializeField] public List<Transform> positionsOne = new();
|
||||
|
||||
[SerializeField] public List<Transform> positionsTwo = new();
|
||||
|
||||
[HideInInspector] public int activePosition;
|
||||
|
||||
public Transform getActive()
|
||||
{
|
||||
if (!objectiveOneMet)
|
||||
return positionsOne[activePosition];
|
||||
return positionsTwo[activePosition];
|
||||
}
|
||||
|
||||
public bool Iterate()
|
||||
{
|
||||
if (!objectiveOneMet && activePosition + 1 < positionsOne.Count)
|
||||
{
|
||||
activePosition += 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (objectiveOneMet && !objectiveTwoMet && activePosition + 1 < positionsTwo.Count)
|
||||
{
|
||||
activePosition += 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool AtEnd()
|
||||
{
|
||||
if (!objectiveOneMet && activePosition + 1 < positionsOne.Count)
|
||||
return false;
|
||||
if (objectiveOneMet && !objectiveTwoMet && activePosition + 1 < positionsTwo.Count) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public void Progress()
|
||||
{
|
||||
activePosition = 0;
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b320804c8114b8e4b954e2f51b5b8083
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
112
Assets/Scripts/Legacy/Levels/Level0Scripts/LevelZeroSpecial.cs
Normal file
112
Assets/Scripts/Legacy/Levels/Level0Scripts/LevelZeroSpecial.cs
Normal file
@ -0,0 +1,112 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
public class LevelZeroSpecial : MonoBehaviour
|
||||
{
|
||||
//[SerializeField]
|
||||
//private int initalPlaceIndex = 0;
|
||||
[SerializeField] private Item.DoorInteractable recepticleOne;
|
||||
|
||||
[SerializeField] private BasicLevelProgressionSystem progression;
|
||||
|
||||
[SerializeField] private int enabledOn = 4;
|
||||
|
||||
[SerializeField] private List<Item.HeavyInteractableItem> powercores;
|
||||
|
||||
[SerializeField] private List<Item.DoorInteractable> recepticals;
|
||||
|
||||
[SerializeField] private UI.WaypointMarker marker;
|
||||
|
||||
[SerializeField] private Animator cover;
|
||||
|
||||
[SerializeField] private Animator gate;
|
||||
|
||||
[SerializeField] private GameObject exitCollider;
|
||||
|
||||
[SerializeField] private Player.PlayerComponent player;
|
||||
|
||||
[SerializeField] private UI.WaypointMarker marker2Ref;
|
||||
|
||||
[SerializeField] private UI.WaypointMarker marker3Ref;
|
||||
|
||||
[SerializeField] private Game.Optimizer finalRoomOptimizer;
|
||||
|
||||
private int countPowered;
|
||||
private bool isEnabled;
|
||||
|
||||
private readonly List<UI.WaypointMarker> markers = new();
|
||||
|
||||
private bool transitioningOut;
|
||||
|
||||
// Start is called before the first frame update
|
||||
private void Start()
|
||||
{
|
||||
marker2Ref.gameObject.SetActive(false);
|
||||
marker3Ref.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
private 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 (var recepitcal in recepticals)
|
||||
if (recepitcal.Powered)
|
||||
{
|
||||
countPowered++;
|
||||
for (var i = 0; i < markers.Count; i++)
|
||||
{
|
||||
var marker = markers[i];
|
||||
if (marker.gameObject.activeInHierarchy)
|
||||
if (marker.target == recepitcal.transform)
|
||||
{
|
||||
marker.gameObject.SetActive(false);
|
||||
markers.Remove(marker);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (countPowered == 3 && !transitioningOut)
|
||||
{
|
||||
//transition to cutscene
|
||||
|
||||
transitioningOut = true;
|
||||
gate.Play("Open");
|
||||
finalRoomOptimizer.Enable();
|
||||
}
|
||||
|
||||
if (transitioningOut)
|
||||
if (player.transform.position.z > exitCollider.transform.position.z)
|
||||
StartCoroutine(transitionOut());
|
||||
}
|
||||
|
||||
|
||||
private IEnumerator transitionOut()
|
||||
{
|
||||
cover.Play("Cover_load_out");
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
SceneManager.LoadScene(0);
|
||||
}
|
||||
}
|
@ -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