Add rank, friends, fishing, and camp treasure with T2 studio models and skill presentation.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -20,16 +20,16 @@ public static class BuildPrototype
|
||||
/// <summary>Validated formal partner art by pet id; other ids keep primitive stand-ins until their art passes review.</summary>
|
||||
static readonly System.Collections.Generic.Dictionary<int, string> FormalPets = new System.Collections.Generic.Dictionary<int, string>
|
||||
{
|
||||
[0] = Animal + "RockBall/RockBall_Rigged.prefab", [1] = Animal + "FireCat/FireCat_Companion.prefab", [2] = Animal + "BudBud/BudBud_Companion.prefab",
|
||||
[3] = Animal + "SparkBird/SparkBird_Companion.prefab", [4] = Animal + "BubbleTurtle/BubbleTurtle_Companion.prefab",
|
||||
[5] = Animal + "RockRhino/RockRhino_Companion.prefab", [6] = Animal + "FlameLion/FlameLion_Companion.prefab",
|
||||
[7] = Animal + "VineSprite/VineSprite_Companion.prefab", [8] = Animal + "ThunderLeopard/ThunderLeopard_Companion.prefab", [9] = Animal + "TideWhale/TideWhale_Companion.prefab",
|
||||
[0] = Animal + "RockBallStudio/RockBallStudio_Companion.prefab", [1] = Animal + "FireCatStudio/FireCatStudio_Companion.prefab", [2] = Animal + "BudBudStudio/BudBudStudio_Companion.prefab",
|
||||
[3] = Animal + "SparkBirdStudio/SparkBirdStudio_Companion.prefab", [4] = Animal + "BubbleTurtle/BubbleTurtle_Companion.prefab",
|
||||
[5] = Animal + "RockRhinoStudio/RockRhinoStudio_Companion.prefab", [6] = Animal + "FlameLion/FlameLion_Companion.prefab",
|
||||
[7] = Animal + "VineSpriteStudio/VineSpriteStudio_Companion.prefab", [8] = Animal + "ThunderLeopardStudio/ThunderLeopardStudio_Companion.prefab", [9] = Animal + "TideWhaleStudio/TideWhaleStudio_Companion.prefab",
|
||||
};
|
||||
/// <summary>Battle height in arena units; the authored models are ~0.55m and the lanes are 3 units apart.</summary>
|
||||
public const float FormalHeight = 1.5f;
|
||||
const string Enemy = "Assets/Bundles/Characters/Enemy/";
|
||||
/// <summary>Formal enemy art by enemy type id (greenfield.json enemies 0..4), nested under every Enemies/EnemyN slot as Type{t}.</summary>
|
||||
static readonly string[] FormalEnemies = { Enemy + "Hornlet/Hornlet_Enemy.prefab", Enemy + "Dashlet/Dashlet_Enemy.prefab", Enemy + "Shellhorn/Shellhorn_Enemy.prefab", Enemy + "HornCaptain/HornCaptain_Enemy.prefab", Enemy + "GreatHorn/GreatHorn_Enemy.prefab" };
|
||||
static readonly string[] FormalEnemies = { Enemy + "HornletStudio/HornletStudio_Enemy.prefab", Enemy + "DashletStudio/DashletStudio_Enemy.prefab", Enemy + "ShellhornStudio/ShellhornStudio_Enemy.prefab", Enemy + "HornCaptainStudio/HornCaptainStudio_Enemy.prefab", Enemy + "GreatHornStudio/GreatHornStudio_Enemy.prefab" };
|
||||
/// <summary>Base enemy height in arena units; the runtime still scales captains x1.2 and bosses x1.55.</summary>
|
||||
public const float EnemyHeight = 1.2f;
|
||||
static Material _cream, _rock, _orange, _leaf, _dark, _white, _cyan, _grass, _path, _monster, _yellow, _water, _ember, _violet;
|
||||
@@ -305,6 +305,12 @@ public static class BuildPrototype
|
||||
if (child.name == "Ground" || child.name == "Lane" || child.name == "LeftBorder" || child.name == "RightBorder" || child.name == "BattleLight") child.gameObject.SetActive(false);
|
||||
}
|
||||
var enemyFeedback = AssetDatabase.LoadAssetAtPath<GameObject>("Assets/Bundles/Effects/EnemyCombat/EnemyCombatPresentation.prefab");
|
||||
var skillFeedback = AssetDatabase.LoadAssetAtPath<GameObject>("Assets/Bundles/Combat/BattleSkillPresentation.prefab");
|
||||
if(skillFeedback!=null)
|
||||
{
|
||||
foreach(string group in new[]{"Heroes","Enemies"})foreach(Transform actor in root.transform.Find(group)){var muzzle=new GameObject("SkillMuzzle").transform;muzzle.SetParent(actor,false);muzzle.localPosition=new Vector3(0,group=="Heroes"?.85f:.8f,-.48f);muzzle.gameObject.layer=30;}
|
||||
PrefabUtility.InstantiatePrefab(skillFeedback,root.transform);
|
||||
}
|
||||
if (enemyFeedback != null) PrefabUtility.InstantiatePrefab(enemyFeedback, root.transform);
|
||||
PrefabUtility.SaveAsPrefabAsset(root, World + "/PrototypeArena.prefab");
|
||||
}
|
||||
@@ -390,7 +396,7 @@ public static class BuildPrototype
|
||||
var enemies = root.transform.Find("Enemies") ?? throw new Exception("Arena missing Enemies");
|
||||
foreach (Transform slot in enemies)
|
||||
{
|
||||
foreach (var child in slot.Cast<Transform>().Where(c => c.name != "SlowMark").ToArray()) UnityEngine.Object.DestroyImmediate(child.gameObject);
|
||||
foreach (var child in slot.Cast<Transform>().Where(c => c.name != "SlowMark" && c.name != "SkillMuzzle").ToArray()) UnityEngine.Object.DestroyImmediate(child.gameObject);
|
||||
if (!FormalEnemyVisuals(slot)) throw new Exception("Formal enemy prefabs incomplete: " + string.Join(", ", FormalEnemies.Where(p => AssetDatabase.LoadAssetAtPath<GameObject>(p) == null)));
|
||||
}
|
||||
PrefabUtility.SaveAsPrefabAsset(root, World + "/PrototypeArena.prefab");
|
||||
|
||||
Reference in New Issue
Block a user