//================================================================
//
// Copyright (C)
// All Rights Reserved
//
// Author:小妖精Balous
//

//Summary:哎~小妖精Balous又來應(yīng)付學(xué)院的作業(yè)了,感覺這樣把別人看不懂的代碼發(fā)上來也沒用啊。

//      或許這就是傳說中的學(xué)院教育的悲哀?如果有人要使用這段代碼,請注明作者是小妖精Balous喲~~

//
//================================================================

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// 子機(jī)
/// </summary>
public abstract class SubCraft : MonoBehaviour
{
/// <summary>
/// 普通移動時,子機(jī)發(fā)射的子彈
/// </summary>
public GameObject normalBullet;
/// <summary>
/// 低速移動時,子機(jī)發(fā)射的子彈
/// </summary>
public GameObject slowBullet;

/// <summary>
/// 子機(jī)生成子彈時間間隔
/// </summary>
public float timeInterval;
/// <summary>
/// 距離下次子機(jī)子彈生成的剩余時間,大于0f不會生成子彈
/// </summary>
private float shootTime;

public abstract void NormalShoot();
public abstract void SlowShoot();
public abstract void Move();

public virtual void Init()
{
shootTime = 0f;
}

void Start ()
{
Init();
}

void Update ()
{
if (shootTime > 0f) shootTime -= Time.deltaTime;

Move();

if (shootTime <= 0f && Controller.Shoot())
{
shootTime += timeInterval;

if (Controller.Slow() && slowBullet != null) SlowShoot();
else if (normalBullet != null) NormalShoot();
}
}
}