Files
project1_Space4x/Assets/Scripts/Fleet.cs
2023-06-20 21:00:33 +02:00

89 lines
2.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices.WindowsRuntime;
using UnityEngine;
public class Fleet : MonoBehaviour
{
public float TravelDistanceTotal = 0;
public int TravelTimeTotal = 0;
public string Name { get; set; }
public GameObject CurrentLocation;
public GameObject Destination;
public List<Ship> Ships = new();
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public int GetNumberOfShips()
{
return Ships.Count;
}
public int GetStrength()
{
int result = 0;
foreach (Ship g in Ships)
{
result += g.Strength;
}
return result;
}
public int GetSpeed()
{
int result = FleetManager.maxSpeed;
foreach (Ship g in Ships)
{
if (g.Speed < result)
{
result = g.Speed;
}
}
return result;
}
public float GetTravelDistanceTotal()
{
float result = 0;
Vector3 dest = Destination.transform.position;
Vector3 curr = CurrentLocation.transform.position;
Vector3 path = dest - curr;
result = path.magnitude;
return result;
}
public int GetTravelTimeTotal()
{
int result = 0;
result = (int) (this.TravelDistanceTotal / this.GetSpeed());
return result;
}
public void SetDestination(GameObject destStarSystem)
{
if(this.CurrentLocation == destStarSystem)
{
return;
}
this.Destination = destStarSystem;
this.TravelDistanceTotal = GetTravelDistanceTotal();
this.TravelTimeTotal = GetTravelTimeTotal();
//TODO: make fleet invisible
}
public void Travel()
{
this.TravelTimeTotal--;
if (this.TravelTimeTotal == 0) //fleet arrived
{
//TODO put fleet into ui of destination Star System
this.CurrentLocation = this.Destination;
}
}
}