Analyse of Scenes and Scripts - twiederk/DungeonCrawler GitHub Wiki

  • Main is Node - NO SCRIPT
  • World is Node2D - NO SCRIPT
  • Game is Node2D - Script: Game
  • GUI is Control - NO SCRIPT

Scripts

Game extends Node2D -> Game

  • var characters: Array = []
  • var character_pointer: int = 0
  • var character: Character = null
  • var monsters: Array = []
  • var game_system: GameSystem = GameSystem.new()
  • onready var camera: Camera2D = $Camera2D
  • onready var highlight = $Highlight
  • => Part of Godot Lifecycle

GameInit extends Reference -> GameInit

  • const Character = preload("res://World/Character.tscn")
  • const Monster = preload("res://World/Monster.tscn")
  • const Item = preload("res://World/Item.tscn")
  • const STEP = 32
  • var _monster_manual: MonsterManual = null
  • => Part of Godot Lifecycle, because it is used in Game._ready()

Camera extends Camera2D -> Camera

  • onready var topLeft = $Limits/TopLeft
  • onready var bottomRight = $Limits/BottomRight
  • => Part of Godot Lifecycle

Character extends KinematicBody2D -> CharacterBody2D

  • export var STEP: int = 32
  • onready var animationPlayer = $AnimationPlayer
  • onready var hitboxCollisionShape = $HitboxPivot/Hitbox/CollisionShape2D
  • onready var hitboxPivot = $HitboxPivot
  • var _creature = Creature.new()
  • var _inventory = Inventory.new()
  • => Part of Godot Lifecycle
  • => Composite
  • => Graphic part of Domain objects: Creature and Inventory

Monster extends KinematicBody2D -> MonsterBody2D

  • signal attacked
  • var _creature = Creature.new()
  • onready var audioStreamPlayer = $AudioStreamPlayer
  • => Composite
  • => Part of Godot Lifecycle
  • => Graphic part of Domain objects: Creature

Item extends Area2D -> Item2D

  • signal picked
  • => Part of Godot Lifecycle
  • => Should be composible with data of item (gold = 5)

GameSystem extends Reference -> GameSystem

  • => Domain entry

Creature extends Reference -> Creature

  • signal got_hurt
  • var _name: String = ""
  • var _hit_points: int = 0
  • var _armor_class: int
  • var _damage: int
  • => Domain entry

Inventory extends Reference -> Inventory

  • var _gold: int = 0
  • => Domain entry

MonsterManual extends Reference -> MonsterManual

  • var _dictionary: Dictionary = {}
  • => Domain entry