- 调整项目结构以适应打包需求
- 添加控制台便于在游戏运行过程中调试各项功能 - 添加 LevelRarity 表,增加了随关卡数动态调整的商品道具品质刷新概率
This commit is contained in:
@@ -7,10 +7,12 @@ namespace Entity
|
||||
public class CoinEntity : EntityBase
|
||||
{
|
||||
private CoinData _coinData;
|
||||
private bool _isCollected;
|
||||
|
||||
protected override void OnShow(object userData)
|
||||
{
|
||||
base.OnShow(userData);
|
||||
_isCollected = false;
|
||||
|
||||
if (userData is CoinData coinData)
|
||||
{
|
||||
@@ -24,14 +26,25 @@ namespace Entity
|
||||
this.CachedTransform.localScale = new Vector3(0.3f, 0.3f, 0.3f);
|
||||
}
|
||||
|
||||
public bool TryCollect(Player player, float collectDistance = 0f)
|
||||
{
|
||||
if (_isCollected || player == null || !player.Available || _coinData == null) return false;
|
||||
|
||||
if (collectDistance > 0f)
|
||||
{
|
||||
float distance = Vector3.Distance(player.CachedTransform.position, CachedTransform.position);
|
||||
if (distance > collectDistance) return false;
|
||||
}
|
||||
|
||||
_isCollected = true;
|
||||
player.Coin += _coinData.Value;
|
||||
GameEntry.Entity.HideEntity(this);
|
||||
return true;
|
||||
}
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
var player = other.GetComponent<Player>();
|
||||
if (player != null && player.Available)
|
||||
{
|
||||
player.Coin += _coinData.Value;
|
||||
GameEntry.Entity.HideEntity(this);
|
||||
}
|
||||
TryCollect(other.GetComponent<Player>());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,10 +7,12 @@ namespace Entity
|
||||
public class ExpEntity:EntityBase
|
||||
{
|
||||
private ExpData _expData;
|
||||
private bool _isCollected;
|
||||
|
||||
protected override void OnShow(object userData)
|
||||
{
|
||||
base.OnShow(userData);
|
||||
_isCollected = false;
|
||||
|
||||
if (userData is ExpData expData)
|
||||
{
|
||||
@@ -23,14 +25,25 @@ namespace Entity
|
||||
this.CachedTransform.localScale = new Vector3(0.3f, 0.3f, 0.3f);
|
||||
}
|
||||
|
||||
public bool TryCollect(Player player, float collectDistance = 0f)
|
||||
{
|
||||
if (_isCollected || player == null || !player.Available || _expData == null) return false;
|
||||
|
||||
if (collectDistance > 0f)
|
||||
{
|
||||
float distance = Vector3.Distance(player.CachedTransform.position, CachedTransform.position);
|
||||
if (distance > collectDistance) return false;
|
||||
}
|
||||
|
||||
_isCollected = true;
|
||||
player.Exp += _expData.Value;
|
||||
GameEntry.Entity.HideEntity(this);
|
||||
return true;
|
||||
}
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
var player = other.GetComponent<Player>();
|
||||
if (player != null && player.Available)
|
||||
{
|
||||
player.Exp += _expData.Value;
|
||||
GameEntry.Entity.HideEntity(this);
|
||||
}
|
||||
TryCollect(other.GetComponent<Player>());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ namespace Entity
|
||||
|
||||
private InputComponent _inputComponent;
|
||||
private MovementComponent _movementComponent;
|
||||
private AbsorbComponent _absorbComponent;
|
||||
private StatComponent _statComponent;
|
||||
private BackpackComponent _backpackComponent;
|
||||
private PlayerData _playerData;
|
||||
@@ -44,6 +45,7 @@ namespace Entity
|
||||
/// 玩家是否启用。
|
||||
/// </summary>
|
||||
private bool _enable;
|
||||
private bool _weaponEnabled = true;
|
||||
|
||||
public int Coin
|
||||
{
|
||||
@@ -95,11 +97,19 @@ namespace Entity
|
||||
if (value == _enable) return;
|
||||
_enable = value;
|
||||
_movementComponent.SetMove(value);
|
||||
_backpackComponent.SetWeaponState(value);
|
||||
_backpackComponent.SetWeaponState(value && _weaponEnabled);
|
||||
_inputComponent.SetListening(value);
|
||||
}
|
||||
}
|
||||
|
||||
public bool WeaponEnabled => _weaponEnabled;
|
||||
|
||||
public void SetWeaponEnabled(bool enabled)
|
||||
{
|
||||
_weaponEnabled = enabled;
|
||||
_backpackComponent?.SetWeaponState(_enable && _weaponEnabled);
|
||||
}
|
||||
|
||||
public void InitRole(DRRole role)
|
||||
{
|
||||
// MovementComponent
|
||||
@@ -146,9 +156,15 @@ namespace Entity
|
||||
|
||||
_inputComponent = GetComponent<InputComponent>();
|
||||
_movementComponent = GetComponent<MovementComponent>();
|
||||
_absorbComponent = GetComponent<AbsorbComponent>();
|
||||
_statComponent = GetComponent<StatComponent>();
|
||||
_healthComponent = GetComponent<HealthComponent>();
|
||||
_backpackComponent = GetComponent<BackpackComponent>();
|
||||
|
||||
if (_absorbComponent == null)
|
||||
{
|
||||
_absorbComponent = gameObject.AddComponent<AbsorbComponent>();
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnShow(object userData)
|
||||
@@ -166,6 +182,8 @@ namespace Entity
|
||||
|
||||
_inputComponent.OnInit();
|
||||
_inputComponent.SetListening(true);
|
||||
_absorbComponent.OnInit(this, _statComponent);
|
||||
_weaponEnabled = true;
|
||||
|
||||
_currentLevel = 0;
|
||||
}
|
||||
@@ -178,6 +196,7 @@ namespace Entity
|
||||
|
||||
_movementComponent.SetDirection(_inputComponent.Direction);
|
||||
_movementComponent.OnUpdate(elapseSeconds, realElapseSeconds);
|
||||
_absorbComponent.OnUpdate(elapseSeconds, realElapseSeconds);
|
||||
}
|
||||
|
||||
protected override void OnHide(bool isShutdown, object userData)
|
||||
@@ -187,6 +206,7 @@ namespace Entity
|
||||
_healthComponent.OnReset();
|
||||
_statComponent.OnReset();
|
||||
_backpackComponent.OnReset();
|
||||
_absorbComponent.OnReset();
|
||||
|
||||
base.OnHide(isShutdown, userData);
|
||||
}
|
||||
@@ -206,4 +226,4 @@ namespace Entity
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,15 +24,15 @@ namespace Entity
|
||||
public abstract class WeaponBase : EntityBase
|
||||
{
|
||||
protected const string AttachPoint = "Weapon Point";
|
||||
|
||||
|
||||
protected bool _isAttacking = false;
|
||||
|
||||
protected bool _isEnabled = false;
|
||||
|
||||
|
||||
[SerializeField] protected bool _isEnabled = false;
|
||||
|
||||
public WeaponData WeaponData;
|
||||
|
||||
|
||||
public bool IsAttacking => _isAttacking;
|
||||
|
||||
|
||||
protected WeaponStateBase _currentState;
|
||||
|
||||
#region FSM
|
||||
|
||||
Reference in New Issue
Block a user