Files
Cozypaw-Hospital/scripts/characters/character.gd
Steven Wroblewski d142dbe847 fix(poc): resolve evaluator and review findings
- Add RectangleShape2D to Character and InteractiveObject collision areas
- Fix HUD button signal connections in _ready()
- Fix character_placed signal emitting global_position
- Extract DEFAULT_DRAG_RADIUS constant in DragDropComponent
- Type Variant on JSON parsed variable in SaveManager
- Extract music symbol constants in HUD
- Refactor duplicated drag input code in InputManager

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 10:44:40 +02:00

29 lines
836 B
GDScript

## Character — base class for all playable figures (bunny, cat, etc.).
class_name Character extends Node2D
signal character_picked_up(character: Character)
signal character_placed(character: Character, position: Vector2)
@export var character_id: String = ""
@export var display_name: String = ""
var _is_held: bool = false
func _ready() -> void:
var drag: DragDropComponent = get_node_or_null("DragDropComponent") as DragDropComponent
if drag != null:
drag.drag_picked_up.connect(_on_drag_picked_up)
drag.drag_released.connect(_on_drag_released)
func _on_drag_picked_up(_pos: Vector2) -> void:
_is_held = true
character_picked_up.emit(self)
func _on_drag_released(pos: Vector2) -> void:
_is_held = false
GameState.set_character_position(character_id, global_position)
character_placed.emit(self, global_position)