Marking player location on galaxy map Fixed non-input field focus disabling global key map Player start ship is now always the same Loadout generator now demands exact match for item dimensions Thermal damage now triggers ItemDamaged event = player can die from cockpit wear! Properties panel now has a much more attractive UI Implemented curve control for properties UI Centralized number formatting in player settings Moved significant digits to player settings Added temperature unit option in player settings
75 lines
No EOL
2.7 KiB
C#
75 lines
No EOL
2.7 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 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(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;
|
|
} |