reskin wolf as hyena — visual + lean-in flavor
Replaces the procedural brown-rectangle "wolf" with the CraftPix Free Desert Enemy Sprite Sheets hyena. 48×48, side-view, 2-direction via horizontal flip. AnimatedSprite2D mounted in Wolf.setup() and Wolf.from_dict() (same pattern as pawn reskin Slice 1). Anims: idle (4f @ 5fps) + walk (6f @ 10fps). Attack/hurt/death anims skipped for MVP scope. Player-facing copy renamed wolf→hyena in strings.gd (6 entries) and event_catalog.gd (3 EventDef title/body fields). Internal identifiers (class Wolf, World.wolves, EventBus.wolf_spawned, save class_id &"wolf", event IDs like &"lone_wolf") stay the same for save compat — see header comment in wolf.gd. MCP runtime verified: hyena AnimatedSprite2D mounted on spawn, idle anim plays, storyteller modal renders "Lone Hyena — A starving hyena circles your livestock." Sprites: CraftPix Free Desert Enemy Sprite Sheets. License: CraftPix Free (commercial OK, attribution appreciated). https://free-game-assets.itch.io/free-enemy-sprite-sheets-pixel-art Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
8a7584e411
commit
f30c7a858b
9 changed files with 179 additions and 31 deletions
|
|
@ -124,7 +124,7 @@ static func _event_04_walls() -> EventDef:
|
|||
var d := EventDef.new()
|
||||
d.id = &"walls"
|
||||
d.title = "Walls?"
|
||||
d.body = "Sleeping under stars is romantic until the wolves arrive."
|
||||
d.body = "Sleeping under stars is romantic until the hyenas arrive."
|
||||
d.category = EventDef.Category.NUDGE
|
||||
d.display = EventDef.Display.BANNER
|
||||
d.cooldown_days = 4
|
||||
|
|
@ -317,8 +317,8 @@ static func _event_12_the_wandering_healer() -> EventDef:
|
|||
static func _event_13_wolves_at_the_edge() -> EventDef:
|
||||
var d := EventDef.new()
|
||||
d.id = &"wolves_at_the_edge"
|
||||
d.title = "Wolves at the Edge"
|
||||
d.body = "Wolves howl in the distance. They will be here by nightfall."
|
||||
d.title = "Hyenas at the Edge"
|
||||
d.body = "Hyenas howl in the distance. They will be here by nightfall."
|
||||
d.category = EventDef.Category.THREAT
|
||||
d.display = EventDef.Display.MODAL
|
||||
d.cooldown_days = 3
|
||||
|
|
@ -337,8 +337,8 @@ static func _event_13_wolves_at_the_edge() -> EventDef:
|
|||
static func _event_14_lone_wolf() -> EventDef:
|
||||
var d := EventDef.new()
|
||||
d.id = &"lone_wolf"
|
||||
d.title = "Lone Wolf"
|
||||
d.body = "A starving wolf circles your livestock."
|
||||
d.title = "Lone Hyena"
|
||||
d.body = "A starving hyena circles your livestock."
|
||||
d.category = EventDef.Category.THREAT
|
||||
d.display = EventDef.Display.MODAL
|
||||
d.cooldown_days = 3
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue