扩充游戏内容,保持敌人基本行为不变,使用缩放和颜色区分不同敌人

This commit is contained in:
SepComet
2026-06-16 17:09:19 +08:00
committed by basil
parent 29c4468d54
commit 649930c666
26 changed files with 812 additions and 235 deletions
@@ -0,0 +1,6 @@
namespace SepCore.Entity
{
public class BatEnemy : MeleeEnemy
{
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 42fe1320652aa5444ab6b8ed8936d053
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -12,9 +12,18 @@ public abstract class EnemyBase : TargetableObject
public virtual float AttackRange => 1f;
public virtual void SetTarget(Transform target) => _target = target;
protected EnemyData _enemyData;
protected override void OnShow(object userData)
{
base.OnShow(userData);
if (userData is EnemyData enemyData)
{
ApplyVisualParams(enemyData);
}
}
protected override void OnDead(EntityBase attacker)
{
@@ -35,8 +44,21 @@ public abstract class EnemyBase : TargetableObject
};
GameEntry.Entity.ShowExpAsync(data).Forget();
}
base.OnDead(attacker);
}
private void ApplyVisualParams(EnemyData data)
{
CachedTransform.localScale = Vector3.one * Mathf.Max(0.1f, data.Scale);
var renderer = GetComponentInChildren<Renderer>();
if (renderer != null)
{
var block = new MaterialPropertyBlock();
block.SetColor("_BaseColor", data.Color);
renderer.SetPropertyBlock(block);
}
}
}
@@ -0,0 +1,6 @@
namespace SepCore.Entity
{
public class FireMageEnemy : RemoteEnemy
{
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 3c04fa71c274a6f4088722608ba26587
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,6 @@
namespace SepCore.Entity
{
public class GhostEnemy : RemoteEnemy
{
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 2effd123b7296e448aea20b34fd24ce8
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,6 @@
namespace SepCore.Entity
{
public class SkeletonEnemy : MeleeEnemy
{
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 21ea777a602cd034cb6177ef0efdea42
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,6 @@
namespace SepCore.Entity
{
public class SkeletonGiantEnemy : MeleeEnemy
{
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 3698c16c2f366404cbdd54efa880612b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: