Definition

class ActorData(key: str = 'none', possible_names: List[str] = <factory>, description: str = 'none', position_offsets: List[Tuple[int, int]] = <factory>, trait_names: List[str] = <factory>, behaviour_name: str = 'none', height: HeightType = 1)[source]

Bases: object

Data class for an actor. Also used to hold and map data from json.

class AffectCooldownEffectData(effect_type: EffectTypeType = 'affect_cooldown', success_effects: List[Effect] = <factory>, failure_effects: List[Effect] = <factory>, skill_name: str = '', affect_amount: int = 0)[source]

Bases: scripts.engine.internal.definition.EffectData

The data for a apply affliction effect. Also used to hold and map data from json.

class AffectStatEffectData(effect_type: EffectTypeType = 'affect_stat', success_effects: List[Effect] = <factory>, failure_effects: List[Effect] = <factory>, cause_name: str = '', stat_to_target: PrimaryStatType = 'exactitude', affect_amount: int = 0)[source]

Bases: scripts.engine.internal.definition.EffectData

The data for an affect stat effect. Also used to hold and map data from json.

class AfflictionData(name: str = 'none', description: str = 'none', icon_path: str = 'none', category: AfflictionCategoryType = 'boon', identity_tags: List[EffectTypeType] = <factory>, triggers: List[ReactionTriggerType] = <factory>)[source]

Bases: object

Data class for an Affliction

class AlterTerrainEffectData(effect_type: EffectTypeType = 'alter_terrain', success_effects: List[Effect] = <factory>, failure_effects: List[Effect] = <factory>, terrain_name: str = '', affect_amount: int = 0)[source]

Bases: scripts.engine.internal.definition.EffectData

The data for an alter terrain effect. Also used to hold and map data from json.

class ApplyAfflictionEffectData(effect_type: EffectTypeType = 'apply_affliction', success_effects: List[Effect] = <factory>, failure_effects: List[Effect] = <factory>, affliction_name: str = '', duration: int = 0)[source]

Bases: scripts.engine.internal.definition.EffectData

The data for a apply affliction effect. Also used to hold and map data from json.

class BaseValueData(accuracy: int = 0, damage: int = 0, bustle: int = 0, clout: int = 0, exactitude: int = 0, skullduggery: int = 0, vigour: int = 0, max_health: int = 0, max_stamina: int = 0, resist_astral: int = 0, resist_burn: int = 0, resist_chemical: int = 0, resist_cold: int = 0, resist_mundane: int = 0, rush: int = 0)[source]

Bases: object

class DamageEffectData(effect_type: EffectTypeType = 'damage', success_effects: List[Effect] = <factory>, failure_effects: List[Effect] = <factory>, stat_to_target: PrimaryStatType = 'exactitude', accuracy: int = 0, potency: float = 1.0, damage: int = 0, damage_type: DamageTypeType = 'mundane', mod_stat: PrimaryStatType = 'exactitude', mod_amount: float = 0.0)[source]

Bases: scripts.engine.internal.definition.EffectData

The data for a damage effect. Also used to hold and map data from json.

class DefaultValueData(move_cost: int = 0, time_per_round: int = 0, reduced_effectiveness_multi_tile_modifier: float = 0.0)[source]

Bases: object

class DelayedSkillData(creator: EntityID = 0, skill_name: str = 'none', skill_instance: Optional[Skill] = None, duration: int = 0, sprite_paths: TraitSpritePathsData = TraitSpritePathsData(render_order=<RenderLayer.BOTTOM: 10>, icon='none', idle='skills/delayed_skill.png', attack='none', hit='none', dead='none', move='none'))[source]

Bases: object

Data class for a Delayed Skill

class Dimensions(height: int = 0, width: int = 0)[source]

Bases: object

class EffectData(effect_type: EffectTypeType, success_effects: List[Effect] = <factory>, failure_effects: List[Effect] = <factory>)[source]

Bases: abc.ABC

Base data class for an effect.

class GameConfigData(hit_types: 'HitTypeData' = <factory>, base_values: 'BaseValueData' = <factory>, default_values: 'DefaultValueData' = <factory>)[source]

Bases: object

class GodData(name: str = 'none', description: str = 'none', attitudes: Dict[ReactionTriggerType, int] = <factory>, reactions: Dict[ReactionTriggerType, scripts.engine.internal.definition.ReactionData] = <factory>)[source]

Bases: object

Data class for a god. If a reaction.reactions is a skill name (a str) then the skill name must also be in known_skills.

class HitInfoData(value: int = 0, modifier: float = 0.0)[source]

Bases: object

class HitTypeData(graze: 'HitInfoData' = <factory>, hit: 'HitInfoData' = <factory>, crit: 'HitInfoData' = <factory>)[source]

Bases: object

class LightData(radius: int = 0, colour: Tuple[int, int, int] = (0, 0, 0), alpha: int = 0)[source]

Bases: object

Data for a light source. Also used to hold and map data from json.

class MapData(name: str = 'none', key: str = 'none', width: int = 0, height: int = 0, min_rooms: int = 0, max_rooms: int = 0, max_tunnel_length: int = 0, min_path_distance_for_shortcut: int = 0, max_room_entrances: int = 0, extra_entrance_chance: int = 0, chance_of_tunnel_winding: int = 0, rooms: Dict[str, float] = <factory>, sprite_paths: Dict[str, str] = <factory>)[source]

Bases: object

Data class for a Map, specifically for generation. A map is a collection of rooms. Defines the rooms on the map, how they are placed and joined up ( with tunnels). Also used to hold and map data from json.

class MoveEffectData(effect_type: EffectTypeType = 'move', success_effects: List[Effect] = <factory>, failure_effects: List[Effect] = <factory>, direction: DirectionType = (0, 0), move_amount: int = 0)[source]

Bases: scripts.engine.internal.definition.EffectData

The data for a apply affliction effect. Also used to hold and map data from json.

class ProjectileData(creator: EntityID = 0, skill_name: str = 'none', skill_instance: Optional[Skill] = None, target_tags: List[TileTagType] = <factory>, direction: Optional[DirectionType] = None, sprite_paths: TraitSpritePathsData = <factory>, speed: ProjectileSpeedType = 10, travel_method: TravelMethodType = 'standard', range: int = 1, terrain_collision: Optional[TerrainCollisionType] = None, expiry_type: Optional[ProjectileExpiryType] = None)[source]

Bases: object

Data class for a projectile

class ReactionData(required_opinion: Optional[int] = None, reaction: Union[scripts.engine.internal.definition.EffectData, str] = '', chance: int = 100)[source]

Bases: object

Data class for a reaction.

class RoomConceptData(name: str = 'none', key: str = 'none', min_width: int = 0, min_height: int = 0, max_width: int = 0, max_height: int = 0, design: str = '', max_neighbouring_walls_in_room: int = 0, chance_of_spawning_wall: float = 0.0, actors: Dict[str, float] = <factory>, min_actors: int = 0, max_actors: int = 0, sprite_paths: Dict[str, str] = <factory>)[source]

Bases: object

Data class for a RoomConcept. Only used in generation.

class SecondaryStatModData(name: str = 'none', secondary_stat_type: SecondaryStatType = 'max_health', vigour_mod: int = 0, clout_mod: int = 0, skullduggery_mod: int = 0, bustle_mod: int = 0, exactitude_mod: int = 0)[source]

Bases: object

Data class for secondary stats

class SkillData(name: str = 'none', description: str = 'none', icon_path: str = 'none', cast_tags: List[TileTagType] = <factory>, target_tags: List[TileTagType] = <factory>, resource_type: ResourceType = 'stamina', resource_cost: int = 0, time_cost: int = 0, cooldown: int = 0, targeting_method: TargetingMethodType = 'tile', target_directions: List[DirectionType] = <factory>, range: int = 1, shape: ShapeType = 'target', shape_size: int = 1, uses_projectile: bool = False, projectile_data: Optional[scripts.engine.internal.definition.ProjectileData] = None, is_delayed: bool = False, delayed_skill_data: Optional[scripts.engine.internal.definition.DelayedSkillData] = None, types: List[str] = <factory>)[source]

Bases: object

Data class for a skill. Also used to hold and map data from json.

class TerrainData(name: str = 'none', description: str = 'none', height: HeightType = 1, blocks_movement: bool = False, position_offsets: List[Tuple[int, int]] = <factory>, sprite_paths: scripts.engine.internal.definition.TraitSpritePathsData = <factory>, reactions: Dict[ReactionTriggerType, scripts.engine.internal.definition.ReactionData] = <factory>, light: Optional[scripts.engine.internal.definition.LightData] = None)[source]

Bases: object

Data class for terrain. Also used to hold and map data from json.

class TraitData(name: str = 'none', group: TraitGroupType = 'npc', description: str = 'none', sprite_paths: scripts.engine.internal.definition.TraitSpritePathsData = <factory>, sight_range: int = 0, vigour: int = 0, clout: int = 0, skullduggery: int = 0, bustle: int = 0, exactitude: int = 0, known_skills: List[str] = <factory>, permanent_afflictions: List[str] = <factory>)[source]

Bases: object

Data class for a trait. Also used to hold and map data from json.

class TraitSpritePathsData(render_order: scripts.engine.internal.constant.RenderLayer = <RenderLayer.BOTTOM: 10>, icon: str = 'none', idle: str = 'none', attack: str = 'none', hit: str = 'none', dead: str = 'none', move: str = 'none')[source]

Bases: object

Possible sprites paths for a trait. Also used to hold and map data from json.

class TraitSpritesData(icon: Optional[pygame.Surface] = None, idle: Optional[pygame.Surface] = None, attack: Optional[pygame.Surface] = None, hit: Optional[pygame.Surface] = None, dead: Optional[pygame.Surface] = None, move: Optional[pygame.Surface] = None)[source]

Bases: object

Possible sprites.

class VideoConfigData(base_window: 'Dimensions' = <factory>, desired_window: 'Dimensions' = <factory>, fps_limit: 'int' = 60)[source]

Bases: object