Files
taptap2024_GJ_chidouren/Assets/Scripts/Game/Component/ScenePart.cs
2024-10-28 00:40:00 +08:00

64 lines
2.0 KiB
C#

using System.Collections.Generic;
using Game.Component.SceneProp;
using Sirenix.OdinInspector;
using UnityEngine;
using UnityEngine.Serialization;
namespace Game.Component
{
public class ScenePart : MonoBehaviour
{
public PolygonCollider2D cameraCollider;
public Transform createPos;
public int completeConditionNumber = 10;
public float playerBaseSpeed = 4f;
[Header("关卡背景音乐")]public string BGM = "";
[FormerlySerializedAs ("completeProp")] public SuccessProp successProp;
[LabelText ("当前完成数:")] private int _currentConditionNumber = 0;
public int LossCount;
public int CurrentConditionNumber => this._currentConditionNumber;
private List<EnemyEntity> _enemyEntities;
private List<BaseProp> _baseProps;
public SuccessProp SuccessProp => this.successProp;
public float CurProgress => this._currentConditionNumber * 1f / completeConditionNumber;
public bool IsCondition => _currentConditionNumber >= completeConditionNumber;
public bool AddConditionNumber (int number = 1)
{
this._currentConditionNumber += number;
return _currentConditionNumber >= completeConditionNumber;
}
public void RefreshInit ()
{
this._currentConditionNumber = 0;
foreach (var enemyEntity in this._enemyEntities)
{
enemyEntity.ResetState ();
}
foreach (var baseProp in this._baseProps)
{
baseProp.ResetProp ();
}
this.successProp.gameObject.SetActive (false);
}
public void InitPart ()
{
this._enemyEntities = new List<EnemyEntity> ();
this._enemyEntities = new List<EnemyEntity> (transform.GetComponentsInChildren<EnemyEntity> (true));
this._baseProps = new List<BaseProp> (transform.GetComponentsInChildren<BaseProp> (true));
}
}
}