1.Commit
This commit is contained in:
88
Assets/Scripts/Fleet.cs
Normal file
88
Assets/Scripts/Fleet.cs
Normal file
@@ -0,0 +1,88 @@
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user