start work on microgames

This commit is contained in:
myondev 2026-09-03 08:59:35 -07:00
parent ef733054ef
commit ecff3c6b69
6 changed files with 105 additions and 0 deletions

View file

@ -21,6 +21,7 @@ public class LevelSwitcher : MonoBehaviour
#endregion
[SerializeField] private int mapSceneIndex;
[SerializeField] private int microGameSceneIndex;
public void LoadMap(Map requestedMap, int exitIndex)
{
SceneManager.LoadScene(mapSceneIndex);
@ -34,4 +35,13 @@ public class LevelSwitcher : MonoBehaviour
{
SceneManager.LoadScene(sceneIndex);
}
public void LoadMicroGame(MicroGameHandler gameToLoad)
{
SceneManager.LoadScene(microGameSceneIndex);
Instantiate(gameToLoad);
//instantiate the handler
//go from there
}
}

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f2ee0c3446febbd66a9270737b9fe8f4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
using UnityEngine;
public class MarisaPotionMaker : MicroGameHandler
{
public Potion currentPotion;
public List<Potion> requestedPotions = new();
public List<Potion> completedPotions = new();
public List<Potion> failedPotions = new(); //bad to have 3 lists but whatever.
public int currentPotionIndex;
public class Potion
{
public string[] chemicals;
}
public void AddChemical(string chemical)
{
if (currentPotion.chemicals[currentPotionIndex+1] == chemical )
{
currentPotionIndex++;
if (currentPotion.chemicals.Length > currentPotionIndex)
{
CompletePotion(currentPotion, true);
}
}
else
{
CompletePotion(currentPotion, false);
}
}
public void CompletePotion(Potion potion, bool success)
{
requestedPotions.Remove(potion); //doesn't work if there's multiple of the same potion....
if (success)
{
completedPotions.Add(potion);
}
else
{
failedPotions.Add(potion);
}
}
}

View file

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 69306313583628d9894309e3e9345c73

View file

@ -0,0 +1,37 @@
using System;
using UnityEngine;
public class MicroGameHandler : MonoBehaviour
{
public float timeLimit;
private float currentTime;
public int score;
public int minimumScore;
public bool loseOnTimeLimit;
private void Update()
{
currentTime -= Time.deltaTime;
if (currentTime < 0)
{
TimeOut();
}
}
private void TimeOut()
{
if (loseOnTimeLimit || (minimumScore > 0 && score < minimumScore))
{
FailGame();
}
}
public void FailGame()
{
}
public void WinGame()
{
}
}

View file

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 0f68dbe088efc507bba0135717e2ef08