Module nari.types.actor
Actor-related types and utilities
Expand source code
"""Actor-related types and utilities"""
from dataclasses import dataclass
from nari.util.pair import IdNamePair
@dataclass
class Resources():
"""Holds resource values for an Actor"""
hp: int = 0
hp_max: int = 0
mp: int = 0
mp_max: int = 10000
sp: int = 0
sp_max: int = 0
# I'm providing convenience here, leave me alone
# pylint: disable=too-many-arguments
def update(self, hp: int = None, hp_max: int = None, mp: int = None, mp_max: int = None, sp: int = None, sp_max: int = None):
"""Lets you batch update the resource values"""
self.hp = hp or self.hp
self.hp_max = hp_max or self.hp_max
self.mp = mp or self.mp
self.mp_max = mp_max or self.mp_max
self.sp = sp or self.sp_max
self.sp_max = sp_max or self.sp_max
@dataclass
class Position():
"""Holds position data for an Actor"""
x: float = 0
y: float = 0
z: float = 0
bearing: float = 0
def update(self, x: float = None, y: float = None, z: float = None, bearing: float = None):
"""Lets you batch update the position via position or arguments"""
self.x = x or self.x
self.y = y or self.y
self.z = z or self.z
self.bearing = bearing or self.bearing
class Actor(IdNamePair):
"""Represents an Actor"""
# pylint: disable=too-few-public-methods
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.resources = Resources()
self.position = Position()
def __repr__(self) -> str:
return f'<Actor ({self.name}|{self.id})>'
Classes
class Actor (*args, **kwargs)
-
Represents an Actor
Expand source code
class Actor(IdNamePair): """Represents an Actor""" # pylint: disable=too-few-public-methods def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.resources = Resources() self.position = Position() def __repr__(self) -> str: return f'<Actor ({self.name}|{self.id})>'
Ancestors
class Position (x: float = 0, y: float = 0, z: float = 0, bearing: float = 0)
-
Holds position data for an Actor
Expand source code
@dataclass class Position(): """Holds position data for an Actor""" x: float = 0 y: float = 0 z: float = 0 bearing: float = 0 def update(self, x: float = None, y: float = None, z: float = None, bearing: float = None): """Lets you batch update the position via position or arguments""" self.x = x or self.x self.y = y or self.y self.z = z or self.z self.bearing = bearing or self.bearing
Class variables
var bearing : float
var x : float
var y : float
var z : float
Methods
def update(self, x: float = None, y: float = None, z: float = None, bearing: float = None)
-
Lets you batch update the position via position or arguments
Expand source code
def update(self, x: float = None, y: float = None, z: float = None, bearing: float = None): """Lets you batch update the position via position or arguments""" self.x = x or self.x self.y = y or self.y self.z = z or self.z self.bearing = bearing or self.bearing
class Resources (hp: int = 0, hp_max: int = 0, mp: int = 0, mp_max: int = 10000, sp: int = 0, sp_max: int = 0)
-
Holds resource values for an Actor
Expand source code
@dataclass class Resources(): """Holds resource values for an Actor""" hp: int = 0 hp_max: int = 0 mp: int = 0 mp_max: int = 10000 sp: int = 0 sp_max: int = 0 # I'm providing convenience here, leave me alone # pylint: disable=too-many-arguments def update(self, hp: int = None, hp_max: int = None, mp: int = None, mp_max: int = None, sp: int = None, sp_max: int = None): """Lets you batch update the resource values""" self.hp = hp or self.hp self.hp_max = hp_max or self.hp_max self.mp = mp or self.mp self.mp_max = mp_max or self.mp_max self.sp = sp or self.sp_max self.sp_max = sp_max or self.sp_max
Class variables
var hp : int
var hp_max : int
var mp : int
var mp_max : int
var sp : int
var sp_max : int
Methods
def update(self, hp: int = None, hp_max: int = None, mp: int = None, mp_max: int = None, sp: int = None, sp_max: int = None)
-
Lets you batch update the resource values
Expand source code
def update(self, hp: int = None, hp_max: int = None, mp: int = None, mp_max: int = None, sp: int = None, sp_max: int = None): """Lets you batch update the resource values""" self.hp = hp or self.hp self.hp_max = hp_max or self.hp_max self.mp = mp or self.mp self.mp_max = mp_max or self.mp_max self.sp = sp or self.sp_max self.sp_max = sp_max or self.sp_max