feat: improve map lighting and expand the playable training range

Add real-time lighting and shadows, training courses and targets, and animated salvage crates. Include bilingual assets and curated verification results.
This commit is contained in:
2026-11-12 18:03:04 +08:00
parent 0857e291d5
commit eb819c6688
75 changed files with 16903 additions and 121 deletions
+4 -2
View File
@@ -4,6 +4,8 @@ namespace Ironspore
{
public sealed class EnemyUnit : MonoBehaviour
{
// DynamicProps keeps its original physical obstruction semantics after render-layer separation.
const int WorldObstructionMask = (1 << 0) | (1 << 10);
GameSession game;
float health, cooldown, age;
int type;
@@ -41,7 +43,7 @@ namespace Ironspore
if (type != 1 && distance > 10)
{
Vector3 step = flat.normalized * Time.deltaTime * (type == 3 ? 1.4f : type == 0 ? 2.5f : 1.2f);
if (!Physics.Raycast(transform.position + Vector3.up, step.normalized, 1.1f, 1, QueryTriggerInteraction.Ignore))
if (!Physics.Raycast(transform.position + Vector3.up, step.normalized, 1.1f, WorldObstructionMask, QueryTriggerInteraction.Ignore))
transform.position += step;
}
if (type == 0)
@@ -54,7 +56,7 @@ namespace Ironspore
if (cooldown <= 0 && distance < 42)
{
Vector3 origin = transform.position + Vector3.up * (type == 3 ? 3.5f : 2);
if (!Physics.Linecast(origin, target, 1, QueryTriggerInteraction.Ignore))
if (!Physics.Linecast(origin, target, WorldObstructionMask, QueryTriggerInteraction.Ignore))
{
var bolt = WorldFactory.Primitive(PrimitiveType.Sphere, "EnemyBolt", origin, Vector3.one * .3f, new Color(1, .35f, .08f), null, false, true);
bolt.AddComponent<EnemyBolt>().Initialize((target - origin).normalized, type == 3 ? 23 : 12);