Guest User

Ghost improvements

a guest
Jan 25th, 2026
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.06 KB | Fixit | 0 0
  1. from dataclasses import dataclass, field
  2. from enum import Enum, auto
  3.  
  4. class Intent(Enum):
  5.     THREAT = auto()
  6.     FRIENDLY = auto()
  7.     NEUTRAL = auto()
  8.  
  9. @dataclass(frozen = True)
  10. class Signal:
  11.     source: str
  12.     intent: Intent
  13.     actor: str
  14.     intensity: float  # 0.0 to 1.0
  15.  
  16. @dataclass
  17. class NPCState:
  18.     threat_level: float = 0.0
  19.    
  20.     def apply(self, signal: Signal) -> "NPCState":
  21.         """Returns a new state with the signal applied (immutable style)."""
  22.         match signal.intent:
  23.             case Intent.THREAT:
  24.                 return NPCState(threat_level=min(1.0, self.threat_level + signal.intensity * 0.1))
  25.             case Intent.FRIENDLY:
  26.                 return NPCState(threat_level=max(0.0, self.threat_level - signal.intensity * 0.05))
  27.             case _:
  28.                 return self
  29.  
  30. # Usage - no global state, explicit ownership
  31. npc = NPCState()
  32. for _ in range(5):
  33.     signal = Signal(source="npc_engine", intent=Intent.THREAT, actor="player", intensity=0.5)
  34.     npc = npc.apply(signal)
  35.     print(npc.threat_level)
  36.  
Advertisement
Add Comment
Please, Sign In to add comment