1
Fork 0
mirror of https://github.com/Steffo99/gravity-fusion.git synced 2024-11-25 01:34:18 +00:00
gravity-fusion/Assets/Components/GameController.cs

128 lines
3.5 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Animations;
public class GameController : MonoBehaviour
{
[Header("Constants")]
public float gravitationConstant = 2;
public int particlesToMerge = 5;
public int scaleMultiplier = 3;
public int particleDurationConstant = 5;
[Header("Black Hole")]
public GameObject blackHolePrefab;
[Header("Particles")]
public GameObject particlePrefab;
public Gradient[] tierGradients;
public RuntimeAnimatorController[] tierAnimation;
[Header("Upgrade Parameters")]
public float[] upgradePushForce;
public float[] upgradePushRadius;
public int[] upgradeParticleCount;
public int[] upgradeParticleTiers;
[Header("Bought Updates")]
public int _levelAntig = 0;
public int _levelMatter = 0;
public int _levelFission = 0;
public int LevelAntig {
get {
return _levelAntig;
}
set {
_levelAntig = value;
pusher.pushForce = upgradePushForce[_levelAntig];
pusher.pushRadius = upgradePushRadius[_levelAntig];
}
}
public int LevelMatter {
get {
return _levelMatter;
}
set {
_levelMatter = value;
spawner.spawnedTier = upgradeParticleTiers[_levelMatter];
}
}
public int LevelFission {
get {
return _levelFission;
}
set {
_levelFission = value;
spawner.spawnCount = upgradeParticleCount[_levelFission];
}
}
[Header("Simulation Status")]
[HideInInspector]
public List<Gravitation> simulatedObjects;
[HideInInspector]
public int maxTierPresent;
[Header("References")]
[HideInInspector]
public UpgradePanel upgradePanel;
[HideInInspector]
public SpawnOnMouseClick spawner;
[HideInInspector]
public PushOnMouseClick pusher;
[HideInInspector]
public CameraPan panner;
[HideInInspector]
public MusicManager musicManager;
[HideInInspector]
public Canvas canvas;
[HideInInspector]
public BlackHole blackHole;
protected void Awake() {
spawner = Camera.main.GetComponent<SpawnOnMouseClick>();
pusher = Camera.main.GetComponent<PushOnMouseClick>();
panner = Camera.main.GetComponent<CameraPan>();
musicManager = GetComponent<MusicManager>();
simulatedObjects = new List<Gravitation>();
canvas = GameObject.FindGameObjectWithTag("Canvas").GetComponent<Canvas>();
blackHole = GameObject.FindGameObjectWithTag("BlackHole").GetComponent<BlackHole>();
upgradePanel = GameObject.FindGameObjectWithTag("UpgradePanel").GetComponent<UpgradePanel>();
}
protected void Start() {
maxTierPresent = -1;
LevelAntig = 0;
LevelFission = 0;
LevelMatter = 0;
}
public void CheckNewMaxTier(int tier) {
if(tier > maxTierPresent) {
maxTierPresent = tier;
musicManager.UpdateLayers(maxTierPresent);
}
}
public void RecalculateMaxTier() {
maxTierPresent = -1;
foreach(GameObject particleObject in GameObject.FindGameObjectsWithTag("Particle")) {
Particle particle = particleObject.GetComponent<Particle>();
if(particle.Tier > maxTierPresent) {
maxTierPresent = particle.Tier;
}
};
musicManager.UpdateLayers(maxTierPresent);
}
}