using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShipPlayerController : MonoBehaviour
{
public Projectile Bullet;
public Camera CameraObject;
public float FireRate = 0.5f;
public float MoveSpeed = 10.0f;
public float SpeedBoost = 20.0f;
private float FireTimer = 0.0f;
public float TotalAmount = 48.0f;
public float AmountPerSecond = 12.0f;
public float Current = 0f;
public float BaseSpeed = 6.0f;
private float maxSpeed;
private float minSpeed;
private Vector3 movement = Vector3.zero;
void Start()
{
}
void Update()
{
if (Input.GetKeyDown(KeyCode.T))
{
MoveSpeed = MoveSpeed + SpeedBoost;
}
else if (Input.GetKeyUp(KeyCode.T))
{
MoveSpeed = SpeedBoost;
}
else
UpdatePosition();
UpdateFiring();
}
void UpdatePosition()
{
movement.x = Input.GetAxis("Horizontal") * Time.deltaTime * MoveSpeed;
movement.y = Input.GetAxis("Vertical") * Time.deltaTime * MoveSpeed;
gameObject.transform.Translate(movement);
Vector3 screenPosition = CameraObject.WorldToScreenPoint(
gameObject.transform.position);
if (screenPosition.y > Screen.height)
{
screenPosition.y = Screen.height;
gameObject.transform.position =
CameraObject.ScreenToWorldPoint(screenPosition);
}
else if (screenPosition.y < 0)
{
screenPosition.y = 0;
gameObject.transform.position =
CameraObject.ScreenToWorldPoint(screenPosition);
}
if (Input.GetKey(KeyCode.T))
{
if (Current <= 0)
{
MoveSpeed = BaseSpeed;
Current = 0;
}
else
{
MoveSpeed = SpeedBoost + BaseSpeed;
Current -= Time.deltaTime * AmountPerSecond;
}
}
else
{
if (Current >= TotalAmount)
{
Current = TotalAmount;
}
else
{
Current += Time.deltaTime * AmountPerSecond;
}
}
}
void UpdateFiring()
{
FireTimer += Time.deltaTime;
if (Input.GetButton("Fire1"))
{
if (FireTimer > FireRate)
{
FireTimer = 0;
DoWeaponFire();
}
}
}
void DoWeaponFire()
{
Rigidbody clone;
clone = Instantiate(Bullet, transform.position, Bullet.rotation) as Rigidbody;
float speed = System.Random.Range(minSpeed, maxSpeed);
clone.velocity = transform.forward * speed;
clone.transform.parent = transform;
}
private Rigidbody Instantiate(Projectile bullet, Vector3 position, object rotation)
{
throw new NotImplementedException();
}
}