Aetheria/Assets/Scripts/Gameplay/GameSettings.cs
Reinier Vens 7cfc5cd04f Drag and Drop + Zoooooooom
Refactored inventory drag & drop to use new global drag & drop management
Enabled Drag & Drop from inventory panel to action bar
Enabled gear and consumable item binding
Fixed stat modifier behavior to allow it to be toggled
Fixed Switch behavior to make it bindable
Added lambda multiplier to aether drive so that stat mod can target it
2021-04-21 01:49:07 +01:00

79 lines
No EOL
2.9 KiB
C#

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "Sector Display Properties", menuName = "Aetheria/Sector Display Properties")]
public class GameSettings : ScriptableObject
{
public string StartingHullName = "Longinus";
public float PickupLifetime = 30;
public float LootDropProbability = .25f;
public float LootDropVelocity = 25;
public float HeatstrokePhasingFloor = 0;
public float HeatstrokePhasingFrequency = 5;
public float WormholeDistanceRatio;
public float DefaultViewDistance;
public float MinimapZoneGravityRange;
public float[] MinimapZoomLevels;
public int DefaultMinimapZoom;
public ExponentialCurve IconSize;
public int AsteroidMeshCount = 5;
public float MinimapAsteroidSize = 3;
public float PlanetRotationSpeed = 1;
public SectorGenerationSettings SectorGenerationSettings;
public BodySettingsCollection[] BodySettingsCollections;
public PlanetSettings PlanetSettings;
public ZoneGenerationSettings ZoneSettings;
public GameplaySettings GameplaySettings;
public Color HullHitColor;
public Color ArmorHitColor;
public Color HardpointHitColor;
public Color GearHitColor;
public Gradient ArmorGradient;
public Gradient DurabilityGradient;
[HideInInspector] public Sprite[] ItemIcons;
[HideInInspector] public Sprite[] WeaponTypeIcons;
[HideInInspector] public Sprite[] WeaponCaliberIcons;
[HideInInspector] public Sprite[] WeaponRangeIcons;
[HideInInspector] public Sprite[] WeaponFireTypeIcons;
[HideInInspector] public Sprite[] WeaponModifierIcons;
public Sprite GetIcon(HardpointType type) => ItemIcons[(int) type];
public Sprite GetIcon(WeaponType type) => WeaponTypeIcons[(int) type];
public Sprite GetIcon(WeaponRange range) => WeaponRangeIcons[(int) range];
public Sprite GetIcon(WeaponCaliber caliber) => WeaponCaliberIcons[(int) caliber];
public IEnumerable<Sprite> GetIcons(WeaponFireType type)
{
var count = Enum.GetValues(typeof(WeaponFireType)).Length;
var t = (int) type;
for (int i = 0; i < count - 1; i++)
{
if (1 << i == (1 << i & t))
yield return WeaponFireTypeIcons[i + 1];
}
}
public IEnumerable<Sprite> GetIcons(WeaponModifiers type)
{
var count = Enum.GetValues(typeof(WeaponModifiers)).Length;
var t = (int) type;
for (int i = 0; i < count - 1; i++)
{
if (1 << i == (1 << i & t))
yield return WeaponModifierIcons[i + 1];
}
}
}
[Serializable]
public class BodySettingsCollection
{
public float MinimumMass;
public CelestialBodySettings[] BodySettings;
}