Fixed: unable to undock with an aetheric drive (game requires locomotion) Entities have a chance of dropping any item on board when killed Mine behavior generalized to grid objects, used in dropped loot Added tractor beam (not itemized yet) which pulls in nearby loot (and mines!) Items are added to player inventory when they collide with the ship (and mines explode!) Added console command to spawn turret
78 lines
No EOL
2.8 KiB
C#
78 lines
No EOL
2.8 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(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;
|
|
} |