HeavenStudioPlus/Assets/Scripts/Games/OctopusMachine/OctopusMachine.cs
AstrlJelly 85f9b508a2
Octopus Machine (Initialization) (#367)
* oops! deleted the branch with no backup!

basically have to rebuild prefab. at least i kept the animations and scripts.
not actually that bad but like half an hour of my life was lost getting all these files back together

* started moving animation stuff and allat to a separate Octopus.cs script
* changed order of octopodes; it's much more intuitive for it to be left to right than right to left

i think the sprites are too low res tho :( only 2k for 22 sprites not including the text stuff

* did some stuf

* pushing stuff for unity editor

* basically just everything. still more work that needs to be done tho

* unity update

color stuff idk

* icon
2023-03-27 03:30:11 +00:00

170 lines
No EOL
5.9 KiB
C#

using HeavenStudio.Util;
using System;
using System.Collections.Generic;
using UnityEngine;
// using GhostlyGuy's Balls;
namespace HeavenStudio.Games.Loaders
{
using static Minigames;
public static class NtrOctopusMachineLoader
{
public static Minigame AddGame(EventCaller eventCaller) {
return new Minigame("OctopusMachine", "Octopus Machine \n<color=#eb5454>[INITIALIZATION ONLY]</color>", "FFf362B", false, false, new List<GameAction>()
{
new GameAction("Bop", "Bop")
{
function = delegate {
var e = eventCaller.currentEntity;
OctopusMachine.instance.Bop(e.beat, e["disableBop"], e[""], e["whichBop"]);
},
parameters = new List<Param>()
{
new Param("bop", false, "Which Bop?", "Plays a sepcific bop type"),
new Param("whichBop", OctopusMachine.Bops.Bop, "Which Bop?", "Plays a sepcific bop type"),
},
defaultLength = 0.5f,
},
new GameAction("Expand", "Expand")
{
function = delegate {
var e = eventCaller.currentEntity;
OctopusMachine.instance.Expand(e.beat);
},
defaultLength = 1f,
preFunction = delegate {
var e = eventCaller.currentEntity;
OctopusMachine.instance.Prepare(e.beat);
},
},
new GameAction("Prepare", "Prepare")
{
function = delegate {
var e = eventCaller.currentEntity;
OctopusMachine.instance.Prepare(e.beat);
},
defaultLength = 0.5f,
},
new GameAction("OctopusAnimation", "Octopus Animation")
{
function = delegate {
var e = eventCaller.currentEntity;
OctopusMachine.instance.PlayAnimation(e.beat, e["keepWhich"], e["whichBop"]);
},
parameters = new List<Param>()
{
new Param("keepWhich", true, "Bop Like This?", "Keep bopping using the selected bop"),
new Param("whichBop", OctopusMachine.Bops.Bop, "Which Bop?", "Plays a sepcific bop type"),
},
defaultLength = 0.5f,
},
new GameAction("GameplayModifiers", "Gameplay Modifiers")
{
function = delegate {
var e = eventCaller.currentEntity;
OctopusMachine.instance.GameplayModifiers(e.beat, e["color"], e["octoColor"], e["oct1"], e["oct2"], e["oct3"]);
},
parameters = new List<Param>()
{
new Param("color", new Color(1f, 0.84f, 0), "Background Color", "Set the background color"),
new Param("octoColor", new Color(1f, 0.145f, 0.5f), "Octopodes Color", "Set the octopode's color"),
new Param("oct1", true, "Show Octopus 1?", "Keep bopping using the selected bop"),
new Param("oct2", true, "Show Octopus 2?", "Keep bopping using the selected bop"),
new Param("oct3", true, "Show Octopus 3?", "Keep bopping using the selected bop"),
},
defaultLength = 0.5f,
},
});
}
}
}
namespace HeavenStudio.Games
{
using Scripts_OctopusMachine;
public partial class OctopusMachine : Minigame
{
[Header("Sprite Renderers")]
[SerializeField] SpriteRenderer Background;
[Header("Octopodes")]
public Octopus Octopus1;
public Octopus Octopus2;
public Octopus Octopus3;
public bool isHappy;
public bool isAngry;
public bool isShocked;
public bool isPreparing;
public bool bopOn = true;
public float lastReportedBeat = 0f;
public static OctopusMachine instance;
public enum Bops
{
Bop,
Joyful,
Upset,
Shocked,
}
void Awake()
{
instance = this;
}
private void LateUpdate()
{
}
private void AllFunction()
{
//Octopus1;
}
public void Prepare(float beat)
{
//AllAnimate("Prepare");
isPreparing = true;
}
public void Expand(float beat)
{
Debug.Log("expand event rn");
}
public void Bop(float beat, float length, bool doesBop, bool autoBop)
{
bopOn = autoBop;
if (doesBop)
{
for (int i = 0; i < length; i++)
{
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + i, delegate
{
})
});
}
}
}
public void PlayAnimation(float beat, bool keepBopping, int whichBop)
{
}
public void GameplayModifiers(float beat, Color bgColor, Color octoColor, bool oct1, bool oct2, bool oct3)
{
Background.color = bgColor;
Octopus1.GameplayModifiers(oct1, octoColor);
Octopus2.GameplayModifiers(oct2, octoColor);
Octopus3.GameplayModifiers(oct3, octoColor);
}
}
}