Add giant beast type using 3x-scaled peasant (#6308)

* Add giant beast type using 3x-scaled peasant model

Reuse Polytope peasant prefabs at 3x scale (animalScale 45) with a single
wandering giant per province. Uses HumanMapAnims controller for idle/walk/
attack animations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix giant test method to use correct province name (Elekes)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Wire up GiantEffect prefab in Gameplay scene

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-27 13:05:59 -08:00
committed by GitHub
co-authored by Claude Opus 4.6
parent 97bf29d4a2
commit 8cb75d48e2
6 changed files with 116 additions and 10 deletions
+1 -1
View File
@@ -103,6 +103,7 @@ Human-type beasts (pirates, bandits, etc.) are matched via a `HumanBeastNames` H
| militia types (8 names) | AnimalEffect | Polytope Studio | PT_Male_Militia_01/02, PT_Female_Militia_01/02 (w/ HumanMapAnims controller) |
| peasant types (9 names) | AnimalEffect | Polytope Studio | PT_Male_Peasant_01, PT_Female_Peasant_01_a (w/ HumanMapAnims controller) |
| clown | AnimalEffect | Clown Pack | Clown, Fat Clown (w/ per-prefab controller overrides) |
| giant | AnimalEffect | Polytope Studio | PT_Male/Female_Peasant at 3x scale (w/ HumanMapAnims controller) |
| ogre, troll | AnimalEffect | Orc-Ogre Pack | OrcOgre_Animated (w/ OgreMapAnims controller) |
| bear | AnimalEffect | Animal Pack Deluxe | Brown_bear |
| boar | AnimalEffect | Animal Pack Deluxe | Wild_boar |
@@ -150,7 +151,6 @@ Ordered by spawn likelihood (most common first):
| lion | 0.04 | Big cat |
| chimpanzee | 0.04 | Primate |
| velociraptor | 0.02 | Dinosaur |
| giant | 0.01 | Fantasy creature |
| unknown | 0.00 | Intentional fallback |
## Tips
@@ -0,0 +1,62 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &7893566172152383399
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9219784709551883713}
- component: {fileID: -8275703835430650911}
m_Layer: 0
m_Name: GiantEffect
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &9219784709551883713
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7893566172152383399}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &-8275703835430650911
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7893566172152383399}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0f35f1e4728ac4d86b376c3077cd8742, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::eagle.AnimalEffect
animalPrefabs:
- {fileID: 5949706081513176824, guid: a0cb3b35b5fb2564983f2275ffa69733, type: 3}
- {fileID: 2224834628610083241, guid: 1906c8b8d7539724b9f8bed9421c270e, type: 3}
animalCount: 1
wanderRadius: 20
moveSpeed: 10
animalScale: 45
animatorController: {fileID: 9100000, guid: 008c8f0c0e074544b52b2db1598bbd5a, type: 2}
minIdleDuration: 1
maxIdleDuration: 3
actionChance: 0.3
actionDuration: 2
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: d4e7a1b3c5f8926074e3d1a9b6c2f8e5
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -39,6 +39,9 @@ namespace eagle {
public GameObject militiaEffectPrefab;
public GameObject peasantEffectPrefab;
[Header("Giant Effect Prefab")]
public GameObject giantEffectPrefab;
[Header("Animal Effect Prefabs")]
public GameObject bearEffectPrefab;
public GameObject boarEffectPrefab;
@@ -187,6 +190,7 @@ namespace eagle {
case "ogre":
case "troll": return ogreEffectPrefab;
case "clown": return clownEffectPrefab;
case "giant": return giantEffectPrefab;
case "bear": return bearEffectPrefab;
case "boar": return boarEffectPrefab;
case "crab": return crabEffectPrefab;
@@ -354,6 +358,9 @@ namespace eagle {
[ContextMenu("Test Raccoon in Hella (ID 19)")]
public void TestRaccoon() { SpawnBeastsEffect(19, "raccoon"); }
[ContextMenu("Test Giant in Elekes (ID 20)")]
public void TestGiant() { SpawnBeastsEffect(20, "giant"); }
[ContextMenu("Test All Beast Types")]
public void TestAllBeastTypes() {
TestDragon();
@@ -387,6 +394,7 @@ namespace eagle {
TestClown();
TestHoneyBadger();
TestRaccoon();
TestGiant();
}
[ContextMenu("Clear All Effects")]
@@ -242392,6 +242392,8 @@ MonoBehaviour:
type: 3}
peasantEffectPrefab: {fileID: 7893566172152383399, guid: 4be580a24d1d4ce3baff4fe4c8323498,
type: 3}
giantEffectPrefab: {fileID: 7893566172152383399, guid: d4e7a1b3c5f8926074e3d1a9b6c2f8e5,
type: 3}
bearEffectPrefab: {fileID: 7893566172152383399, guid: 5865a698f1e404c8c923b10c218e3d99,
type: 3}
boarEffectPrefab: {fileID: 7893566172152383399, guid: 67b96421193d84127b509e9cbd38dea4,