167 lines
3.9 KiB
C#
167 lines
3.9 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using DG.Tweening;
|
|
using TMPro;
|
|
using System.Threading.Tasks;
|
|
|
|
public class roomcontroller : MonoBehaviour
|
|
{
|
|
[Header("id")]
|
|
public int RoomId;
|
|
|
|
public Text RoomName;
|
|
|
|
|
|
[Header("精灵的预制体")]
|
|
public GameObject fishManPrefab;
|
|
[Header("购买的精灵数据")]
|
|
public List<VoucherItem> listItem = new List<VoucherItem>();
|
|
private GameObject fishMan;//生成的渔船
|
|
private minerControl fishManShipContorl;//渔船的控制器
|
|
|
|
[Header("精灵生成点")]
|
|
public Transform startPos;
|
|
[Header("精灵终点")]
|
|
public Transform endPos;
|
|
|
|
[Header("房间类型编号")]
|
|
public int type;
|
|
|
|
public float ActivateValue = 0;
|
|
public int Num = 0;
|
|
public int Type = 0;
|
|
|
|
[Header("精灵路径点集合")]
|
|
public List<Path> paths;
|
|
//航行时间
|
|
[Header("走路时间")]
|
|
public float pathsNeedTimer = 30f;
|
|
//捕鱼时间
|
|
[Header("挖矿时间")]
|
|
public float fishingNeedTimer = 30f;
|
|
//休息时间
|
|
[Header("休息时间")]
|
|
public float restTimer = 5f;
|
|
|
|
[Header("保存精灵对象")]
|
|
List<GameObject> fishManlist = new List<GameObject>();
|
|
|
|
[Header("显示精灵数量")]
|
|
public Text shipNumberTextPro;
|
|
public int shipNumber;
|
|
public int MaxShipNumber = 10;
|
|
|
|
public int ShipNumber
|
|
{
|
|
get => shipNumber;
|
|
set
|
|
{
|
|
shipNumber = value;
|
|
shipNumberTextPro.text = shipNumber.ToString() + "/" + MaxShipNumber.ToString();
|
|
}
|
|
}
|
|
|
|
|
|
[Header("点击的特效")]
|
|
public GameObject effectPrefab;//特效
|
|
|
|
[Header("点击按钮出现的动画")]
|
|
public Transform OnBtnAni;
|
|
|
|
public float FishPrice;
|
|
|
|
public GameObject map;
|
|
|
|
|
|
public static bool canClick = true;
|
|
|
|
public List<string> ids = new List<string>();
|
|
|
|
//public int number;
|
|
|
|
public GameObject musk;
|
|
// Start is called before the first frame update
|
|
private void Awake()
|
|
{
|
|
listItem = new List<VoucherItem>();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public async void OnClick()
|
|
{
|
|
if (!canClick)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (fishMan == null)
|
|
{
|
|
//Promptmgr.Instance.PromptBubble("还没有买", Color.black, Color.red);
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 购买激活
|
|
/// </summary>
|
|
public async void BuyActivation()
|
|
{
|
|
|
|
if (await ActivationRoom())
|
|
{
|
|
add_fish();
|
|
this.ShipNumber += 1;
|
|
}
|
|
}
|
|
|
|
|
|
public async void add_fish(string timerStr = null)//生成船只
|
|
{
|
|
if (timerStr != null)
|
|
{
|
|
musk.gameObject.SetActive(false);
|
|
fishMan = GameObject.Instantiate(fishManPrefab, this.transform);
|
|
fishManlist.Add(fishMan);
|
|
|
|
Vector3 pos = new Vector3(Random.Range((endPos.position.x-startPos.position.x)/2, endPos.position.x), endPos.position.y, endPos.position.z);
|
|
fishMan.transform.position = pos;
|
|
|
|
//fishMan.transform.position = endPos.position;
|
|
|
|
fishManShipContorl = fishMan.GetComponent<minerControl>();
|
|
fishManShipContorl.init(this.paths, this.pathsNeedTimer, this.fishingNeedTimer, this.restTimer, this.startPos, this.endPos);
|
|
|
|
Debug.Log("更新船时间");
|
|
|
|
return;
|
|
}
|
|
musk.gameObject.SetActive(false);
|
|
fishMan = GameObject.Instantiate(fishManPrefab, this.transform);
|
|
fishManlist.Add(fishMan);
|
|
fishMan.transform.position = startPos.position;
|
|
fishManShipContorl = fishMan.GetComponent<minerControl>();
|
|
fishManShipContorl.init(this.paths, this.pathsNeedTimer, this.fishingNeedTimer, this.restTimer, this.startPos, this.endPos);
|
|
}
|
|
public async Task<bool> ActivationRoom()
|
|
{
|
|
return await miner_jiekou.instance.MiningActivate(this.RoomId);
|
|
}
|
|
|
|
private void OnDisable()
|
|
{
|
|
foreach (GameObject obj in fishManlist)
|
|
{
|
|
Destroy(obj);
|
|
}
|
|
fishManlist.Clear();
|
|
}
|
|
|
|
}
|