├── .gitattributes
├── .gitignore
├── LICENSE
├── README.md
├── addons
├── httpserver
│ ├── http_router.gd
│ ├── http_router.gd.uid
│ ├── http_server.gd
│ └── http_server.gd.uid
└── tinymmo
│ ├── README.md
│ ├── export_plugin
│ ├── export_plugin.gd
│ └── export_plugin.gd.uid
│ ├── inspector_plugin.gd
│ ├── inspector_plugin.gd.uid
│ ├── main_screen
│ ├── generate_dialog.gd
│ ├── generate_dialog.gd.uid
│ ├── generate_dialog.tscn
│ ├── main_panel.gd
│ ├── main_panel.gd.uid
│ └── main_panel.tscn
│ ├── nodepath_helper.gd
│ ├── nodepath_helper.gd.uid
│ ├── plugin.cfg
│ ├── plugin.gd
│ ├── plugin.gd.uid
│ ├── popup
│ ├── confirmation_dialog.gd
│ ├── confirmation_dialog.gd.uid
│ ├── confirmation_dialog.tscn
│ ├── get_property_hint.gd
│ ├── get_property_hint.gd.uid
│ ├── tree.gd
│ └── tree.gd.uid
│ ├── property_editor.gd
│ ├── property_editor.gd.uid
│ └── test_scene
│ ├── health_component.gd
│ ├── health_component.gd.uid
│ ├── node.gd
│ ├── node.gd.uid
│ └── node.tscn
├── assets
├── audio
│ └── music
│ │ ├── ekonia-main-theme.wav
│ │ └── ekonia-main-theme.wav.import
├── fonts
│ ├── Atkinson_Hyperlegible
│ │ ├── AtkinsonHyperlegible-Bold.ttf
│ │ ├── AtkinsonHyperlegible-Bold.ttf.import
│ │ ├── AtkinsonHyperlegible-BoldItalic.ttf
│ │ ├── AtkinsonHyperlegible-BoldItalic.ttf.import
│ │ ├── AtkinsonHyperlegible-Italic.ttf
│ │ ├── AtkinsonHyperlegible-Italic.ttf.import
│ │ ├── AtkinsonHyperlegible-Regular.ttf
│ │ ├── AtkinsonHyperlegible-Regular.ttf.import
│ │ └── OFL.txt
│ ├── Cinzel
│ │ ├── Cinzel-VariableFont_wght.ttf
│ │ ├── Cinzel-VariableFont_wght.ttf.import
│ │ ├── OFL.txt
│ │ ├── README.txt
│ │ └── static
│ │ │ ├── Cinzel-Black.ttf
│ │ │ ├── Cinzel-Black.ttf.import
│ │ │ ├── Cinzel-Bold.ttf
│ │ │ ├── Cinzel-Bold.ttf.import
│ │ │ ├── Cinzel-ExtraBold.ttf
│ │ │ ├── Cinzel-ExtraBold.ttf.import
│ │ │ ├── Cinzel-Medium.ttf
│ │ │ ├── Cinzel-Medium.ttf.import
│ │ │ ├── Cinzel-Regular.ttf
│ │ │ ├── Cinzel-Regular.ttf.import
│ │ │ ├── Cinzel-SemiBold.ttf
│ │ │ └── Cinzel-SemiBold.ttf.import
│ ├── kenney_mini.ttf
│ ├── kenney_mini.ttf.import
│ ├── kenney_mini_square.ttf
│ └── kenney_mini_square.ttf.import
├── node_icons
│ ├── blue
│ │ ├── icon_area_damage.png
│ │ ├── icon_area_damage.png.import
│ │ ├── icon_area_meteo.png
│ │ ├── icon_area_meteo.png.import
│ │ ├── icon_audio.png
│ │ ├── icon_audio.png.import
│ │ ├── icon_bag.png
│ │ ├── icon_bag.png.import
│ │ ├── icon_beetle.png
│ │ ├── icon_beetle.png.import
│ │ ├── icon_bell.png
│ │ ├── icon_bell.png.import
│ │ ├── icon_bone.png
│ │ ├── icon_bone.png.import
│ │ ├── icon_brain.png
│ │ ├── icon_brain.png.import
│ │ ├── icon_brush.png
│ │ ├── icon_brush.png.import
│ │ ├── icon_brush_2.png
│ │ ├── icon_brush_2.png.import
│ │ ├── icon_bucket.png
│ │ ├── icon_bucket.png.import
│ │ ├── icon_bullet.png
│ │ ├── icon_bullet.png.import
│ │ ├── icon_camera_grid.png
│ │ ├── icon_camera_grid.png.import
│ │ ├── icon_card.png
│ │ ├── icon_card.png.import
│ │ ├── icon_case.png
│ │ ├── icon_case.png.import
│ │ ├── icon_cell.png
│ │ ├── icon_cell.png.import
│ │ ├── icon_character.png
│ │ ├── icon_character.png.import
│ │ ├── icon_chest.png
│ │ ├── icon_chest.png.import
│ │ ├── icon_clear.png
│ │ ├── icon_clear.png.import
│ │ ├── icon_coin.png
│ │ ├── icon_coin.png.import
│ │ ├── icon_color_correction.png
│ │ ├── icon_color_correction.png.import
│ │ ├── icon_crate.png
│ │ ├── icon_crate.png.import
│ │ ├── icon_dialog.png
│ │ ├── icon_dialog.png.import
│ │ ├── icon_dice.png
│ │ ├── icon_dice.png.import
│ │ ├── icon_door.png
│ │ ├── icon_door.png.import
│ │ ├── icon_event.png
│ │ ├── icon_event.png.import
│ │ ├── icon_file.png
│ │ ├── icon_file.png.import
│ │ ├── icon_flag.png
│ │ ├── icon_flag.png.import
│ │ ├── icon_folder.png
│ │ ├── icon_folder.png.import
│ │ ├── icon_follow.png
│ │ ├── icon_follow.png.import
│ │ ├── icon_gear.png
│ │ ├── icon_gear.png.import
│ │ ├── icon_gem.png
│ │ ├── icon_gem.png.import
│ │ ├── icon_grid.png
│ │ ├── icon_grid.png.import
│ │ ├── icon_hammer.png
│ │ ├── icon_hammer.png.import
│ │ ├── icon_hand.png
│ │ ├── icon_hand.png.import
│ │ ├── icon_hat.png
│ │ ├── icon_hat.png.import
│ │ ├── icon_heart.png
│ │ ├── icon_heart.png.import
│ │ ├── icon_hitbox.png
│ │ ├── icon_hitbox.png.import
│ │ ├── icon_interrogation.png
│ │ ├── icon_interrogation.png.import
│ │ ├── icon_key.png
│ │ ├── icon_key.png.import
│ │ ├── icon_lever.png
│ │ ├── icon_lever.png.import
│ │ ├── icon_light_bulb.png
│ │ ├── icon_light_bulb.png.import
│ │ ├── icon_liquid.png
│ │ ├── icon_liquid.png.import
│ │ ├── icon_lock.png
│ │ ├── icon_lock.png.import
│ │ ├── icon_magnifier.png
│ │ ├── icon_magnifier.png.import
│ │ ├── icon_map.png
│ │ ├── icon_map.png.import
│ │ ├── icon_meat.png
│ │ ├── icon_meat.png.import
│ │ ├── icon_mirror.png
│ │ ├── icon_mirror.png.import
│ │ ├── icon_money_bag.png
│ │ ├── icon_money_bag.png.import
│ │ ├── icon_parchment.png
│ │ ├── icon_parchment.png.import
│ │ ├── icon_particle.png
│ │ ├── icon_particle.png.import
│ │ ├── icon_path_follow.png
│ │ ├── icon_path_follow.png.import
│ │ ├── icon_pot.png
│ │ ├── icon_pot.png.import
│ │ ├── icon_potion.png
│ │ ├── icon_potion.png.import
│ │ ├── icon_projectile.png
│ │ ├── icon_projectile.png.import
│ │ ├── icon_propeller.png
│ │ ├── icon_propeller.png.import
│ │ ├── icon_puzzle.png
│ │ ├── icon_puzzle.png.import
│ │ ├── icon_ring.png
│ │ ├── icon_ring.png.import
│ │ ├── icon_save.png
│ │ ├── icon_save.png.import
│ │ ├── icon_scene.png
│ │ ├── icon_scene.png.import
│ │ ├── icon_search.png
│ │ ├── icon_search.png.import
│ │ ├── icon_shield.png
│ │ ├── icon_shield.png.import
│ │ ├── icon_ship.png
│ │ ├── icon_ship.png.import
│ │ ├── icon_shovel.png
│ │ ├── icon_shovel.png.import
│ │ ├── icon_signal.png
│ │ ├── icon_signal.png.import
│ │ ├── icon_skull.png
│ │ ├── icon_skull.png.import
│ │ ├── icon_star.png
│ │ ├── icon_star.png.import
│ │ ├── icon_stat.png
│ │ ├── icon_stat.png.import
│ │ ├── icon_sword.png
│ │ ├── icon_sword.png.import
│ │ ├── icon_target.png
│ │ ├── icon_target.png.import
│ │ ├── icon_target_2.png
│ │ ├── icon_target_2.png.import
│ │ ├── icon_text_panel.png
│ │ ├── icon_text_panel.png.import
│ │ ├── icon_time.png
│ │ ├── icon_time.png.import
│ │ ├── icon_transition.png
│ │ ├── icon_transition.png.import
│ │ ├── icon_trap.png
│ │ ├── icon_trap.png.import
│ │ ├── icon_tree.png
│ │ ├── icon_tree.png.import
│ │ ├── icon_trophy.png
│ │ ├── icon_trophy.png.import
│ │ ├── icon_unlock.png
│ │ └── icon_unlock.png.import
│ ├── color
│ │ ├── icon_destroyable.png
│ │ ├── icon_destroyable.png.import
│ │ ├── icon_heart.png
│ │ ├── icon_heart.png.import
│ │ ├── icon_map_colored.png
│ │ ├── icon_map_colored.png.import
│ │ ├── icon_meteo.png
│ │ ├── icon_meteo.png.import
│ │ ├── icon_teleporter.png
│ │ ├── icon_teleporter.png.import
│ │ ├── icon_weapon.png
│ │ └── icon_weapon.png.import
│ ├── green
│ │ ├── icon_area_damage.png
│ │ ├── icon_area_damage.png.import
│ │ ├── icon_area_meteo.png
│ │ ├── icon_area_meteo.png.import
│ │ ├── icon_audio.png
│ │ ├── icon_audio.png.import
│ │ ├── icon_bag.png
│ │ ├── icon_bag.png.import
│ │ ├── icon_beetle.png
│ │ ├── icon_beetle.png.import
│ │ ├── icon_bell.png
│ │ ├── icon_bell.png.import
│ │ ├── icon_bone.png
│ │ ├── icon_bone.png.import
│ │ ├── icon_brain.png
│ │ ├── icon_brain.png.import
│ │ ├── icon_brush.png
│ │ ├── icon_brush.png.import
│ │ ├── icon_brush_2.png
│ │ ├── icon_brush_2.png.import
│ │ ├── icon_bucket.png
│ │ ├── icon_bucket.png.import
│ │ ├── icon_bullet.png
│ │ ├── icon_bullet.png.import
│ │ ├── icon_camera_grid.png
│ │ ├── icon_camera_grid.png.import
│ │ ├── icon_card.png
│ │ ├── icon_card.png.import
│ │ ├── icon_case.png
│ │ ├── icon_case.png.import
│ │ ├── icon_cell.png
│ │ ├── icon_cell.png.import
│ │ ├── icon_character.png
│ │ ├── icon_character.png.import
│ │ ├── icon_chest.png
│ │ ├── icon_chest.png.import
│ │ ├── icon_clear.png
│ │ ├── icon_clear.png.import
│ │ ├── icon_coin.png
│ │ ├── icon_coin.png.import
│ │ ├── icon_color_correction.png
│ │ ├── icon_color_correction.png.import
│ │ ├── icon_crate.png
│ │ ├── icon_crate.png.import
│ │ ├── icon_dialog.png
│ │ ├── icon_dialog.png.import
│ │ ├── icon_dice.png
│ │ ├── icon_dice.png.import
│ │ ├── icon_door.png
│ │ ├── icon_door.png.import
│ │ ├── icon_event.png
│ │ ├── icon_event.png.import
│ │ ├── icon_file.png
│ │ ├── icon_file.png.import
│ │ ├── icon_flag.png
│ │ ├── icon_flag.png.import
│ │ ├── icon_folder.png
│ │ ├── icon_folder.png.import
│ │ ├── icon_follow.png
│ │ ├── icon_follow.png.import
│ │ ├── icon_gear.png
│ │ ├── icon_gear.png.import
│ │ ├── icon_gem.png
│ │ ├── icon_gem.png.import
│ │ ├── icon_grid.png
│ │ ├── icon_grid.png.import
│ │ ├── icon_hammer.png
│ │ ├── icon_hammer.png.import
│ │ ├── icon_hand.png
│ │ ├── icon_hand.png.import
│ │ ├── icon_hat.png
│ │ ├── icon_hat.png.import
│ │ ├── icon_heart.png
│ │ ├── icon_heart.png.import
│ │ ├── icon_hitbox.png
│ │ ├── icon_hitbox.png.import
│ │ ├── icon_interrogation.png
│ │ ├── icon_interrogation.png.import
│ │ ├── icon_key.png
│ │ ├── icon_key.png.import
│ │ ├── icon_lever.png
│ │ ├── icon_lever.png.import
│ │ ├── icon_light_bulb.png
│ │ ├── icon_light_bulb.png.import
│ │ ├── icon_liquid.png
│ │ ├── icon_liquid.png.import
│ │ ├── icon_lock.png
│ │ ├── icon_lock.png.import
│ │ ├── icon_magnifier.png
│ │ ├── icon_magnifier.png.import
│ │ ├── icon_map.png
│ │ ├── icon_map.png.import
│ │ ├── icon_meat.png
│ │ ├── icon_meat.png.import
│ │ ├── icon_mirror.png
│ │ ├── icon_mirror.png.import
│ │ ├── icon_money_bag.png
│ │ ├── icon_money_bag.png.import
│ │ ├── icon_parchment.png
│ │ ├── icon_parchment.png.import
│ │ ├── icon_particle.png
│ │ ├── icon_particle.png.import
│ │ ├── icon_path_follow.png
│ │ ├── icon_path_follow.png.import
│ │ ├── icon_pot.png
│ │ ├── icon_pot.png.import
│ │ ├── icon_potion.png
│ │ ├── icon_potion.png.import
│ │ ├── icon_projectile.png
│ │ ├── icon_projectile.png.import
│ │ ├── icon_propeller.png
│ │ ├── icon_propeller.png.import
│ │ ├── icon_puzzle.png
│ │ ├── icon_puzzle.png.import
│ │ ├── icon_ring.png
│ │ ├── icon_ring.png.import
│ │ ├── icon_save.png
│ │ ├── icon_save.png.import
│ │ ├── icon_scene.png
│ │ ├── icon_scene.png.import
│ │ ├── icon_search.png
│ │ ├── icon_search.png.import
│ │ ├── icon_shield.png
│ │ ├── icon_shield.png.import
│ │ ├── icon_ship.png
│ │ ├── icon_ship.png.import
│ │ ├── icon_shovel.png
│ │ ├── icon_shovel.png.import
│ │ ├── icon_signal.png
│ │ ├── icon_signal.png.import
│ │ ├── icon_skull.png
│ │ ├── icon_skull.png.import
│ │ ├── icon_star.png
│ │ ├── icon_star.png.import
│ │ ├── icon_stat.png
│ │ ├── icon_stat.png.import
│ │ ├── icon_sword.png
│ │ ├── icon_sword.png.import
│ │ ├── icon_target.png
│ │ ├── icon_target.png.import
│ │ ├── icon_target_2.png
│ │ ├── icon_target_2.png.import
│ │ ├── icon_text_panel.png
│ │ ├── icon_text_panel.png.import
│ │ ├── icon_time.png
│ │ ├── icon_time.png.import
│ │ ├── icon_transition.png
│ │ ├── icon_transition.png.import
│ │ ├── icon_trap.png
│ │ ├── icon_trap.png.import
│ │ ├── icon_tree.png
│ │ ├── icon_tree.png.import
│ │ ├── icon_trophy.png
│ │ ├── icon_trophy.png.import
│ │ ├── icon_unlock.png
│ │ └── icon_unlock.png.import
│ └── info.txt
├── project_icon
│ ├── icon128x.png
│ ├── icon128x.png.import
│ ├── icon_svg.svg
│ └── icon_svg.svg.import
├── skyboxes
│ ├── cloudy_skybox_0.png
│ ├── cloudy_skybox_0.png.import
│ ├── mountain_skybox_0.png
│ └── mountain_skybox_0.png.import
└── sprites
│ ├── characters
│ ├── goblin
│ │ ├── goblin_death.png
│ │ ├── goblin_death.png.import
│ │ ├── goblin_idle.png
│ │ ├── goblin_idle.png.import
│ │ ├── goblin_run.png
│ │ └── goblin_run.png.import
│ ├── knight
│ │ ├── knight_death.png
│ │ ├── knight_death.png.import
│ │ ├── knight_idle.png
│ │ ├── knight_idle.png.import
│ │ ├── knight_run.png
│ │ └── knight_run.png.import
│ ├── orc
│ │ ├── orc_death.png
│ │ ├── orc_death.png.import
│ │ ├── orc_idle.png
│ │ ├── orc_idle.png.import
│ │ ├── orc_run.png
│ │ └── orc_run.png.import
│ ├── orc_rogue
│ │ ├── orc_rogue_death.png
│ │ ├── orc_rogue_death.png.import
│ │ ├── orc_rogue_idle.png
│ │ ├── orc_rogue_idle.png.import
│ │ ├── orc_rogue_run.png
│ │ └── orc_rogue_run.png.import
│ ├── orc_shaman
│ │ ├── orc_shaman_death.png
│ │ ├── orc_shaman_death.png.import
│ │ ├── orc_shaman_idle.png
│ │ ├── orc_shaman_idle.png.import
│ │ ├── orc_shaman_run.png
│ │ └── orc_shaman_run.png.import
│ ├── orc_warrior
│ │ ├── orc_warrior_death.png
│ │ ├── orc_warrior_death.png.import
│ │ ├── orc_warrior_idle.png
│ │ ├── orc_warrior_idle.png.import
│ │ ├── orc_warrior_run.png
│ │ └── orc_warrior_run.png.import
│ ├── rogue
│ │ ├── rogue_death.png
│ │ ├── rogue_death.png.import
│ │ ├── rogue_idle.png
│ │ ├── rogue_idle.png.import
│ │ ├── rogue_run.png
│ │ └── rogue_run.png.import
│ ├── skeleton
│ │ ├── skeleton_death.png
│ │ ├── skeleton_death.png.import
│ │ ├── skeleton_idle.png
│ │ ├── skeleton_idle.png.import
│ │ ├── skeleton_run.png
│ │ └── skeleton_run.png.import
│ ├── skeleton_mage
│ │ ├── skeleton_mage_death.png
│ │ ├── skeleton_mage_death.png.import
│ │ ├── skeleton_mage_idle.png
│ │ ├── skeleton_mage_idle.png.import
│ │ ├── skeleton_mage_run.png
│ │ └── skeleton_mage_run.png.import
│ ├── skeleton_rogue
│ │ ├── skeleton_rogue_death.png
│ │ ├── skeleton_rogue_death.png.import
│ │ ├── skeleton_rogue_idle.png
│ │ ├── skeleton_rogue_idle.png.import
│ │ ├── skeleton_rogue_run.png
│ │ └── skeleton_rogue_run.png.import
│ ├── skeleton_warrior
│ │ ├── skeleton_warrior_death.png
│ │ ├── skeleton_warrior_death.png.import
│ │ ├── skeleton_warrior_idle.png
│ │ ├── skeleton_warrior_idle.png.import
│ │ ├── skeleton_warrior_run.png
│ │ └── skeleton_warrior_run.png.import
│ └── wizard
│ │ ├── wizard_death.png
│ │ ├── wizard_death.png.import
│ │ ├── wizard_idle.png
│ │ ├── wizard_idle.png.import
│ │ ├── wizard_run.png
│ │ └── wizard_run.png.import
│ ├── environment
│ ├── building
│ │ ├── Exterior
│ │ │ ├── CemiteryWalls.png
│ │ │ ├── CemiteryWalls.png.import
│ │ │ ├── Garden.png
│ │ │ ├── Garden.png.import
│ │ │ ├── Props.png
│ │ │ ├── Props.png.import
│ │ │ ├── Roofs.png
│ │ │ ├── Roofs.png.import
│ │ │ ├── Walls.png
│ │ │ └── Walls.png.import
│ │ └── Interior
│ │ │ ├── BaseOutpost.png
│ │ │ ├── BaseOutpost.png.import
│ │ │ ├── Castle.png
│ │ │ ├── Castle.png.import
│ │ │ ├── Librarytiles.png
│ │ │ └── Librarytiles.png.import
│ ├── dungeon_prison
│ │ ├── dungeon_tiles.png
│ │ ├── dungeon_tiles.png.import
│ │ ├── props.png
│ │ ├── props.png.import
│ │ ├── tiles.png
│ │ └── tiles.png.import
│ ├── environment_objects
│ │ ├── barrel.png
│ │ ├── barrel.png.import
│ │ ├── bars_gate.png
│ │ ├── bars_gate.png.import
│ │ ├── big_red_potion.png
│ │ ├── big_red_potion.png.import
│ │ ├── chest.png
│ │ ├── chest.png.import
│ │ ├── crate.png
│ │ ├── crate.png.import
│ │ ├── dungeon_barrel.png
│ │ ├── dungeon_barrel.png.import
│ │ ├── dungeon_crate.png
│ │ ├── dungeon_crate.png.import
│ │ ├── gold_coin.png
│ │ ├── gold_coin.png.import
│ │ ├── key.png
│ │ ├── key.png.import
│ │ ├── pot.png
│ │ ├── pot.png.import
│ │ ├── pressure_plate.png
│ │ ├── pressure_plate.png.import
│ │ ├── red_potion.png
│ │ ├── red_potion.png.import
│ │ ├── saw.png
│ │ ├── saw.png.import
│ │ ├── spike_trap.png
│ │ ├── spike_trap.png.import
│ │ ├── switch_horizontal.png
│ │ ├── switch_horizontal.png.import
│ │ ├── switch_vertical.png
│ │ ├── switch_vertical.png.import
│ │ ├── urn.png
│ │ ├── urn.png.import
│ │ ├── wide_chest.png
│ │ ├── wide_chest.png.import
│ │ ├── wooden_gate.png
│ │ └── wooden_gate.png.import
│ ├── green_woods
│ │ ├── props.png
│ │ ├── props.png.import
│ │ ├── tiles.png
│ │ ├── tiles.png.import
│ │ ├── trees.png
│ │ └── trees.png.import
│ └── world_tileset
│ │ ├── Cave
│ │ ├── CaveProps.png
│ │ ├── CaveProps.png.import
│ │ ├── CaveTiles.png
│ │ └── CaveTiles.png.import
│ │ ├── Desert
│ │ ├── Ground.png
│ │ ├── Ground.png.import
│ │ ├── Props.png
│ │ ├── Props.png.import
│ │ ├── Sand.png
│ │ └── Sand.png.import
│ │ └── Forest
│ │ ├── Floors_Tiles.png
│ │ ├── Floors_Tiles.png.import
│ │ ├── Light.png
│ │ ├── Light.png.import
│ │ ├── Props.png
│ │ ├── Props.png.import
│ │ ├── Shadown.png
│ │ ├── Shadown.png.import
│ │ ├── Tiles.png
│ │ ├── Tiles.png.import
│ │ ├── Tree.png
│ │ ├── Tree.png.import
│ │ ├── Wall_Tiles.png
│ │ ├── Wall_Tiles.png.import
│ │ ├── Wall_Variations.png
│ │ └── Wall_Variations.png.import
│ ├── gui
│ ├── .gitkeep
│ └── backgrounds
│ │ ├── desert.png
│ │ ├── desert.png.import
│ │ ├── fairy_forest.png
│ │ └── fairy_forest.png.import
│ ├── items
│ ├── icons
│ │ ├── Icon109.png
│ │ ├── Icon109.png.import
│ │ ├── Icon142.png
│ │ ├── Icon142.png.import
│ │ ├── Icon162.png
│ │ ├── Icon162.png.import
│ │ ├── Icon182.png
│ │ ├── Icon182.png.import
│ │ ├── Icon2.png
│ │ ├── Icon2.png.import
│ │ ├── Icon202.png
│ │ ├── Icon202.png.import
│ │ ├── Icon222.png
│ │ ├── Icon222.png.import
│ │ ├── Icon271.png
│ │ ├── Icon271.png.import
│ │ ├── Icon274.png
│ │ ├── Icon274.png.import
│ │ ├── Icon301.png
│ │ ├── Icon301.png.import
│ │ ├── Icon302.png
│ │ ├── Icon302.png.import
│ │ ├── Icon303.png
│ │ ├── Icon303.png.import
│ │ ├── Icon304.png
│ │ ├── Icon304.png.import
│ │ ├── Icon305.png
│ │ ├── Icon305.png.import
│ │ ├── Icon306.png
│ │ ├── Icon306.png.import
│ │ ├── Icon307.png
│ │ ├── Icon307.png.import
│ │ ├── Icon308.png
│ │ ├── Icon308.png.import
│ │ ├── Icon309.png
│ │ ├── Icon309.png.import
│ │ ├── Icon310.png
│ │ ├── Icon310.png.import
│ │ ├── Icon321.png
│ │ ├── Icon321.png.import
│ │ ├── Icon325.png
│ │ └── Icon325.png.import
│ └── weapons
│ │ ├── bone
│ │ ├── bone.png
│ │ └── bone.png.import
│ │ ├── hands
│ │ ├── brown_leather_gloves.png
│ │ ├── brown_leather_gloves.png.import
│ │ ├── goblin_hands.png
│ │ ├── goblin_hands.png.import
│ │ ├── human_hands.png
│ │ ├── human_hands.png.import
│ │ ├── orc_hands.png
│ │ └── orc_hands.png.import
│ │ └── wood
│ │ ├── wood.png
│ │ └── wood.png.import
│ └── particles
│ ├── gold_coin_pick_up.png
│ ├── gold_coin_pick_up.png.import
│ ├── white_circle.png
│ └── white_circle.png.import
├── data
└── config
│ ├── client_config.cfg
│ ├── ekonia
│ ├── README.md
│ └── client.cfg
│ ├── gateway_config.cfg
│ ├── master_config.cfg
│ ├── tls
│ ├── certificate.crt
│ └── key.key
│ ├── world_config.cfg
│ └── world_config_hardcore.cfg
├── icon.svg
├── project.godot
└── source
├── client
├── autoload
│ ├── client_state.gd
│ └── client_state.gd.uid
├── client_main.gd
├── client_main.gd.uid
├── client_main.tscn
├── gateway
│ ├── gateway.gd
│ ├── gateway.gd.uid
│ ├── gateway.tscn
│ ├── popup_panel.gd
│ └── popup_panel.gd.uid
├── local_player
│ ├── local_player.gd
│ ├── local_player.gd.uid
│ ├── local_player.tscn
│ ├── mouse_component.gd
│ └── mouse_component.gd.uid
├── network
│ ├── instance_client.gd
│ ├── instance_client.gd.uid
│ ├── instance_manager.gd
│ ├── instance_manager.gd.uid
│ ├── world_client.gd
│ └── world_client.gd.uid
├── ui
│ ├── hud
│ │ ├── health_bar
│ │ │ ├── health_bar.gd
│ │ │ ├── health_bar.gd.uid
│ │ │ └── health_bar.tscn
│ │ ├── hud.gd
│ │ ├── hud.gd.uid
│ │ ├── hud.tscn
│ │ ├── item_slots.gd
│ │ ├── item_slots.gd.uid
│ │ ├── menu_overlay.gd
│ │ └── menu_overlay.gd.uid
│ ├── menus
│ │ ├── chat
│ │ │ ├── chat_menu.gd
│ │ │ ├── chat_menu.gd.uid
│ │ │ └── chat_menu.tscn
│ │ ├── guild
│ │ │ ├── create_guild_menu.gd
│ │ │ ├── create_guild_menu.gd.uid
│ │ │ ├── guild_display.gd
│ │ │ ├── guild_display.gd.uid
│ │ │ ├── guild_menu.gd
│ │ │ ├── guild_menu.gd.uid
│ │ │ ├── guild_menu.tscn
│ │ │ ├── guild_panel.gd
│ │ │ ├── guild_panel.gd.uid
│ │ │ ├── no_guild_menu.gd
│ │ │ ├── no_guild_menu.gd.uid
│ │ │ ├── search_guild_menu.gd
│ │ │ └── search_guild_menu.gd.uid
│ │ ├── inventory
│ │ │ ├── attributes_panel.gd
│ │ │ ├── attributes_panel.gd.uid
│ │ │ ├── gear_slot.gd
│ │ │ ├── gear_slot.gd.uid
│ │ │ ├── inventory_menu.gd
│ │ │ ├── inventory_menu.gd.uid
│ │ │ ├── inventory_menu.tscn
│ │ │ ├── item_slot_button.gd
│ │ │ ├── item_slot_button.gd.uid
│ │ │ ├── stats_panel.gd
│ │ │ └── stats_panel.gd.uid
│ │ ├── player_profile
│ │ │ ├── player_profile.gd
│ │ │ ├── player_profile.gd.uid
│ │ │ └── player_profile_menu.tscn
│ │ └── settings
│ │ │ ├── settings.gd
│ │ │ ├── settings.gd.uid
│ │ │ └── settings_menu.tscn
│ ├── shared
│ │ ├── sub_panel.gd
│ │ └── sub_panel.gd.uid
│ ├── themes
│ │ ├── styles
│ │ │ ├── gradient_button.tres
│ │ │ ├── stylebox_gradient.gd
│ │ │ └── stylebox_gradient.gd.uid
│ │ ├── theme_desert.tres
│ │ └── theme_navy.tres
│ ├── ui.gd
│ ├── ui.gd.uid
│ └── ui.tscn
└── utils
│ ├── button_utils.gd
│ ├── button_utils.gd.uid
│ ├── theme_changer.gd
│ └── theme_changer.gd.uid
├── common
├── gameplay
│ ├── characters
│ │ ├── animations
│ │ │ └── locomotion.tres
│ │ ├── character.gd
│ │ ├── character.gd.uid
│ │ ├── character.tscn
│ │ ├── classes
│ │ │ ├── character_collection
│ │ │ │ ├── knight.tres
│ │ │ │ ├── rogue.tres
│ │ │ │ └── wizard.tres
│ │ │ ├── character_resource.gd
│ │ │ └── character_resource.gd.uid
│ │ ├── components
│ │ │ └── hand
│ │ │ │ ├── hand.gd
│ │ │ │ ├── hand.gd.uid
│ │ │ │ └── hand.tscn
│ │ ├── entity.gd
│ │ ├── entity.gd.uid
│ │ ├── npc
│ │ │ ├── npc.gd
│ │ │ ├── npc.gd.uid
│ │ │ └── npc.tscn
│ │ ├── player
│ │ │ ├── display_name_label.gd
│ │ │ ├── display_name_label.gd.uid
│ │ │ ├── player.gd
│ │ │ ├── player.gd.uid
│ │ │ ├── player.tscn
│ │ │ ├── player_resource.gd
│ │ │ └── player_resource.gd.uid
│ │ └── sprite_frames
│ │ │ ├── knight.tres
│ │ │ ├── rogue.tres
│ │ │ └── wizard.tres
│ ├── combat
│ │ ├── ability
│ │ │ ├── ability.gd
│ │ │ ├── ability.gd.uid
│ │ │ ├── ability_collection
│ │ │ │ └── swing
│ │ │ │ │ ├── swing.gd
│ │ │ │ │ └── swing.gd.uid
│ │ │ └── arrow_shoot
│ │ │ │ ├── arrow_shoot.gd
│ │ │ │ ├── arrow_shoot.gd.uid
│ │ │ │ └── arrow_shoot.tres
│ │ ├── attack
│ │ │ ├── attack.gd
│ │ │ └── attack.gd.uid
│ │ ├── attributes
│ │ │ ├── attributes_map.gd
│ │ │ ├── attributes_map.gd.uid
│ │ │ ├── stat_growth
│ │ │ │ ├── stat_growth.gd
│ │ │ │ └── stat_growth.gd.uid
│ │ │ ├── stat_modifier
│ │ │ │ ├── stat_modifier.gd
│ │ │ │ └── stat_modifier.gd.uid
│ │ │ ├── stats_catalog.gd
│ │ │ └── stats_catalog.gd.uid
│ │ ├── components
│ │ │ ├── ability_system_component.gd
│ │ │ ├── ability_system_component.gd.uid
│ │ │ ├── attributes_mirror.gd
│ │ │ ├── attributes_mirror.gd.uid
│ │ │ ├── equipment_component.gd
│ │ │ └── equipment_component.gd.uid
│ │ ├── damage_model
│ │ │ ├── DamageModelResource.tres
│ │ │ ├── damage_model_resource.gd
│ │ │ └── damage_model_resource.gd.uid
│ │ ├── effect_spec.gd
│ │ ├── effect_spec.gd.uid
│ │ ├── gameplay_effect
│ │ │ ├── gameplay_effect.gd
│ │ │ ├── gameplay_effect.gd.uid
│ │ │ └── resources
│ │ │ │ ├── burn_effect.gd
│ │ │ │ ├── burn_effect.gd.uid
│ │ │ │ ├── potion_heal.gd
│ │ │ │ ├── potion_heal.gd.uid
│ │ │ │ ├── thormail.gd
│ │ │ │ └── thormail.gd.uid
│ │ ├── gameplay_event.gd
│ │ ├── gameplay_event.gd.uid
│ │ ├── gameplay_resource
│ │ │ ├── fury_resource.gd
│ │ │ ├── fury_resource.gd.uid
│ │ │ ├── gameplay_resource.gd
│ │ │ ├── gameplay_resource.gd.uid
│ │ │ ├── health_cost_resource.gd
│ │ │ ├── health_cost_resource.gd.uid
│ │ │ ├── mana_resource.gd
│ │ │ └── mana_resource.gd.uid
│ │ └── team
│ │ │ ├── team_component.gd
│ │ │ └── team_component.gd.uid
│ ├── items
│ │ ├── consumable_item.gd
│ │ ├── consumable_item.gd.uid
│ │ ├── consumables
│ │ │ └── health_potion.tres
│ │ ├── gear_item.gd
│ │ ├── gear_item.gd.uid
│ │ ├── gears
│ │ │ ├── copper_ring.tres
│ │ │ └── thornmail.tres
│ │ ├── item.gd
│ │ ├── item.gd.uid
│ │ ├── item_slot
│ │ │ ├── item_slot.gd
│ │ │ ├── item_slot.gd.uid
│ │ │ ├── item_slot_unlock_rule.gd
│ │ │ ├── item_slot_unlock_rule.gd.uid
│ │ │ └── slots
│ │ │ │ ├── helmet.tres
│ │ │ │ ├── relic.tres
│ │ │ │ ├── ring.tres
│ │ │ │ ├── torso.tres
│ │ │ │ └── weapon.tres
│ │ ├── material_item.gd
│ │ ├── material_item.gd.uid
│ │ ├── materials
│ │ │ └── bone.tres
│ │ ├── quest_item.gd
│ │ ├── quest_item.gd.uid
│ │ ├── weapon_item.gd
│ │ ├── weapon_item.gd.uid
│ │ └── weapons
│ │ │ ├── bow
│ │ │ ├── arrow.gd
│ │ │ ├── arrow.gd.uid
│ │ │ ├── arrow.tscn
│ │ │ ├── wooden_bow.gd
│ │ │ ├── wooden_bow.gd.uid
│ │ │ ├── wooden_bow.item.tres
│ │ │ ├── wooden_bow.tscn
│ │ │ └── woooden_arrow.tscn
│ │ │ ├── dcadrius
│ │ │ ├── test_bow.tres
│ │ │ ├── test_sword.tres
│ │ │ ├── test_sword2.tres
│ │ │ ├── weapon_data.gd
│ │ │ └── weapon_data.gd.uid
│ │ │ ├── empty_hand
│ │ │ └── empty_hand.tscn
│ │ │ ├── hammer
│ │ │ └── hammer.tscn
│ │ │ ├── sword
│ │ │ ├── sword.gd
│ │ │ ├── sword.gd.uid
│ │ │ ├── sword.tscn
│ │ │ └── sword_animations.tres
│ │ │ ├── weapon.gd
│ │ │ ├── weapon.gd.uid
│ │ │ └── weapon.tscn
│ └── maps
│ │ ├── components
│ │ └── interaction_areas
│ │ │ ├── interaction_area.gd
│ │ │ ├── interaction_area.gd.uid
│ │ │ ├── interaction_area.tscn
│ │ │ ├── teleporter
│ │ │ ├── teleporter.gd
│ │ │ ├── teleporter.gd.uid
│ │ │ └── teleporter.tscn
│ │ │ └── warper
│ │ │ ├── warper.gd
│ │ │ ├── warper.gd.uid
│ │ │ └── warper.tscn
│ │ ├── instance
│ │ ├── instance_collection
│ │ │ ├── dungeon.tres
│ │ │ ├── dungeon
│ │ │ │ ├── dungeon.tres
│ │ │ │ └── dungeon_entrance.tres
│ │ │ ├── dungeon_entrance.tres
│ │ │ ├── guild_house
│ │ │ │ └── guild_house.tres
│ │ │ ├── guild_outpost_base
│ │ │ │ └── guild_outpost.tres
│ │ │ ├── mining_cave
│ │ │ │ └── cave_area1.tres
│ │ │ ├── overworld.tres
│ │ │ ├── spar_house
│ │ │ │ └── spar_house.tres
│ │ │ ├── starter_shop
│ │ │ │ └── starter_shop.tres
│ │ │ └── trade_house
│ │ │ │ └── trade_house.tres
│ │ ├── instance_resource.gd
│ │ └── instance_resource.gd.uid
│ │ ├── map.gd
│ │ ├── map.gd.uid
│ │ ├── maps
│ │ ├── dungeon
│ │ │ ├── dungeon.tscn
│ │ │ └── dungeon_entrance.tscn
│ │ ├── guild_house
│ │ │ ├── inside_map.tscn
│ │ │ └── outside_building.tscn
│ │ ├── guild_outpost_base
│ │ │ ├── inside_map.tscn
│ │ │ └── outside_building.tscn
│ │ ├── guild_spar
│ │ │ ├── guild_arena_1.tscn
│ │ │ ├── guild_arena_2.tscn
│ │ │ ├── guild_arena_3.tscn
│ │ │ ├── spar_house.tscn
│ │ │ └── spar_house_inside.tscn
│ │ ├── mining_cave
│ │ │ └── cave_area1.tscn
│ │ ├── misc_buildings
│ │ │ ├── goblin_shaman_house.tscn
│ │ │ ├── house.tscn
│ │ │ ├── house_1.tscn
│ │ │ └── mining_vending.tscn
│ │ ├── overworld.tscn
│ │ ├── spar_house
│ │ │ ├── arena_1.tscn
│ │ │ ├── guild_arena_1.tscn
│ │ │ ├── guild_arena_2.tscn
│ │ │ ├── guild_arena_3.tscn
│ │ │ ├── inside_map.tscn
│ │ │ ├── outside_building.tscn
│ │ │ └── spar_house_inside.tscn
│ │ ├── starter_shop
│ │ │ ├── inside_map.tscn
│ │ │ └── outside_building.tscn
│ │ └── trade_house
│ │ │ ├── inside_map.tscn
│ │ │ └── outside_building.tscn
│ │ ├── props
│ │ ├── collectibles
│ │ │ ├── coin.gd
│ │ │ ├── coin.gd.uid
│ │ │ └── coin.tscn
│ │ ├── doors
│ │ │ └── activable_door
│ │ │ │ ├── activable_door.gd
│ │ │ │ ├── activable_door.gd.uid
│ │ │ │ └── activable_door.tscn
│ │ └── ground_button
│ │ │ ├── ground_button.gd
│ │ │ ├── ground_button.gd.uid
│ │ │ └── ground_button.tscn
│ │ ├── template
│ │ └── map_template.tscn
│ │ ├── tilesets
│ │ ├── base_outpost_inside_tileset.tres
│ │ ├── buildings_inside_tileset.tres
│ │ ├── buildings_outside_tileset.tres
│ │ ├── dungeon_tileset.tres
│ │ ├── forest_tiles.tres
│ │ ├── forest_tileset.tres
│ │ └── mining_cave_tileset.tres
│ │ ├── zone_patch_2d.gd
│ │ └── zone_patch_2d.gd.uid
├── main.gd
├── main.gd.uid
├── main.tscn
├── network
│ ├── endpoints
│ │ ├── base_multiplayer_endpoint.gd
│ │ └── base_multiplayer_endpoint.gd.uid
│ ├── gateway_api.gd
│ ├── gateway_api.gd.uid
│ ├── sync
│ │ ├── property_cache.gd
│ │ ├── property_cache.gd.uid
│ │ ├── replicated_props.gd
│ │ ├── replicated_props.gd.uid
│ │ ├── state_synchronizer.gd
│ │ ├── state_synchronizer.gd.uid
│ │ ├── state_synchronizer_manager_client.gd
│ │ ├── state_synchronizer_manager_client.gd.uid
│ │ ├── state_synchronizer_manager_server.gd
│ │ └── state_synchronizer_manager_server.gd.uid
│ ├── utils
│ │ ├── sync_utils.gd
│ │ ├── sync_utils.gd.uid
│ │ ├── tls_options_utils.gd
│ │ └── tls_options_utils.gd.uid
│ ├── wire.gd
│ ├── wire.gd.uid
│ ├── wire_codec.gd
│ └── wire_codec.gd.uid
├── registry
│ ├── content_index.gd
│ ├── content_index.gd.uid
│ ├── content_registry.gd
│ ├── content_registry.gd.uid
│ ├── content_registry_hub.gd
│ ├── content_registry_hub.gd.uid
│ ├── indexes
│ │ ├── data_request_handlers_index.tres
│ │ ├── items_index.tres
│ │ ├── maps_index.tres
│ │ └── sprites_index.tres
│ ├── path_registry.gd
│ └── path_registry.gd.uid
└── utils
│ ├── anim_utils.gd
│ ├── anim_utils.gd.uid
│ ├── cmdline_utils.gd
│ ├── cmdline_utils.gd.uid
│ ├── config_file_utils.gd
│ ├── config_file_utils.gd.uid
│ ├── credentials_utils.gd
│ ├── credentials_utils.gd.uid
│ ├── editor_scripts
│ ├── generate_crypto_key.gd
│ └── generate_crypto_key.gd.uid
│ ├── file_utils.gd
│ └── file_utils.gd.uid
└── server
├── gateway
├── README.md
├── gateway_main.gd
├── gateway_main.gd.uid
├── gateway_main.tscn
├── http_server.gd
├── http_server.gd.uid
└── master_gateway_client
│ ├── gateway_manager_client.gd
│ └── gateway_manager_client.gd.uid
├── master
├── README.md
├── account_models
│ ├── account.gd
│ ├── account.gd.uid
│ ├── account_collection.gd
│ └── account_collection.gd.uid
├── components
│ ├── authentication_manager.gd
│ ├── authentication_manager.gd.uid
│ ├── database.gd
│ ├── database.gd.uid
│ ├── master_gateway_server
│ │ ├── master_gateway_server.gd
│ │ └── master_gateway_server.gd.uid
│ └── master_world_server
│ │ ├── master_world_server.gd
│ │ └── master_world_server.gd.uid
├── master_main.gd
├── master_main.gd.uid
└── master_main.tscn
└── world
├── components
├── chat_command
│ ├── chat_command.gd
│ ├── chat_command.gd.uid
│ └── global_commands
│ │ ├── getid_command.gd
│ │ ├── getid_command.gd.uid
│ │ ├── heal_command.gd
│ │ ├── heal_command.gd.uid
│ │ ├── help_command.gd
│ │ ├── help_command.gd.uid
│ │ ├── selfadmin_command.gd
│ │ ├── selfadmin_command.gd.uid
│ │ ├── set_command.gd
│ │ ├── set_command.gd.uid
│ │ ├── size_command.gd
│ │ ├── size_command.gd.uid
│ │ ├── toogle_role_command.gd
│ │ └── toogle_role_command.gd.uid
├── console.gd
├── console.gd.uid
├── data_request_handlers
│ ├── action.perform.gd
│ ├── action.perform.gd.uid
│ ├── attribute.get.gd
│ ├── attribute.get.gd.uid
│ ├── attribute.spend.gd
│ ├── attribute.spend.gd.uid
│ ├── chat.command.exec.gd
│ ├── chat.command.exec.gd.uid
│ ├── chat.message.send.gd
│ ├── chat.message.send.gd.uid
│ ├── data_request_handler.gd
│ ├── data_request_handler.gd.uid
│ ├── guild.create.gd
│ ├── guild.create.gd.uid
│ ├── guild.get.gd
│ ├── guild.get.gd.uid
│ ├── guild.quit.gd
│ ├── guild.quit.gd.uid
│ ├── guild.search.gd
│ ├── guild.search.gd.uid
│ ├── guild.self.gd
│ ├── guild.self.gd.uid
│ ├── inventory.get.gd
│ ├── inventory.get.gd.uid
│ ├── item.equip.gd
│ ├── item.equip.gd.uid
│ ├── profile.get.gd
│ └── profile.get.gd.uid
├── instance_manager.gd
├── instance_manager.gd.uid
├── instance_server.gd
├── instance_server.gd.uid
├── world_database.gd
├── world_database.gd.uid
├── world_manager_client.gd
├── world_manager_client.gd.uid
├── world_server.gd
└── world_server.gd.uid
├── data
├── classic.tres
├── guild.gd
├── guild.gd.uid
├── hardcore.tres
├── server_roles.gd
├── server_roles.gd.uid
├── server_roles.tres
├── world_player_data.gd
└── world_player_data.gd.uid
├── deprecated
├── camera_probe.gd
└── camera_probe.gd.uid
├── world_main.gd
├── world_main.gd.uid
└── world_main.tscn
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Normalize EOL for all files that Git considers text files.
2 | * text=auto eol=lf
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Godot 4+ specific ignores
2 | .godot/
3 | export_presets.cfg
4 |
5 | # Imported translations (automatically generated from CSV files)
6 | *.translation
7 |
8 | # System/tool-specific ignores
9 | .directory
10 | *DS_Store
11 | *~
12 |
13 | # Godot tmp files (https://github.com/godotengine/godot/issues/82270)
14 | *.tmp
15 |
16 | # Project-local volatile data
17 | data/local/
18 | /source/server/master/account_collection.tres
19 |
--------------------------------------------------------------------------------
/addons/httpserver/http_router.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bap1v534e366f
2 |
--------------------------------------------------------------------------------
/addons/httpserver/http_server.gd.uid:
--------------------------------------------------------------------------------
1 | uid://3tb0fuhyrr5u
2 |
--------------------------------------------------------------------------------
/addons/tinymmo/README.md:
--------------------------------------------------------------------------------
1 | ## TinyMMO addon/plugin
2 |
3 | This plugin is mean to be used only with TinyMMO, won't work outside of it.
4 |
5 | It aims to provide editor tools to help dev:
6 | - Generating content index from editor interface
7 | - Make modification during export (right now simply deleting client autoloads on server)
8 |
9 |
--------------------------------------------------------------------------------
/addons/tinymmo/export_plugin/export_plugin.gd:
--------------------------------------------------------------------------------
1 | extends EditorExportPlugin
2 |
3 |
4 | func _export_begin(features: PackedStringArray, is_debug: bool, path: String, flags: int) -> void:
5 | if features.has("client"):
6 | return
7 |
8 |
9 | var config := ConfigFile.new()
10 | var override_content: String = "[autoload]
11 | ClientState=null"
12 | add_file(
13 | "override.cfg",
14 | override_content.to_utf8_buffer(),
15 | true
16 | )
17 | print("Server export detected. Removing client autoload...")
18 |
19 |
20 | func _export_end() -> void:
21 | pass
22 |
23 |
24 | func _get_name() -> String:
25 | return "No Client Autoload"
26 |
--------------------------------------------------------------------------------
/addons/tinymmo/export_plugin/export_plugin.gd.uid:
--------------------------------------------------------------------------------
1 | uid://81nokhxoyo0k
2 |
--------------------------------------------------------------------------------
/addons/tinymmo/inspector_plugin.gd:
--------------------------------------------------------------------------------
1 | extends EditorInspectorPlugin
2 |
3 |
4 | var property_editor: GDScript = preload("property_editor.gd")
5 |
6 |
7 | func _can_handle(object: Object):
8 | return true
9 |
10 |
11 | func _parse_property(object: Object, type: Variant.Type, name: String, hint_type: PropertyHint, hint_string: String, usage_flags: int, wide: bool) -> bool:
12 | if type == TYPE_DICTIONARY:
13 | #printt(object, type, name, hint_type, hint_string, usage_flags, wide)
14 | var dict: Dictionary = EditorInterface.get_inspector().get_edited_object()[name]
15 | if dict.get_typed_key_builtin() == TYPE_NODE_PATH:
16 | add_property_editor(name, property_editor.new(), true)
17 | return false
18 | return false
19 |
--------------------------------------------------------------------------------
/addons/tinymmo/inspector_plugin.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cykucqu4fyndt
2 |
--------------------------------------------------------------------------------
/addons/tinymmo/main_screen/generate_dialog.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bye5rx5hh2swj
2 |
--------------------------------------------------------------------------------
/addons/tinymmo/main_screen/main_panel.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bdo6vhrtb1efa
2 |
--------------------------------------------------------------------------------
/addons/tinymmo/nodepath_helper.gd:
--------------------------------------------------------------------------------
1 | class_name TinyNodePath
2 | extends Node
3 |
4 |
5 | static func set_property_collection(root: Node, collection: Dictionary[NodePath, Variant]):
6 | for path: NodePath in collection:
7 | var target: Node = root.get_node_or_null(get_path_to_node(path))
8 | if target:
9 | target.set_indexed(get_path_to_property(path), collection[path])
10 |
11 |
12 | static func get_path_to_node(path: NodePath) -> NodePath:
13 | return path.slice(0, path.get_name_count())
14 |
15 |
16 | static func get_path_to_property(path: NodePath) -> NodePath:
17 | return path.slice(path.get_name_count())
18 |
--------------------------------------------------------------------------------
/addons/tinymmo/nodepath_helper.gd.uid:
--------------------------------------------------------------------------------
1 | uid://chp6r0yn06aah
2 |
--------------------------------------------------------------------------------
/addons/tinymmo/plugin.cfg:
--------------------------------------------------------------------------------
1 | [plugin]
2 |
3 | name="TinyMMO"
4 | description="Editor Plugin to enhance the development workflow of Godot-Tiny-MMO project."
5 | author="Horizon"
6 | version=""
7 | script="plugin.gd"
8 |
--------------------------------------------------------------------------------
/addons/tinymmo/plugin.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bib3mk5la0tsa
2 |
--------------------------------------------------------------------------------
/addons/tinymmo/popup/confirmation_dialog.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bbggc60f5dh3w
2 |
--------------------------------------------------------------------------------
/addons/tinymmo/popup/get_property_hint.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dyleuler7nfho
2 |
--------------------------------------------------------------------------------
/addons/tinymmo/popup/tree.gd.uid:
--------------------------------------------------------------------------------
1 | uid://kddgpf3a3t71
2 |
--------------------------------------------------------------------------------
/addons/tinymmo/property_editor.gd.uid:
--------------------------------------------------------------------------------
1 | uid://43koo8bbrt73
2 |
--------------------------------------------------------------------------------
/addons/tinymmo/test_scene/health_component.gd:
--------------------------------------------------------------------------------
1 | extends Node
2 |
3 |
4 | @export var health: int = 10
5 | @export var max_health: int = 10
6 |
7 | func foo() -> void:
8 | print("Health: ", health, " | MaxHealth: ", max_health)
9 |
--------------------------------------------------------------------------------
/addons/tinymmo/test_scene/health_component.gd.uid:
--------------------------------------------------------------------------------
1 | uid://brx5ni2u12nwd
2 |
--------------------------------------------------------------------------------
/addons/tinymmo/test_scene/node.gd:
--------------------------------------------------------------------------------
1 | extends Node
2 |
3 |
4 | @export var spawn_state: Dictionary[NodePath, Variant] = {
5 | ^"HealthComponent:health": 33,
6 | ^"HealthComponent:max_health": 33,
7 | #^".:char": null
8 | }
9 |
10 | @export var dict_empty: Dictionary
11 |
12 | @export var integer: int
13 | @export var char: CharacterResource = null
14 | @export var position2d: Vector2 = Vector2.ONE
15 |
16 |
17 | func _ready() -> void:
18 | foo();print("ready");
19 | print(get_node("."))
20 | func foo():
21 | TinyNodePath.set_property_collection(self, spawn_state)
22 |
--------------------------------------------------------------------------------
/addons/tinymmo/test_scene/node.gd.uid:
--------------------------------------------------------------------------------
1 | uid://1stwntyy7jv3
2 |
--------------------------------------------------------------------------------
/addons/tinymmo/test_scene/node.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=3 format=3 uid="uid://m2yryo0nxj3c"]
2 |
3 | [ext_resource type="Script" uid="uid://1stwntyy7jv3" path="res://addons/tinymmo/test_scene/node.gd" id="1_8hu6a"]
4 | [ext_resource type="Script" uid="uid://brx5ni2u12nwd" path="res://addons/tinymmo/test_scene/health_component.gd" id="2_o4e2x"]
5 |
6 | [node name="Node" type="Node"]
7 | script = ExtResource("1_8hu6a")
8 | spawn_state = Dictionary[NodePath, Variant]({
9 | NodePath("HealthComponent:health"): 33,
10 | NodePath("HealthComponent:max_health"): 33,
11 | NodePath("Salade"): 2,
12 | NodePath(".:integer"): 1,
13 | NodePath(".:position2d"): Vector2(2, 1)
14 | })
15 |
16 | [node name="HealthComponent" type="Node" parent="."]
17 | script = ExtResource("2_o4e2x")
18 |
19 | [node name="Node2D" type="Node2D" parent="."]
20 | script = ExtResource("2_o4e2x")
21 |
22 | [node name="Node" type="Node" parent="."]
23 |
--------------------------------------------------------------------------------
/assets/audio/music/ekonia-main-theme.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/audio/music/ekonia-main-theme.wav
--------------------------------------------------------------------------------
/assets/audio/music/ekonia-main-theme.wav.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="wav"
4 | type="AudioStreamWAV"
5 | uid="uid://xxr4otrq1cg0"
6 | path="res://.godot/imported/ekonia-main-theme.wav-5f8d10749df7e59623d3d809bea4fc07.sample"
7 |
8 | [deps]
9 |
10 | source_file="res://assets/audio/music/ekonia-main-theme.wav"
11 | dest_files=["res://.godot/imported/ekonia-main-theme.wav-5f8d10749df7e59623d3d809bea4fc07.sample"]
12 |
13 | [params]
14 |
15 | force/8_bit=false
16 | force/mono=false
17 | force/max_rate=false
18 | force/max_rate_hz=44100
19 | edit/trim=false
20 | edit/normalize=false
21 | edit/loop_mode=0
22 | edit/loop_begin=0
23 | edit/loop_end=-1
24 | compress/mode=2
25 |
--------------------------------------------------------------------------------
/assets/fonts/Atkinson_Hyperlegible/AtkinsonHyperlegible-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/fonts/Atkinson_Hyperlegible/AtkinsonHyperlegible-Bold.ttf
--------------------------------------------------------------------------------
/assets/fonts/Atkinson_Hyperlegible/AtkinsonHyperlegible-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/fonts/Atkinson_Hyperlegible/AtkinsonHyperlegible-BoldItalic.ttf
--------------------------------------------------------------------------------
/assets/fonts/Atkinson_Hyperlegible/AtkinsonHyperlegible-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/fonts/Atkinson_Hyperlegible/AtkinsonHyperlegible-Italic.ttf
--------------------------------------------------------------------------------
/assets/fonts/Atkinson_Hyperlegible/AtkinsonHyperlegible-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/fonts/Atkinson_Hyperlegible/AtkinsonHyperlegible-Regular.ttf
--------------------------------------------------------------------------------
/assets/fonts/Cinzel/Cinzel-VariableFont_wght.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/fonts/Cinzel/Cinzel-VariableFont_wght.ttf
--------------------------------------------------------------------------------
/assets/fonts/Cinzel/static/Cinzel-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/fonts/Cinzel/static/Cinzel-Black.ttf
--------------------------------------------------------------------------------
/assets/fonts/Cinzel/static/Cinzel-Black.ttf.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="font_data_dynamic"
4 | type="FontFile"
5 | uid="uid://dcugjnfqo4545"
6 | path="res://.godot/imported/Cinzel-Black.ttf-11c15ed5976550cf842f6c898c745de9.fontdata"
7 |
8 | [deps]
9 |
10 | source_file="res://assets/fonts/Cinzel/static/Cinzel-Black.ttf"
11 | dest_files=["res://.godot/imported/Cinzel-Black.ttf-11c15ed5976550cf842f6c898c745de9.fontdata"]
12 |
13 | [params]
14 |
15 | Rendering=null
16 | antialiasing=1
17 | generate_mipmaps=false
18 | disable_embedded_bitmaps=true
19 | multichannel_signed_distance_field=false
20 | msdf_pixel_range=8
21 | msdf_size=48
22 | allow_system_fallback=true
23 | force_autohinter=false
24 | hinting=1
25 | subpixel_positioning=4
26 | keep_rounding_remainders=true
27 | oversampling=0.0
28 | Fallbacks=null
29 | fallbacks=[]
30 | Compress=null
31 | compress=true
32 | preload=[]
33 | language_support={}
34 | script_support={}
35 | opentype_features={}
36 |
--------------------------------------------------------------------------------
/assets/fonts/Cinzel/static/Cinzel-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/fonts/Cinzel/static/Cinzel-Bold.ttf
--------------------------------------------------------------------------------
/assets/fonts/Cinzel/static/Cinzel-Bold.ttf.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="font_data_dynamic"
4 | type="FontFile"
5 | uid="uid://cehc3gujked8x"
6 | path="res://.godot/imported/Cinzel-Bold.ttf-aa5015b4c86453708efc51cda5f08e33.fontdata"
7 |
8 | [deps]
9 |
10 | source_file="res://assets/fonts/Cinzel/static/Cinzel-Bold.ttf"
11 | dest_files=["res://.godot/imported/Cinzel-Bold.ttf-aa5015b4c86453708efc51cda5f08e33.fontdata"]
12 |
13 | [params]
14 |
15 | Rendering=null
16 | antialiasing=1
17 | generate_mipmaps=false
18 | disable_embedded_bitmaps=true
19 | multichannel_signed_distance_field=false
20 | msdf_pixel_range=8
21 | msdf_size=48
22 | allow_system_fallback=true
23 | force_autohinter=false
24 | hinting=1
25 | subpixel_positioning=4
26 | keep_rounding_remainders=true
27 | oversampling=0.0
28 | Fallbacks=null
29 | fallbacks=[]
30 | Compress=null
31 | compress=true
32 | preload=[]
33 | language_support={}
34 | script_support={}
35 | opentype_features={}
36 |
--------------------------------------------------------------------------------
/assets/fonts/Cinzel/static/Cinzel-ExtraBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/fonts/Cinzel/static/Cinzel-ExtraBold.ttf
--------------------------------------------------------------------------------
/assets/fonts/Cinzel/static/Cinzel-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/fonts/Cinzel/static/Cinzel-Medium.ttf
--------------------------------------------------------------------------------
/assets/fonts/Cinzel/static/Cinzel-Medium.ttf.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="font_data_dynamic"
4 | type="FontFile"
5 | uid="uid://cyiwjmaowucxo"
6 | path="res://.godot/imported/Cinzel-Medium.ttf-b022b3fc89ad50096987365ab9b56b47.fontdata"
7 |
8 | [deps]
9 |
10 | source_file="res://assets/fonts/Cinzel/static/Cinzel-Medium.ttf"
11 | dest_files=["res://.godot/imported/Cinzel-Medium.ttf-b022b3fc89ad50096987365ab9b56b47.fontdata"]
12 |
13 | [params]
14 |
15 | Rendering=null
16 | antialiasing=1
17 | generate_mipmaps=false
18 | disable_embedded_bitmaps=true
19 | multichannel_signed_distance_field=false
20 | msdf_pixel_range=8
21 | msdf_size=48
22 | allow_system_fallback=true
23 | force_autohinter=false
24 | hinting=1
25 | subpixel_positioning=4
26 | keep_rounding_remainders=true
27 | oversampling=0.0
28 | Fallbacks=null
29 | fallbacks=[]
30 | Compress=null
31 | compress=true
32 | preload=[]
33 | language_support={}
34 | script_support={}
35 | opentype_features={}
36 |
--------------------------------------------------------------------------------
/assets/fonts/Cinzel/static/Cinzel-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/fonts/Cinzel/static/Cinzel-Regular.ttf
--------------------------------------------------------------------------------
/assets/fonts/Cinzel/static/Cinzel-Regular.ttf.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="font_data_dynamic"
4 | type="FontFile"
5 | uid="uid://degl2k4ilqvus"
6 | path="res://.godot/imported/Cinzel-Regular.ttf-0b4a96c90a5450fd1f0b5e9d0983f949.fontdata"
7 |
8 | [deps]
9 |
10 | source_file="res://assets/fonts/Cinzel/static/Cinzel-Regular.ttf"
11 | dest_files=["res://.godot/imported/Cinzel-Regular.ttf-0b4a96c90a5450fd1f0b5e9d0983f949.fontdata"]
12 |
13 | [params]
14 |
15 | Rendering=null
16 | antialiasing=1
17 | generate_mipmaps=false
18 | disable_embedded_bitmaps=true
19 | multichannel_signed_distance_field=false
20 | msdf_pixel_range=8
21 | msdf_size=48
22 | allow_system_fallback=true
23 | force_autohinter=false
24 | hinting=1
25 | subpixel_positioning=4
26 | keep_rounding_remainders=true
27 | oversampling=0.0
28 | Fallbacks=null
29 | fallbacks=[]
30 | Compress=null
31 | compress=true
32 | preload=[]
33 | language_support={}
34 | script_support={}
35 | opentype_features={}
36 |
--------------------------------------------------------------------------------
/assets/fonts/Cinzel/static/Cinzel-SemiBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/fonts/Cinzel/static/Cinzel-SemiBold.ttf
--------------------------------------------------------------------------------
/assets/fonts/kenney_mini.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/fonts/kenney_mini.ttf
--------------------------------------------------------------------------------
/assets/fonts/kenney_mini.ttf.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="font_data_dynamic"
4 | type="FontFile"
5 | uid="uid://b6hkljp38x3fi"
6 | path="res://.godot/imported/kenney_mini.ttf-3b5b1f6fae027daa26e3904a3b3b9a0e.fontdata"
7 |
8 | [deps]
9 |
10 | source_file="res://assets/fonts/kenney_mini.ttf"
11 | dest_files=["res://.godot/imported/kenney_mini.ttf-3b5b1f6fae027daa26e3904a3b3b9a0e.fontdata"]
12 |
13 | [params]
14 |
15 | Rendering=null
16 | antialiasing=1
17 | generate_mipmaps=false
18 | disable_embedded_bitmaps=true
19 | multichannel_signed_distance_field=false
20 | msdf_pixel_range=8
21 | msdf_size=48
22 | allow_system_fallback=true
23 | force_autohinter=false
24 | hinting=1
25 | subpixel_positioning=1
26 | keep_rounding_remainders=true
27 | oversampling=0.0
28 | Fallbacks=null
29 | fallbacks=[]
30 | Compress=null
31 | compress=true
32 | preload=[]
33 | language_support={}
34 | script_support={}
35 | opentype_features={}
36 |
--------------------------------------------------------------------------------
/assets/fonts/kenney_mini_square.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/fonts/kenney_mini_square.ttf
--------------------------------------------------------------------------------
/assets/fonts/kenney_mini_square.ttf.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="font_data_dynamic"
4 | type="FontFile"
5 | uid="uid://4hwkelg84yr4"
6 | path="res://.godot/imported/kenney_mini_square.ttf-f4549d67dc207e3d94a5e3013002571e.fontdata"
7 |
8 | [deps]
9 |
10 | source_file="res://assets/fonts/kenney_mini_square.ttf"
11 | dest_files=["res://.godot/imported/kenney_mini_square.ttf-f4549d67dc207e3d94a5e3013002571e.fontdata"]
12 |
13 | [params]
14 |
15 | Rendering=null
16 | antialiasing=1
17 | generate_mipmaps=false
18 | disable_embedded_bitmaps=true
19 | multichannel_signed_distance_field=false
20 | msdf_pixel_range=8
21 | msdf_size=48
22 | allow_system_fallback=true
23 | force_autohinter=false
24 | hinting=1
25 | subpixel_positioning=1
26 | keep_rounding_remainders=true
27 | oversampling=0.0
28 | Fallbacks=null
29 | fallbacks=[]
30 | Compress=null
31 | compress=true
32 | preload=[]
33 | language_support={}
34 | script_support={}
35 | opentype_features={}
36 |
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_area_damage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_area_damage.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_area_meteo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_area_meteo.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_audio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_audio.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_bag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_bag.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_beetle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_beetle.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_bell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_bell.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_bone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_bone.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_brain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_brain.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_brush.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_brush.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_brush_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_brush_2.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_bucket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_bucket.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_bullet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_bullet.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_camera_grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_camera_grid.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_card.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_card.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_case.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_case.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_cell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_cell.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_character.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_character.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_chest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_chest.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_clear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_clear.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_coin.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_color_correction.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_color_correction.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_crate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_crate.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_dialog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_dialog.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_dice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_dice.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_door.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_door.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_event.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_file.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_flag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_flag.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_folder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_folder.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_follow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_follow.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_gear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_gear.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_gem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_gem.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_grid.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_hammer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_hammer.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_hand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_hand.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_hat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_hat.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_hat.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://7ce7m0221tey"
6 | path="res://.godot/imported/icon_hat.png-517cdf0446815ef2e6f61d34a34598c1.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://assets/node_icons/blue/icon_hat.png"
14 | dest_files=["res://.godot/imported/icon_hat.png-517cdf0446815ef2e6f61d34a34598c1.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_heart.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_hitbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_hitbox.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_interrogation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_interrogation.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_key.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_key.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_lever.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_lever.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_light_bulb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_light_bulb.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_liquid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_liquid.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_lock.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_magnifier.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_magnifier.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_map.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_map.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_meat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_meat.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_mirror.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_mirror.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_money_bag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_money_bag.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_parchment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_parchment.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_particle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_particle.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_path_follow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_path_follow.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_pot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_pot.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_potion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_potion.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_projectile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_projectile.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_propeller.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_propeller.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_puzzle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_puzzle.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_ring.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_ring.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_save.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_scene.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_scene.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_search.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_shield.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_shield.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_ship.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_ship.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_shovel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_shovel.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_signal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_signal.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_skull.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_skull.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_star.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_stat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_stat.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_sword.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_sword.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_target.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_target.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_target_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_target_2.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_text_panel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_text_panel.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_time.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_time.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_transition.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_transition.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_trap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_trap.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_tree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_tree.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_trophy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_trophy.png
--------------------------------------------------------------------------------
/assets/node_icons/blue/icon_unlock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/blue/icon_unlock.png
--------------------------------------------------------------------------------
/assets/node_icons/color/icon_destroyable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/color/icon_destroyable.png
--------------------------------------------------------------------------------
/assets/node_icons/color/icon_heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/color/icon_heart.png
--------------------------------------------------------------------------------
/assets/node_icons/color/icon_map_colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/color/icon_map_colored.png
--------------------------------------------------------------------------------
/assets/node_icons/color/icon_meteo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/color/icon_meteo.png
--------------------------------------------------------------------------------
/assets/node_icons/color/icon_teleporter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/color/icon_teleporter.png
--------------------------------------------------------------------------------
/assets/node_icons/color/icon_weapon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/color/icon_weapon.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_area_damage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_area_damage.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_area_meteo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_area_meteo.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_audio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_audio.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_bag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_bag.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_beetle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_beetle.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_bell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_bell.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_bone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_bone.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_brain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_brain.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_brush.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_brush.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_brush_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_brush_2.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_bucket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_bucket.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_bullet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_bullet.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_camera_grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_camera_grid.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_card.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_card.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_case.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_case.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_cell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_cell.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_character.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_character.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_chest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_chest.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_clear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_clear.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_coin.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_color_correction.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_color_correction.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_crate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_crate.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_dialog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_dialog.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_dice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_dice.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_door.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_door.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_event.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_file.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_flag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_flag.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_folder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_folder.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_follow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_follow.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_gear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_gear.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_gem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_gem.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_grid.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_hammer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_hammer.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_hand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_hand.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_hat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_hat.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_heart.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_hitbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_hitbox.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_interrogation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_interrogation.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_key.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_key.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_lever.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_lever.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_light_bulb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_light_bulb.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_liquid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_liquid.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_lock.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_magnifier.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_magnifier.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_map.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_map.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_meat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_meat.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_mirror.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_mirror.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_money_bag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_money_bag.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_parchment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_parchment.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_particle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_particle.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_path_follow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_path_follow.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_pot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_pot.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_potion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_potion.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_projectile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_projectile.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_propeller.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_propeller.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_puzzle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_puzzle.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_ring.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_ring.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_save.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_scene.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_scene.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_search.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_shield.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_shield.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_ship.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_ship.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_shovel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_shovel.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_signal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_signal.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_skull.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_skull.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_star.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_stat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_stat.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_sword.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_sword.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_target.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_target.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_target_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_target_2.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_text_panel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_text_panel.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_time.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_time.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_transition.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_transition.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_trap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_trap.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_tree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_tree.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_trophy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_trophy.png
--------------------------------------------------------------------------------
/assets/node_icons/green/icon_unlock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/node_icons/green/icon_unlock.png
--------------------------------------------------------------------------------
/assets/node_icons/info.txt:
--------------------------------------------------------------------------------
1 | License concerning assets inside this folder node_icons/:
2 | > License
3 | >
4 | > They are released under the Creative Commons Zero (CC0) license.
5 | >
6 | > You can use any and all of the assets found in this package in your own games, even commercial ones
7 | >
8 | > No need to credit me.
9 |
10 | Source:
11 | > https://pixel-boy.itch.io/icon-godot-node
12 |
--------------------------------------------------------------------------------
/assets/project_icon/icon128x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/project_icon/icon128x.png
--------------------------------------------------------------------------------
/assets/project_icon/icon128x.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://0n3jc8bju5rn"
6 | path="res://.godot/imported/icon128x.png-a276f13c9ab65f0141b13afeec50ab83.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://assets/project_icon/icon128x.png"
14 | dest_files=["res://.godot/imported/icon128x.png-a276f13c9ab65f0141b13afeec50ab83.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/assets/skyboxes/cloudy_skybox_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/skyboxes/cloudy_skybox_0.png
--------------------------------------------------------------------------------
/assets/skyboxes/mountain_skybox_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/skyboxes/mountain_skybox_0.png
--------------------------------------------------------------------------------
/assets/sprites/characters/goblin/goblin_death.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/goblin/goblin_death.png
--------------------------------------------------------------------------------
/assets/sprites/characters/goblin/goblin_idle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/goblin/goblin_idle.png
--------------------------------------------------------------------------------
/assets/sprites/characters/goblin/goblin_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/goblin/goblin_run.png
--------------------------------------------------------------------------------
/assets/sprites/characters/knight/knight_death.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/knight/knight_death.png
--------------------------------------------------------------------------------
/assets/sprites/characters/knight/knight_idle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/knight/knight_idle.png
--------------------------------------------------------------------------------
/assets/sprites/characters/knight/knight_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/knight/knight_run.png
--------------------------------------------------------------------------------
/assets/sprites/characters/orc/orc_death.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/orc/orc_death.png
--------------------------------------------------------------------------------
/assets/sprites/characters/orc/orc_idle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/orc/orc_idle.png
--------------------------------------------------------------------------------
/assets/sprites/characters/orc/orc_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/orc/orc_run.png
--------------------------------------------------------------------------------
/assets/sprites/characters/orc_rogue/orc_rogue_death.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/orc_rogue/orc_rogue_death.png
--------------------------------------------------------------------------------
/assets/sprites/characters/orc_rogue/orc_rogue_idle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/orc_rogue/orc_rogue_idle.png
--------------------------------------------------------------------------------
/assets/sprites/characters/orc_rogue/orc_rogue_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/orc_rogue/orc_rogue_run.png
--------------------------------------------------------------------------------
/assets/sprites/characters/orc_shaman/orc_shaman_death.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/orc_shaman/orc_shaman_death.png
--------------------------------------------------------------------------------
/assets/sprites/characters/orc_shaman/orc_shaman_idle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/orc_shaman/orc_shaman_idle.png
--------------------------------------------------------------------------------
/assets/sprites/characters/orc_shaman/orc_shaman_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/orc_shaman/orc_shaman_run.png
--------------------------------------------------------------------------------
/assets/sprites/characters/orc_warrior/orc_warrior_death.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/orc_warrior/orc_warrior_death.png
--------------------------------------------------------------------------------
/assets/sprites/characters/orc_warrior/orc_warrior_idle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/orc_warrior/orc_warrior_idle.png
--------------------------------------------------------------------------------
/assets/sprites/characters/orc_warrior/orc_warrior_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/orc_warrior/orc_warrior_run.png
--------------------------------------------------------------------------------
/assets/sprites/characters/rogue/rogue_death.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/rogue/rogue_death.png
--------------------------------------------------------------------------------
/assets/sprites/characters/rogue/rogue_idle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/rogue/rogue_idle.png
--------------------------------------------------------------------------------
/assets/sprites/characters/rogue/rogue_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/rogue/rogue_run.png
--------------------------------------------------------------------------------
/assets/sprites/characters/skeleton/skeleton_death.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/skeleton/skeleton_death.png
--------------------------------------------------------------------------------
/assets/sprites/characters/skeleton/skeleton_idle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/skeleton/skeleton_idle.png
--------------------------------------------------------------------------------
/assets/sprites/characters/skeleton/skeleton_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/skeleton/skeleton_run.png
--------------------------------------------------------------------------------
/assets/sprites/characters/skeleton_mage/skeleton_mage_death.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/skeleton_mage/skeleton_mage_death.png
--------------------------------------------------------------------------------
/assets/sprites/characters/skeleton_mage/skeleton_mage_idle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/skeleton_mage/skeleton_mage_idle.png
--------------------------------------------------------------------------------
/assets/sprites/characters/skeleton_mage/skeleton_mage_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/skeleton_mage/skeleton_mage_run.png
--------------------------------------------------------------------------------
/assets/sprites/characters/skeleton_rogue/skeleton_rogue_death.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/skeleton_rogue/skeleton_rogue_death.png
--------------------------------------------------------------------------------
/assets/sprites/characters/skeleton_rogue/skeleton_rogue_idle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/skeleton_rogue/skeleton_rogue_idle.png
--------------------------------------------------------------------------------
/assets/sprites/characters/skeleton_rogue/skeleton_rogue_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/skeleton_rogue/skeleton_rogue_run.png
--------------------------------------------------------------------------------
/assets/sprites/characters/skeleton_warrior/skeleton_warrior_death.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/skeleton_warrior/skeleton_warrior_death.png
--------------------------------------------------------------------------------
/assets/sprites/characters/skeleton_warrior/skeleton_warrior_idle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/skeleton_warrior/skeleton_warrior_idle.png
--------------------------------------------------------------------------------
/assets/sprites/characters/skeleton_warrior/skeleton_warrior_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/skeleton_warrior/skeleton_warrior_run.png
--------------------------------------------------------------------------------
/assets/sprites/characters/wizard/wizard_death.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/wizard/wizard_death.png
--------------------------------------------------------------------------------
/assets/sprites/characters/wizard/wizard_idle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/wizard/wizard_idle.png
--------------------------------------------------------------------------------
/assets/sprites/characters/wizard/wizard_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/characters/wizard/wizard_run.png
--------------------------------------------------------------------------------
/assets/sprites/environment/building/Exterior/CemiteryWalls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/building/Exterior/CemiteryWalls.png
--------------------------------------------------------------------------------
/assets/sprites/environment/building/Exterior/Garden.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/building/Exterior/Garden.png
--------------------------------------------------------------------------------
/assets/sprites/environment/building/Exterior/Props.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/building/Exterior/Props.png
--------------------------------------------------------------------------------
/assets/sprites/environment/building/Exterior/Roofs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/building/Exterior/Roofs.png
--------------------------------------------------------------------------------
/assets/sprites/environment/building/Exterior/Walls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/building/Exterior/Walls.png
--------------------------------------------------------------------------------
/assets/sprites/environment/building/Interior/BaseOutpost.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/building/Interior/BaseOutpost.png
--------------------------------------------------------------------------------
/assets/sprites/environment/building/Interior/Castle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/building/Interior/Castle.png
--------------------------------------------------------------------------------
/assets/sprites/environment/building/Interior/Librarytiles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/building/Interior/Librarytiles.png
--------------------------------------------------------------------------------
/assets/sprites/environment/dungeon_prison/dungeon_tiles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/dungeon_prison/dungeon_tiles.png
--------------------------------------------------------------------------------
/assets/sprites/environment/dungeon_prison/props.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/dungeon_prison/props.png
--------------------------------------------------------------------------------
/assets/sprites/environment/dungeon_prison/tiles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/dungeon_prison/tiles.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/barrel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/barrel.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/bars_gate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/bars_gate.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/big_red_potion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/big_red_potion.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/chest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/chest.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/crate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/crate.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/dungeon_barrel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/dungeon_barrel.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/dungeon_crate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/dungeon_crate.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/gold_coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/gold_coin.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/key.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/key.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/pot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/pot.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/pressure_plate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/pressure_plate.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/red_potion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/red_potion.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/saw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/saw.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/spike_trap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/spike_trap.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/switch_horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/switch_horizontal.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/switch_vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/switch_vertical.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/urn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/urn.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/wide_chest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/wide_chest.png
--------------------------------------------------------------------------------
/assets/sprites/environment/environment_objects/wooden_gate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/environment_objects/wooden_gate.png
--------------------------------------------------------------------------------
/assets/sprites/environment/green_woods/props.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/green_woods/props.png
--------------------------------------------------------------------------------
/assets/sprites/environment/green_woods/tiles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/green_woods/tiles.png
--------------------------------------------------------------------------------
/assets/sprites/environment/green_woods/trees.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/green_woods/trees.png
--------------------------------------------------------------------------------
/assets/sprites/environment/world_tileset/Cave/CaveProps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/world_tileset/Cave/CaveProps.png
--------------------------------------------------------------------------------
/assets/sprites/environment/world_tileset/Cave/CaveTiles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/world_tileset/Cave/CaveTiles.png
--------------------------------------------------------------------------------
/assets/sprites/environment/world_tileset/Desert/Ground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/world_tileset/Desert/Ground.png
--------------------------------------------------------------------------------
/assets/sprites/environment/world_tileset/Desert/Props.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/world_tileset/Desert/Props.png
--------------------------------------------------------------------------------
/assets/sprites/environment/world_tileset/Desert/Sand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/world_tileset/Desert/Sand.png
--------------------------------------------------------------------------------
/assets/sprites/environment/world_tileset/Forest/Floors_Tiles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/world_tileset/Forest/Floors_Tiles.png
--------------------------------------------------------------------------------
/assets/sprites/environment/world_tileset/Forest/Light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/world_tileset/Forest/Light.png
--------------------------------------------------------------------------------
/assets/sprites/environment/world_tileset/Forest/Props.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/world_tileset/Forest/Props.png
--------------------------------------------------------------------------------
/assets/sprites/environment/world_tileset/Forest/Shadown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/world_tileset/Forest/Shadown.png
--------------------------------------------------------------------------------
/assets/sprites/environment/world_tileset/Forest/Tiles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/world_tileset/Forest/Tiles.png
--------------------------------------------------------------------------------
/assets/sprites/environment/world_tileset/Forest/Tree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/world_tileset/Forest/Tree.png
--------------------------------------------------------------------------------
/assets/sprites/environment/world_tileset/Forest/Wall_Tiles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/world_tileset/Forest/Wall_Tiles.png
--------------------------------------------------------------------------------
/assets/sprites/environment/world_tileset/Forest/Wall_Variations.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/environment/world_tileset/Forest/Wall_Variations.png
--------------------------------------------------------------------------------
/assets/sprites/gui/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/gui/.gitkeep
--------------------------------------------------------------------------------
/assets/sprites/gui/backgrounds/desert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/gui/backgrounds/desert.png
--------------------------------------------------------------------------------
/assets/sprites/gui/backgrounds/fairy_forest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/gui/backgrounds/fairy_forest.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon109.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon109.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon142.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon142.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon162.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon162.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon182.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon182.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon2.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon2.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://cf0y64q72i32l"
6 | path="res://.godot/imported/Icon2.png-b794b81c8fddde11b042ec147cf09a16.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://assets/sprites/items/icons/Icon2.png"
14 | dest_files=["res://.godot/imported/Icon2.png-b794b81c8fddde11b042ec147cf09a16.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon202.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon202.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon222.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon222.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon271.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon271.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon274.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon274.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon301.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon301.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon302.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon302.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon303.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon303.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon304.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon304.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon305.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon305.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon306.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon306.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon307.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon307.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon308.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon308.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon309.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon309.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon310.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon310.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon321.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon321.png
--------------------------------------------------------------------------------
/assets/sprites/items/icons/Icon325.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/icons/Icon325.png
--------------------------------------------------------------------------------
/assets/sprites/items/weapons/bone/bone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/weapons/bone/bone.png
--------------------------------------------------------------------------------
/assets/sprites/items/weapons/hands/brown_leather_gloves.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/weapons/hands/brown_leather_gloves.png
--------------------------------------------------------------------------------
/assets/sprites/items/weapons/hands/goblin_hands.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/weapons/hands/goblin_hands.png
--------------------------------------------------------------------------------
/assets/sprites/items/weapons/hands/human_hands.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/weapons/hands/human_hands.png
--------------------------------------------------------------------------------
/assets/sprites/items/weapons/hands/orc_hands.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/weapons/hands/orc_hands.png
--------------------------------------------------------------------------------
/assets/sprites/items/weapons/wood/wood.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/items/weapons/wood/wood.png
--------------------------------------------------------------------------------
/assets/sprites/particles/gold_coin_pick_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/particles/gold_coin_pick_up.png
--------------------------------------------------------------------------------
/assets/sprites/particles/white_circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SlayHorizon/godot-tiny-mmo/515c5e63254cd55ffd1b8f7094271191cb65dc1f/assets/sprites/particles/white_circle.png
--------------------------------------------------------------------------------
/data/config/client_config.cfg:
--------------------------------------------------------------------------------
1 | [gateway-client]
2 | address="127.0.0.1"
3 | port=8088
4 | certificate_path="res://data/config/tls/certificate.crt"
5 |
--------------------------------------------------------------------------------
/data/config/ekonia/README.md:
--------------------------------------------------------------------------------
1 | Configuration files for Ekonia Online.
2 |
--------------------------------------------------------------------------------
/data/config/ekonia/client.cfg:
--------------------------------------------------------------------------------
1 | [gateway-client]
2 | address="127.0.0.1"
3 | port=8088
4 | certificate_path="res://data/config/tls/certificate.crt"
5 |
--------------------------------------------------------------------------------
/data/config/gateway_config.cfg:
--------------------------------------------------------------------------------
1 | [gateway-server]
2 | port=8088
3 | bind_address="127.0.0.1"
4 | certificate_path="res://data/config/tls/certificate.crt"
5 | key_path="res://data/config/tls/key.key"
6 |
7 | [gateway-manager-client]
8 | port=8064
9 | address="127.0.0.1"
10 | certificate_path="res://data/config/tls/certificate.crt"
11 |
--------------------------------------------------------------------------------
/data/config/master_config.cfg:
--------------------------------------------------------------------------------
1 | [gateway-manager-server]
2 | port=8064
3 | bind_address="127.0.0.1"
4 | certificate_path="res://data/config/tls/certificate.crt"
5 | key_path="res://data/config/tls/key.key"
6 |
7 | [world-manager-server]
8 | port=8062
9 | bind_address="127.0.0.1"
10 | certificate_path="res://data/config/tls/certificate.crt"
11 | key_path="res://data/config/tls/key.key"
12 |
--------------------------------------------------------------------------------
/data/config/world_config.cfg:
--------------------------------------------------------------------------------
1 | [world-server]
2 | port=8087
3 | bind_address="127.0.0.1"
4 | certificate_path="res://data/config/tls/certificate.crt"
5 | key_path="res://data/config/tls/key.key"
6 | database_path="."
7 | motd="Welcome to Tiny MMO!"
8 | name="Classic"
9 | max_players=200
10 | hardcore=false
11 | bonus_xp=0.0
12 | max_character=5
13 | pvp=true
14 |
15 | [world-manager-client]
16 | address="127.0.0.1"
17 | port=8062
18 | certificate_path="res://data/config/tls/certificate.crt"
19 |
--------------------------------------------------------------------------------
/data/config/world_config_hardcore.cfg:
--------------------------------------------------------------------------------
1 | [world-server]
2 | bind_address="127.0.0.1"
3 | port=8099
4 | certificate_path="res://data/config/tls/certificate.crt"
5 | key_path="res://data/config/tls/key.key"
6 | database_path="."
7 | name="HARDCORE"
8 | max_players=200
9 | hardcore=true
10 | bonus_xp=1.2
11 | max_character=1
12 | pvp=true
13 |
14 | [world-manager-client]
15 | address="127.0.0.1"
16 | port=8062
17 | certificate_path="res://data/config/tls/certificate.crt"
18 |
--------------------------------------------------------------------------------
/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/source/client/autoload/client_state.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dhykbo25unems
2 |
--------------------------------------------------------------------------------
/source/client/client_main.gd:
--------------------------------------------------------------------------------
1 | extends Node
2 |
3 |
4 | func _ready() -> void:
5 | pass
6 |
--------------------------------------------------------------------------------
/source/client/client_main.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bfybdk1kgy125
2 |
--------------------------------------------------------------------------------
/source/client/gateway/gateway.gd.uid:
--------------------------------------------------------------------------------
1 | uid://ch86ljq7iwgv8
2 |
--------------------------------------------------------------------------------
/source/client/gateway/popup_panel.gd:
--------------------------------------------------------------------------------
1 | extends PanelContainer
2 |
3 |
4 | @onready var title_label: Label = $VBoxContainer/TitleLabel
5 | @onready var rich_text_label: RichTextLabel = $VBoxContainer/VBoxContainer/RichTextLabel
6 | @onready var confirm_button: Button = $VBoxContainer/VBoxContainer/ConfirmButton
7 |
8 |
9 | func display_waiting_popup(text: String = "Waiting ...") -> void:
10 | title_label.text = "Waiting"
11 | confirm_button.hide()
12 | rich_text_label.text = text
13 | show()
14 |
15 |
16 | func confirm_message(message: String) -> void:
17 | title_label.text = "Please Confirm"
18 | rich_text_label.text = message
19 | confirm_button.show()
20 | show()
21 | await confirm_button.pressed
22 | hide()
23 |
--------------------------------------------------------------------------------
/source/client/gateway/popup_panel.gd.uid:
--------------------------------------------------------------------------------
1 | uid://q5rsjtg6nsto
2 |
--------------------------------------------------------------------------------
/source/client/local_player/local_player.gd.uid:
--------------------------------------------------------------------------------
1 | uid://biqs370wdwi6m
2 |
--------------------------------------------------------------------------------
/source/client/local_player/local_player.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=4 format=3 uid="uid://bcojrmcocbq2k"]
2 |
3 | [ext_resource type="PackedScene" uid="uid://b3wa3c527k5lx" path="res://source/common/gameplay/characters/player/player.tscn" id="1_5bye1"]
4 | [ext_resource type="Script" uid="uid://biqs370wdwi6m" path="res://source/client/local_player/local_player.gd" id="2_qfdgo"]
5 | [ext_resource type="Script" uid="uid://bt74wxkb47dp0" path="res://source/client/local_player/mouse_component.gd" id="3_7fqr5"]
6 |
7 | [node name="LocalPlayer" instance=ExtResource("1_5bye1")]
8 | script = ExtResource("2_qfdgo")
9 |
10 | [node name="Camera2D" type="Camera2D" parent="." index="3"]
11 | zoom = Vector2(3, 3)
12 |
13 | [node name="MouseComponent" type="Node2D" parent="." index="4"]
14 | top_level = true
15 | script = ExtResource("3_7fqr5")
16 |
17 | [node name="AnimatedSprite2D" parent="." index="5"]
18 | frame_progress = 0.0
19 |
--------------------------------------------------------------------------------
/source/client/local_player/mouse_component.gd:
--------------------------------------------------------------------------------
1 | class_name MouseComponent
2 | extends Node2D
3 |
4 |
5 | var mouse_ingame: bool = true
6 | var window_focus: bool = true
7 |
8 |
9 | func _notification(what: int) -> void:
10 | if what == NOTIFICATION_WM_MOUSE_ENTER:
11 | mouse_ingame = true
12 | elif what == NOTIFICATION_WM_MOUSE_EXIT:
13 | mouse_ingame = false
14 | if what == NOTIFICATION_WM_WINDOW_FOCUS_IN:
15 | window_focus = true
16 | elif what == NOTIFICATION_WM_WINDOW_FOCUS_OUT:
17 | window_focus = false
18 |
19 |
20 | func _process(_delta: float) -> void:
21 | if mouse_ingame and window_focus:
22 | position = get_global_mouse_position()
23 |
--------------------------------------------------------------------------------
/source/client/local_player/mouse_component.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bt74wxkb47dp0
2 |
--------------------------------------------------------------------------------
/source/client/network/instance_client.gd.uid:
--------------------------------------------------------------------------------
1 | uid://ce400ua741out
2 |
--------------------------------------------------------------------------------
/source/client/network/instance_manager.gd.uid:
--------------------------------------------------------------------------------
1 | uid://df8q30x0onbwg
2 |
--------------------------------------------------------------------------------
/source/client/network/world_client.gd.uid:
--------------------------------------------------------------------------------
1 | uid://siq7b6qqrjyq
2 |
--------------------------------------------------------------------------------
/source/client/ui/hud/health_bar/health_bar.gd.uid:
--------------------------------------------------------------------------------
1 | uid://nls33odkod4v
2 |
--------------------------------------------------------------------------------
/source/client/ui/hud/hud.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dshitaaapbs6x
2 |
--------------------------------------------------------------------------------
/source/client/ui/hud/item_slots.gd.uid:
--------------------------------------------------------------------------------
1 | uid://pkprr0ll1y44
2 |
--------------------------------------------------------------------------------
/source/client/ui/hud/menu_overlay.gd:
--------------------------------------------------------------------------------
1 | extends Control
2 |
--------------------------------------------------------------------------------
/source/client/ui/hud/menu_overlay.gd.uid:
--------------------------------------------------------------------------------
1 | uid://brq8mxox5bclj
2 |
--------------------------------------------------------------------------------
/source/client/ui/menus/chat/chat_menu.gd.uid:
--------------------------------------------------------------------------------
1 | uid://678x32kmrkb5
2 |
--------------------------------------------------------------------------------
/source/client/ui/menus/guild/create_guild_menu.gd.uid:
--------------------------------------------------------------------------------
1 | uid://b6ywedmocoh7m
2 |
--------------------------------------------------------------------------------
/source/client/ui/menus/guild/guild_display.gd:
--------------------------------------------------------------------------------
1 | extends GuildPanel
2 |
3 |
4 | @export var no_guild_panel: GuildPanel
5 |
6 | @onready var button: Button = $MarginContainer/VBoxContainer/Button
7 | @onready var guild_name_label: Label = $MarginContainer/VBoxContainer/Label
8 |
9 |
10 | func open(data: Dictionary) -> void:
11 | guild_name_label.text = data.get("name", "No Guild Name")
12 | var is_in_guild: bool = data.get("is_in_guild", false)
13 | if is_in_guild:
14 | button.text = "Leave"
15 | else:
16 | button.text = "Request Join"
17 |
18 |
19 | func _on_button_pressed() -> void:
20 | # Quick n Dirty
21 | if button.text.begins_with("Leave"):
22 | InstanceClient.current.request_data(
23 | &"guild.quit",
24 | func(d): swap_requested.emit(no_guild_panel, {})
25 | )
26 | #else:
27 | #InstanceClient.current.request_data(
28 | #&"guild.apply",
29 | #Callable()
30 | #)
31 |
--------------------------------------------------------------------------------
/source/client/ui/menus/guild/guild_display.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dlo5k2qp1v3dm
2 |
--------------------------------------------------------------------------------
/source/client/ui/menus/guild/guild_menu.gd.uid:
--------------------------------------------------------------------------------
1 | uid://d1cseo7blcif2
2 |
--------------------------------------------------------------------------------
/source/client/ui/menus/guild/guild_panel.gd:
--------------------------------------------------------------------------------
1 | class_name GuildPanel
2 | extends PanelContainer
3 |
4 |
5 | signal swap_requested(target: GuildPanel, data: Dictionary)
6 | signal back_requested
7 |
8 |
9 | func open(_data: Dictionary) -> void:
10 | pass
11 |
12 |
13 | func close() -> void:
14 | pass
15 |
--------------------------------------------------------------------------------
/source/client/ui/menus/guild/guild_panel.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dnd53fxkhfu66
2 |
--------------------------------------------------------------------------------
/source/client/ui/menus/guild/no_guild_menu.gd:
--------------------------------------------------------------------------------
1 | extends GuildPanel
2 |
3 |
4 | @export var search_panel: GuildPanel
5 | @export var create_panel: GuildPanel
6 |
7 |
8 | func _on_search_guild_button_pressed() -> void:
9 | swap_requested.emit(search_panel, {})
10 |
11 |
12 | func _on_create_guild_button_pressed() -> void:
13 | swap_requested.emit(create_panel, {})
14 |
--------------------------------------------------------------------------------
/source/client/ui/menus/guild/no_guild_menu.gd.uid:
--------------------------------------------------------------------------------
1 | uid://o3kj4urvrykf
2 |
--------------------------------------------------------------------------------
/source/client/ui/menus/guild/search_guild_menu.gd.uid:
--------------------------------------------------------------------------------
1 | uid://c0wbbw6du00cs
2 |
--------------------------------------------------------------------------------
/source/client/ui/menus/inventory/attributes_panel.gd.uid:
--------------------------------------------------------------------------------
1 | uid://blh63bbqvk7pv
2 |
--------------------------------------------------------------------------------
/source/client/ui/menus/inventory/gear_slot.gd:
--------------------------------------------------------------------------------
1 | extends Button
2 | class_name GearSlotButton
3 |
4 |
5 | @export var gear_slot: ItemSlot
6 |
7 |
8 | func _ready() -> void:
9 | if not gear_slot:
10 | disabled = true
11 | return
12 |
13 | tooltip_text = gear_slot.display_name
14 | icon = gear_slot.icon
15 | if gear_slot.unlock_rule.kind == SlotUnlockRule.Kind.PLAYER_LEVEL:
16 | text = str(gear_slot.unlock_rule.level)
17 |
--------------------------------------------------------------------------------
/source/client/ui/menus/inventory/gear_slot.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cx6ltmvpbwdng
2 |
--------------------------------------------------------------------------------
/source/client/ui/menus/inventory/inventory_menu.gd.uid:
--------------------------------------------------------------------------------
1 | uid://3kue0fgf78ik
2 |
--------------------------------------------------------------------------------
/source/client/ui/menus/inventory/item_slot_button.gd:
--------------------------------------------------------------------------------
1 | class_name ItemSlotButton
2 | extends Button
3 |
4 |
5 | var item: Item
6 |
7 |
8 | #func _init() -> void:
9 |
10 |
--------------------------------------------------------------------------------
/source/client/ui/menus/inventory/item_slot_button.gd.uid:
--------------------------------------------------------------------------------
1 | uid://x17ssxijuh1t
2 |
--------------------------------------------------------------------------------
/source/client/ui/menus/inventory/stats_panel.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dm4es1smo6nxw
2 |
--------------------------------------------------------------------------------
/source/client/ui/menus/player_profile/player_profile.gd.uid:
--------------------------------------------------------------------------------
1 | uid://2dnwg3gkbaeg
2 |
--------------------------------------------------------------------------------
/source/client/ui/menus/settings/settings.gd:
--------------------------------------------------------------------------------
1 | extends Control
2 |
3 |
4 | func _ready() -> void:
5 | $VBoxContainer/HBoxContainer/HSlider.value = ClientState.settings.get_key(&"camera_zoom", 2)
6 |
7 |
8 | func _on_h_slider_drag_ended(value_changed: bool) -> void:
9 | if not value_changed:
10 | return
11 | var h_slider: HSlider = $VBoxContainer/HBoxContainer/HSlider
12 | if ClientState.local_player:
13 | ClientState.local_player.set_camera_zoom(h_slider.value * Vector2.ONE)
14 |
15 | ClientState.settings[&"camera_zoom"] = h_slider.value
16 |
17 |
18 | func _on_button_pressed() -> void:
19 | hide()
20 |
--------------------------------------------------------------------------------
/source/client/ui/menus/settings/settings.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dtcbv7ryjqh86
2 |
--------------------------------------------------------------------------------
/source/client/ui/shared/sub_panel.gd:
--------------------------------------------------------------------------------
1 | class_name SubPanel
2 | extends PanelContainer
3 |
4 |
5 | signal swap_requested(target: SubPanel, data: Dictionary, can_back: bool)
6 | signal back_requested
7 |
8 |
9 | func open(data: Dictionary) -> void:
10 | pass
11 |
12 |
13 | func close() -> void:
14 | pass
15 |
--------------------------------------------------------------------------------
/source/client/ui/shared/sub_panel.gd.uid:
--------------------------------------------------------------------------------
1 | uid://c437u84bullo2
2 |
--------------------------------------------------------------------------------
/source/client/ui/themes/styles/stylebox_gradient.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dl1qb5l1yivlu
2 |
--------------------------------------------------------------------------------
/source/client/ui/ui.gd:
--------------------------------------------------------------------------------
1 | class_name UI
2 | extends CanvasLayer
3 |
4 |
5 | @onready var hud: Control = $HUD
6 |
7 |
8 | func _ready() -> void:
9 | for child: Node in get_children():
10 | if child is Control:
11 | child.theme = BetterThemeDB.theme
12 |
--------------------------------------------------------------------------------
/source/client/ui/ui.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bkb1spvl3spry
2 |
--------------------------------------------------------------------------------
/source/client/ui/ui.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=3 format=3 uid="uid://b20pv25ct6nmt"]
2 |
3 | [ext_resource type="Script" uid="uid://bkb1spvl3spry" path="res://source/client/ui/ui.gd" id="1_wpqoj"]
4 | [ext_resource type="PackedScene" uid="uid://dqt8fnt1l33eu" path="res://source/client/ui/hud/hud.tscn" id="2_equq2"]
5 |
6 | [node name="UI" type="CanvasLayer"]
7 | script = ExtResource("1_wpqoj")
8 |
9 | [node name="HUD" parent="." node_paths=PackedStringArray("sub_menu") instance=ExtResource("2_equq2")]
10 | sub_menu = NodePath("../Submenu")
11 |
12 | [node name="Submenu" type="Control" parent="."]
13 | layout_mode = 3
14 | anchors_preset = 15
15 | anchor_right = 1.0
16 | anchor_bottom = 1.0
17 | grow_horizontal = 2
18 | grow_vertical = 2
19 | mouse_filter = 2
20 |
--------------------------------------------------------------------------------
/source/client/utils/button_utils.gd.uid:
--------------------------------------------------------------------------------
1 | uid://b3rs2y00cieyw
2 |
--------------------------------------------------------------------------------
/source/client/utils/theme_changer.gd:
--------------------------------------------------------------------------------
1 | class_name BetterThemeDB
2 |
3 |
4 | static var theme: Theme:
5 | get = get_theme
6 |
7 |
8 | static func get_theme() -> Theme:
9 | if not theme:
10 | theme = load(
11 | ProjectSettings.get_setting("gui/theme/custom", "res://source/client/ui/themes/theme_navy.tres")
12 | )
13 | return theme
14 |
--------------------------------------------------------------------------------
/source/client/utils/theme_changer.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bssnfet8iyyv4
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/characters/character.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bu6yn6ww7d7c8
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/characters/classes/character_resource.gd.uid:
--------------------------------------------------------------------------------
1 | uid://b2tgdabbgoor
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/characters/components/hand/hand.gd.uid:
--------------------------------------------------------------------------------
1 | uid://kca0ew36ilei
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/characters/components/hand/hand.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=3 format=3 uid="uid://c4mlxpbwyc1tw"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://clc768ctxxvjg" path="res://assets/sprites/items/weapons/hands/human_hands.png" id="1_on2c6"]
4 | [ext_resource type="Script" uid="uid://kca0ew36ilei" path="res://source/common/gameplay/characters/components/hand/hand.gd" id="2_6u7qf"]
5 |
6 | [node name="Hand" type="Sprite2D"]
7 | texture = ExtResource("1_on2c6")
8 | region_enabled = true
9 | region_rect = Rect2(16, 16, 16, 16)
10 | script = ExtResource("2_6u7qf")
11 | side = 1
12 | status = 1
13 |
--------------------------------------------------------------------------------
/source/common/gameplay/characters/entity.gd.uid:
--------------------------------------------------------------------------------
1 | uid://qjaeni0dgiew
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/characters/npc/npc.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cqoy5bqvcyv5b
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/characters/npc/npc.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=4 format=3 uid="uid://v32667qwpj2l"]
2 |
3 | [ext_resource type="PackedScene" uid="uid://6bcg7fwcl6mi" path="res://source/common/gameplay/characters/character.tscn" id="1_w5sp3"]
4 | [ext_resource type="Script" uid="uid://cqoy5bqvcyv5b" path="res://source/common/gameplay/characters/npc/npc.gd" id="2_yivip"]
5 |
6 | [sub_resource type="CircleShape2D" id="CircleShape2D_e1g67"]
7 | radius = 230.0
8 |
9 | [node name="NPC" instance=ExtResource("1_w5sp3")]
10 | script = ExtResource("2_yivip")
11 |
12 | [node name="DetectionArea" type="Area2D" parent="." index="10"]
13 |
14 | [node name="CollisionShape2D" type="CollisionShape2D" parent="DetectionArea" index="0"]
15 | shape = SubResource("CircleShape2D_e1g67")
16 |
--------------------------------------------------------------------------------
/source/common/gameplay/characters/player/display_name_label.gd:
--------------------------------------------------------------------------------
1 | extends Label
2 |
3 |
4 | func _ready() -> void:
5 | if multiplayer.is_server():
6 | return
7 | get_parent().display_name_changed.connect(_on_display_name_changed)
8 |
9 |
10 | func _on_display_name_changed(new_name: String) -> void:
11 | text = new_name
12 |
--------------------------------------------------------------------------------
/source/common/gameplay/characters/player/display_name_label.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cibbkjmyj3j2x
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/characters/player/player.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bexas1o2f74ve
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/characters/player/player_resource.gd.uid:
--------------------------------------------------------------------------------
1 | uid://ch4h6y276l4i5
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/ability/ability.gd:
--------------------------------------------------------------------------------
1 | class_name AbilityResource
2 | extends Resource
3 |
4 |
5 | @export var name: String
6 | @export var cooldown: float = 1.0
7 |
8 |
9 | var last_action_time: float = -INF
10 |
11 |
12 | func use_ability(_entity: Entity, _direction: Vector2) -> void:
13 | pass
14 | #func use_ability(_entity: Entity, _payload: Dictionary) -> void:
15 |
16 | func can_use() -> bool:
17 | return (Time.get_ticks_msec() / 1000.0) - last_action_time >= cooldown
18 |
19 |
20 | func mark_used():
21 | last_action_time = Time.get_ticks_msec() / 1000.0
22 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/ability/ability.gd.uid:
--------------------------------------------------------------------------------
1 | uid://b41gujk35w421
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/ability/ability_collection/swing/swing.gd:
--------------------------------------------------------------------------------
1 | extends AbilityResource
2 |
3 |
4 | var damage: float = 10.0
5 |
6 |
7 | func _init() -> void:
8 | cooldown = 1.5
9 |
10 |
11 | func use_ability(entity: Entity, direction: Vector2) -> void:
12 | entity
13 | mark_used()
14 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/ability/ability_collection/swing/swing.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cv7gd6obpo815
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/ability/arrow_shoot/arrow_shoot.gd:
--------------------------------------------------------------------------------
1 | extends AbilityResource
2 |
3 |
4 | var damage: float = 10.0
5 |
6 |
7 | func _init() -> void:
8 | cooldown = 1.5
9 |
10 |
11 | func use_ability(entity: Entity, direction: Vector2) -> void:
12 | mark_used()
13 |
14 | var arrow: Projectile = preload("res://source/common/gameplay/items/weapons/bow/arrow.tscn").instantiate()
15 | arrow.top_level = true
16 | arrow.direction = direction
17 | arrow.global_position = entity.global_position
18 |
19 | arrow.source = entity
20 | arrow.effect = EffectSpec.damage(
21 | damage, ["Damage.Physical", "Projectile", "BasicAttack"], {"pen_tier":1}
22 | )
23 |
24 | entity.add_child(arrow)
25 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/ability/arrow_shoot/arrow_shoot.gd.uid:
--------------------------------------------------------------------------------
1 | uid://b4jrcnupjg8gh
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/ability/arrow_shoot/arrow_shoot.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" load_steps=2 format=3 uid="uid://e5j5kve7ed7f"]
2 |
3 | [ext_resource type="Script" uid="uid://b4jrcnupjg8gh" path="res://source/common/gameplay/combat/ability/arrow_shoot/arrow_shoot.gd" id="1_i3fqa"]
4 |
5 | [resource]
6 | script = ExtResource("1_i3fqa")
7 | name = "arrow_shoot"
8 | cooldown = 1.0
9 | metadata/_custom_type_script = "uid://b41gujk35w421"
10 | metadata/slug = &"arrow_shoot"
11 | metadata/id = 1
12 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/attack/attack.gd:
--------------------------------------------------------------------------------
1 | class_name Attack
2 |
3 |
4 | var source: Entity
5 | var damage: float
6 |
7 |
8 | func _init(_source: Entity, _damage: float) -> void:
9 | source = _source
10 | damage = _damage
11 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/attack/attack.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bxibfnrmkp3et
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/attributes/attributes_map.gd.uid:
--------------------------------------------------------------------------------
1 | uid://byrtq2fe5vp5v
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/attributes/stat_growth/stat_growth.gd.uid:
--------------------------------------------------------------------------------
1 | uid://b61c4gs0ie8a6
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/attributes/stat_modifier/stat_modifier.gd:
--------------------------------------------------------------------------------
1 | class_name StatModifier
2 | extends Resource
3 |
4 |
5 | enum Op {ADD,MUL}
6 | enum Channel {VALUE, MAX}
7 |
8 | @export var attr: StringName
9 | @export var channel: Channel = Channel.MAX
10 | @export var op: Op = Op.ADD
11 | @export var magnitude: float = 0.0
12 | @export var source_tags: PackedStringArray = []
13 | @export var runtime_id: int = randi()
14 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/attributes/stat_modifier/stat_modifier.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cvggwjkht4km4
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/attributes/stats_catalog.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dffnbfhrkdebh
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/components/ability_system_component.gd.uid:
--------------------------------------------------------------------------------
1 | uid://gl2cwrrfvlkh
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/components/attributes_mirror.gd.uid:
--------------------------------------------------------------------------------
1 | uid://natfmyvgikpe
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/components/equipment_component.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bu62r4mj8ohfc
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/damage_model/DamageModelResource.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="DamageModelResource" load_steps=2 format=3 uid="uid://djprqmldadljv"]
2 |
3 | [ext_resource type="Script" uid="uid://cecio1i3cyhkw" path="res://source/common/gameplay/combat/damage_model/damage_model_resource.gd" id="1_i54cy"]
4 |
5 | [resource]
6 | script = ExtResource("1_i54cy")
7 | layers_order = ["Armor", "Shield", "Health"]
8 | armor_k = 100.0
9 | overheal_to_shield = true
10 | metadata/_custom_type_script = "uid://cecio1i3cyhkw"
11 | metadata/slug = &"DamageModelResource"
12 | metadata/id = 2
13 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/damage_model/damage_model_resource.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cecio1i3cyhkw
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/effect_spec.gd:
--------------------------------------------------------------------------------
1 | class_name EffectSpec
2 | extends Resource
3 |
4 |
5 | @export var tags: PackedStringArray = []
6 |
7 | var magnitudes: Dictionary[StringName, float] = {}
8 | var ignore_layers: PackedStringArray = []
9 | var meta: Dictionary = {}
10 |
11 |
12 | static func damage(amount: float, _tags: PackedStringArray = [], _meta: Dictionary = {}) -> EffectSpec:
13 | var s: EffectSpec = EffectSpec.new()
14 | s.tags = _tags
15 | s.magnitudes[StringName("damage")] = amount
16 | s.meta = _meta
17 | return s
18 |
19 |
20 | static func heal(amount: float, _tags: PackedStringArray = [], _meta: Dictionary = {}) -> EffectSpec:
21 | var s: EffectSpec = EffectSpec.new()
22 | s.tags = _tags
23 | s.magnitudes[StringName("heal")] = amount
24 | s.meta = _meta
25 | return s
26 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/effect_spec.gd.uid:
--------------------------------------------------------------------------------
1 | uid://b7vlsixlfp336
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/gameplay_effect/gameplay_effect.gd.uid:
--------------------------------------------------------------------------------
1 | uid://chp0417yx5dgc
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/gameplay_effect/resources/burn_effect.gd:
--------------------------------------------------------------------------------
1 | class_name BurnDotEffect
2 | extends GameplayEffect
3 |
4 | @export var dps: float = 10.0
5 |
6 |
7 | func on_tick(asc: AbilitySystemComponent) -> void:
8 | var amt: float = dps * max(0.0, period)
9 | var spec: EffectSpec = EffectSpec.damage(amt, ["Damage.True", "Periodic", "Burn"])
10 | asc.apply_spec_server(spec, _source)
11 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/gameplay_effect/resources/burn_effect.gd.uid:
--------------------------------------------------------------------------------
1 | uid://qh30x7gkkbr
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/gameplay_effect/resources/potion_heal.gd:
--------------------------------------------------------------------------------
1 | class_name PotionHealEffect
2 | extends GameplayEffect
3 |
4 |
5 | var percent_of_max: float = 0.10
6 | var flat_heal: float = 5.0
7 |
8 |
9 | func on_added(asc: AbilitySystemComponent) -> void:
10 | var max_hp: float = asc.get_max(&"health")
11 | var to_heal: float = flat_heal + percent_of_max * max(0.0, max_hp)
12 |
13 | asc.apply_spec_server(EffectSpec.heal(to_heal))
14 |
15 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/gameplay_effect/resources/potion_heal.gd.uid:
--------------------------------------------------------------------------------
1 | uid://4v8isgqu1aho
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/gameplay_effect/resources/thormail.gd:
--------------------------------------------------------------------------------
1 | class_name ThornmailEffect
2 | extends GameplayEffect
3 |
4 | @export var reflect_ratio: float = 0.25
5 |
6 | func on_added(asc: AbilitySystemComponent) -> void:
7 | _sub(asc, &"OnSpecPostApply", &"Damage", 50, &"_on_post")
8 |
9 | func _on_post(ev: GameplayEvent, self_asc: AbilitySystemComponent) -> void:
10 | #print_debug(ev, self_asc)
11 | if ev.canceled or ev.amount <= 0.0:
12 | return
13 | if ev.spec.tags.has("Reflect"):
14 | return
15 | if ev.source == null:
16 | return
17 |
18 | var back: EffectSpec = EffectSpec.damage(ev.amount * reflect_ratio, ["Damage.Magic", "Reflect"])
19 | ev.source.apply_spec_server(back, self_asc)
20 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/gameplay_effect/resources/thormail.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dh0cgupjccloe
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/gameplay_event.gd:
--------------------------------------------------------------------------------
1 | class_name GameplayEvent
2 | extends RefCounted
3 |
4 |
5 | var spec: EffectSpec
6 | var source: AbilitySystemComponent = null
7 | var target: AbilitySystemComponent = null
8 | var amount: float = 0.0
9 | var canceled: bool = false
10 |
11 |
12 | func mod_mul(f: float) -> void: amount *= f
13 | func mod_add(x: float) -> void: amount += x
14 | func cancel() -> void: canceled = true
15 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/gameplay_event.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cp23kixn1btxi
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/gameplay_resource/fury_resource.gd.uid:
--------------------------------------------------------------------------------
1 | uid://b250jcjfkgxxo
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/gameplay_resource/gameplay_resource.gd.uid:
--------------------------------------------------------------------------------
1 | uid://c2t24masktugg
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/gameplay_resource/health_cost_resource.gd.uid:
--------------------------------------------------------------------------------
1 | uid://khvtrc5k3kkf
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/gameplay_resource/mana_resource.gd.uid:
--------------------------------------------------------------------------------
1 | uid://blno18cqfqahh
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/team/team_component.gd:
--------------------------------------------------------------------------------
1 | class_name Team
2 |
3 |
4 | var team_id: int
5 | var team_name: String
6 | var team_color: Color
7 |
8 |
9 | func _init(_team_id: int, _team_name: String, _team_color: Color) -> void:
10 | team_id = _team_id
11 | team_name = _team_name
12 | team_color = _team_color
13 |
--------------------------------------------------------------------------------
/source/common/gameplay/combat/team/team_component.gd.uid:
--------------------------------------------------------------------------------
1 | uid://brcoya3qgadjt
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/consumable_item.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bprsise4rcsak
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/gear_item.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dnmtdktay2df6
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/item.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bkat7yo0vssli
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/item_slot/item_slot.gd:
--------------------------------------------------------------------------------
1 | class_name ItemSlot
2 | extends Resource
3 |
4 |
5 | # &"Weapon", &"Helmet", ...
6 | ## Should be constant, never changed like an unique identifier.
7 | @export var key: StringName
8 |
9 | ## Can be translated, means to be used in UI.
10 | @export var display_name: String
11 |
12 | @export var unlock_rule: SlotUnlockRule
13 |
14 | ## Option icon for UI
15 | @export var icon: Texture2D
16 |
17 | ## Avoid keeping runtime flag on a resource, may move it later.
18 | var unlocked: bool = false
19 |
20 |
21 | func is_unlocked_for(player: PlayerResource) -> bool:
22 | return unlock_rule and unlock_rule.is_unlocked(player)
23 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/item_slot/item_slot.gd.uid:
--------------------------------------------------------------------------------
1 | uid://e40odrowquc8
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/item_slot/item_slot_unlock_rule.gd:
--------------------------------------------------------------------------------
1 | class_name SlotUnlockRule
2 | extends Resource
3 |
4 |
5 | enum Kind {
6 | ALWAYS,
7 | PLAYER_LEVEL,
8 | QUEST_COMPLETED,
9 | MANUAL_FLAG
10 | }
11 |
12 | @export var kind: Kind = Kind.ALWAYS
13 | @export var level: int = 0
14 | @export var quest_id: int = 0
15 | @export var flag_key: StringName = &""
16 |
17 |
18 | func is_unlocked(player: PlayerResource) -> bool:
19 | match kind:
20 | Kind.ALWAYS: return true
21 | Kind.PLAYER_LEVEL: return player.level >= level
22 | # Later ?
23 | #Kind.QUEST_COMPLETED: return player.has_completed_quest(quest_id)
24 | # Later ?
25 | #Kind.MANUAL_FLAG: return player.progress_flags.has(flag_key)
26 | _: return false
27 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/item_slot/item_slot_unlock_rule.gd.uid:
--------------------------------------------------------------------------------
1 | uid://b31ll8nrh57dx
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/item_slot/slots/helmet.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="ItemSlot" load_steps=4 format=3 uid="uid://dnbj6tmyghec4"]
2 |
3 | [ext_resource type="Script" uid="uid://e40odrowquc8" path="res://source/common/gameplay/items/item_slot/item_slot.gd" id="1_xg0yy"]
4 | [ext_resource type="Script" uid="uid://b31ll8nrh57dx" path="res://source/common/gameplay/items/item_slot/item_slot_unlock_rule.gd" id="2_itos6"]
5 |
6 | [sub_resource type="Resource" id="Resource_0hho8"]
7 | script = ExtResource("2_itos6")
8 | kind = 0
9 | level = 0
10 | quest_id = 0
11 | flag_key = &""
12 | metadata/_custom_type_script = "uid://b31ll8nrh57dx"
13 |
14 | [resource]
15 | script = ExtResource("1_xg0yy")
16 | key = &"relic"
17 | display_name = "Relic"
18 | unlock_rule = SubResource("Resource_0hho8")
19 | metadata/_custom_type_script = "uid://e40odrowquc8"
20 | metadata/slug = &"helmet"
21 | metadata/id = 4
22 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/item_slot/slots/relic.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="ItemSlot" load_steps=4 format=3 uid="uid://dp67jicqi8ovy"]
2 |
3 | [ext_resource type="Script" uid="uid://e40odrowquc8" path="res://source/common/gameplay/items/item_slot/item_slot.gd" id="1_dhxlw"]
4 | [ext_resource type="Script" uid="uid://b31ll8nrh57dx" path="res://source/common/gameplay/items/item_slot/item_slot_unlock_rule.gd" id="2_v4jea"]
5 |
6 | [sub_resource type="Resource" id="Resource_u8pqf"]
7 | script = ExtResource("2_v4jea")
8 | kind = 1
9 | level = 10
10 | quest_id = 0
11 | flag_key = &""
12 | metadata/_custom_type_script = "uid://b31ll8nrh57dx"
13 |
14 | [resource]
15 | script = ExtResource("1_dhxlw")
16 | key = &"relic"
17 | display_name = "Relic"
18 | unlock_rule = SubResource("Resource_u8pqf")
19 | metadata/_custom_type_script = "uid://e40odrowquc8"
20 | metadata/slug = &"relic"
21 | metadata/id = 5
22 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/item_slot/slots/ring.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="ItemSlot" load_steps=4 format=3 uid="uid://cdrd3x2ugfrev"]
2 |
3 | [ext_resource type="Script" uid="uid://e40odrowquc8" path="res://source/common/gameplay/items/item_slot/item_slot.gd" id="1_8gb5j"]
4 | [ext_resource type="Script" uid="uid://b31ll8nrh57dx" path="res://source/common/gameplay/items/item_slot/item_slot_unlock_rule.gd" id="2_3qvo8"]
5 |
6 | [sub_resource type="Resource" id="Resource_kheba"]
7 | script = ExtResource("2_3qvo8")
8 | kind = 1
9 | level = 5
10 | quest_id = 0
11 | flag_key = &""
12 | metadata/_custom_type_script = "uid://b31ll8nrh57dx"
13 |
14 | [resource]
15 | script = ExtResource("1_8gb5j")
16 | key = &"ring"
17 | display_name = "Ring"
18 | unlock_rule = SubResource("Resource_kheba")
19 | metadata/_custom_type_script = "uid://e40odrowquc8"
20 | metadata/slug = &"ring"
21 | metadata/id = 6
22 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/item_slot/slots/torso.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="ItemSlot" load_steps=4 format=3 uid="uid://wi13k03tseev"]
2 |
3 | [ext_resource type="Script" uid="uid://e40odrowquc8" path="res://source/common/gameplay/items/item_slot/item_slot.gd" id="1_d5xem"]
4 | [ext_resource type="Script" uid="uid://b31ll8nrh57dx" path="res://source/common/gameplay/items/item_slot/item_slot_unlock_rule.gd" id="2_bbfj2"]
5 |
6 | [sub_resource type="Resource" id="Resource_jrgqs"]
7 | script = ExtResource("2_bbfj2")
8 | kind = 0
9 | level = 0
10 | quest_id = 0
11 | flag_key = &""
12 | metadata/_custom_type_script = "uid://b31ll8nrh57dx"
13 |
14 | [resource]
15 | script = ExtResource("1_d5xem")
16 | key = &"torso"
17 | display_name = "Torso"
18 | unlock_rule = SubResource("Resource_jrgqs")
19 | metadata/_custom_type_script = "uid://e40odrowquc8"
20 | metadata/slug = &"torso"
21 | metadata/id = 7
22 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/item_slot/slots/weapon.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="ItemSlot" load_steps=4 format=3 uid="uid://qav4p12rsbn3"]
2 |
3 | [ext_resource type="Script" uid="uid://e40odrowquc8" path="res://source/common/gameplay/items/item_slot/item_slot.gd" id="1_0mlcx"]
4 | [ext_resource type="Script" uid="uid://b31ll8nrh57dx" path="res://source/common/gameplay/items/item_slot/item_slot_unlock_rule.gd" id="2_42bjp"]
5 |
6 | [sub_resource type="Resource" id="Resource_r4nvk"]
7 | script = ExtResource("2_42bjp")
8 | kind = 0
9 | level = 0
10 | quest_id = 0
11 | flag_key = &""
12 | metadata/_custom_type_script = "uid://b31ll8nrh57dx"
13 |
14 | [resource]
15 | script = ExtResource("1_0mlcx")
16 | key = &"weapon"
17 | display_name = "Weapon"
18 | unlock_rule = SubResource("Resource_r4nvk")
19 | metadata/_custom_type_script = "uid://e40odrowquc8"
20 | metadata/slug = &"weapon"
21 | metadata/id = 8
22 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/material_item.gd:
--------------------------------------------------------------------------------
1 | class_name MaterialItem
2 | extends Item
3 | # Pure data item for crafting; no runtime hooks needed (not yet?).
4 | # Keep recipes & crafting logic elsewhere.
5 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/material_item.gd.uid:
--------------------------------------------------------------------------------
1 | uid://nsr1timk430j
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/materials/bone.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="MaterialItem" load_steps=3 format=3 uid="uid://bme5xgselkbng"]
2 |
3 | [ext_resource type="Script" uid="uid://nsr1timk430j" path="res://source/common/gameplay/items/material_item.gd" id="1_38lmc"]
4 | [ext_resource type="Texture2D" uid="uid://dtvatbrsvpnpe" path="res://assets/sprites/items/icons/Icon271.png" id="1_t2ilm"]
5 |
6 | [resource]
7 | script = ExtResource("1_38lmc")
8 | item_name = &"ItemDefault"
9 | item_icon = ExtResource("1_t2ilm")
10 | description = "A dark magical boned collected from evil skeletons."
11 | can_trade = false
12 | can_sell = false
13 | minimum_price = 0
14 | stack_limit = 0
15 | tags = []
16 | metadata/_custom_type_script = "uid://nsr1timk430j"
17 | metadata/slug = &"bone"
18 | metadata/id = 4
19 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/quest_item.gd:
--------------------------------------------------------------------------------
1 | class_name QuestItem
2 | extends Item
3 |
4 | @export var quest_id: int = 0
5 | @export var auto_bind: bool = true
6 |
7 |
8 | func _init() -> void:
9 | can_trade = false
10 | can_sell = false
11 | stack_limit = 1
12 | #inventory_tab = Item.InventoryTab.OTHER
13 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/quest_item.gd.uid:
--------------------------------------------------------------------------------
1 | uid://coakbfwkir3xb
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/weapon_item.gd:
--------------------------------------------------------------------------------
1 | class_name WeaponItem
2 | extends GearItem
3 |
4 |
5 | @export var scene: PackedScene
6 | @export var second_hand: PackedScene
7 |
8 |
9 | func on_equip(character: Character) -> void:
10 | super.on_equip(character)
11 | var weapon: Weapon = scene.instantiate()
12 | weapon.character = character
13 | character.equipment_component._mounted[slot.key] = weapon
14 | character.right_hand_spot.add_child(weapon)
15 | if second_hand:
16 | var seond_hand_weapon: Weapon = second_hand.instantiate()
17 | seond_hand_weapon.character = character
18 | character.left_hand_spot.add_child(seond_hand_weapon)
19 | else:
20 | if character.left_hand_spot.get_child_count():
21 | character.left_hand_spot.remove_child(character.left_hand_spot.get_child(0))
22 |
23 |
24 | func on_unequip(character: Character) -> void:
25 | super.on_unequip(character)
26 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/weapon_item.gd.uid:
--------------------------------------------------------------------------------
1 | uid://5hk0gl5ng64h
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/weapons/bow/arrow.gd.uid:
--------------------------------------------------------------------------------
1 | uid://c2f126nxuonb3
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/weapons/bow/arrow.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=4 format=3 uid="uid://cckkklpa17vo"]
2 |
3 | [ext_resource type="Script" uid="uid://c2f126nxuonb3" path="res://source/common/gameplay/items/weapons/bow/arrow.gd" id="1_ko7y3"]
4 | [ext_resource type="Texture2D" uid="uid://bogvbnwhxp5ej" path="res://assets/sprites/items/weapons/wood/wood.png" id="2_v0cpe"]
5 |
6 | [sub_resource type="RectangleShape2D" id="RectangleShape2D_ko7y3"]
7 | size = Vector2(16, 6)
8 |
9 | [node name="Arrow" type="Area2D"]
10 | script = ExtResource("1_ko7y3")
11 |
12 | [node name="WeaponSprite" type="Sprite2D" parent="."]
13 | texture = ExtResource("2_v0cpe")
14 | region_enabled = true
15 | region_rect = Rect2(32, 0, 16, 16)
16 |
17 | [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
18 | position = Vector2(0, -1)
19 | shape = SubResource("RectangleShape2D_ko7y3")
20 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/weapons/bow/wooden_bow.gd.uid:
--------------------------------------------------------------------------------
1 | uid://c7ykw8u3nncil
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/weapons/bow/woooden_arrow.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=3 format=3 uid="uid://c8ips7xp2ycic"]
2 |
3 | [ext_resource type="PackedScene" uid="uid://64u3mmswdrma" path="res://source/common/gameplay/items/weapons/weapon.tscn" id="1_4mr15"]
4 | [ext_resource type="Texture2D" uid="uid://bogvbnwhxp5ej" path="res://assets/sprites/items/weapons/wood/wood.png" id="2_x105q"]
5 |
6 | [node name="WoodenArrow" instance=ExtResource("1_4mr15")]
7 |
8 | [node name="WeaponSprite" parent="." index="0"]
9 | rotation = -1.5708
10 | texture = ExtResource("2_x105q")
11 | offset = Vector2(1, 1)
12 | flip_h = false
13 | region_rect = Rect2(32, 0, 16, 16)
14 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/weapons/dcadrius/test_bow.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="WeaponData" load_steps=4 format=3 uid="uid://bmxx08wmoehxn"]
2 |
3 | [ext_resource type="Script" uid="uid://bnq3ka3xd6gme" path="res://source/common/gameplay/items/weapons/dcadrius/weapon_data.gd" id="1_fpt0w"]
4 | [ext_resource type="Texture2D" uid="uid://bogvbnwhxp5ej" path="res://assets/sprites/items/weapons/wood/wood.png" id="2_bp8d6"]
5 |
6 | [sub_resource type="AtlasTexture" id="AtlasTexture_k2b6y"]
7 | atlas = ExtResource("2_bp8d6")
8 | region = Rect2(48, 48, 16, 32)
9 |
10 | [resource]
11 | script = ExtResource("1_fpt0w")
12 | weapon_sprite = SubResource("AtlasTexture_k2b6y")
13 | flip_sprite = false
14 | origin_point = Vector2(-4, 0)
15 | class_type = 0
16 | metadata/slug = &"test_bow"
17 | metadata/id = 10
18 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/weapons/dcadrius/test_sword.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="WeaponData" load_steps=4 format=3 uid="uid://b8lxlav7qtxj7"]
2 |
3 | [ext_resource type="Script" uid="uid://bnq3ka3xd6gme" path="res://source/common/gameplay/items/weapons/dcadrius/weapon_data.gd" id="1_scht1"]
4 | [ext_resource type="Texture2D" uid="uid://bl4x3jlsvt3jq" path="res://assets/sprites/items/weapons/bone/bone.png" id="2_7wi12"]
5 |
6 | [sub_resource type="AtlasTexture" id="AtlasTexture_aqxmx"]
7 | atlas = ExtResource("2_7wi12")
8 | region = Rect2(0, 0, 16, 48)
9 |
10 | [resource]
11 | script = ExtResource("1_scht1")
12 | weapon_sprite = SubResource("AtlasTexture_aqxmx")
13 | flip_sprite = true
14 | origin_point = Vector2(0, -15)
15 | class_type = 0
16 | metadata/slug = &"test_sword"
17 | metadata/id = 11
18 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/weapons/dcadrius/test_sword2.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="WeaponData" load_steps=4 format=3 uid="uid://hq6wrkb1cgla"]
2 |
3 | [ext_resource type="Script" uid="uid://bnq3ka3xd6gme" path="res://source/common/gameplay/items/weapons/dcadrius/weapon_data.gd" id="1_3s1wa"]
4 | [ext_resource type="Texture2D" uid="uid://bogvbnwhxp5ej" path="res://assets/sprites/items/weapons/wood/wood.png" id="2_euaqe"]
5 |
6 | [sub_resource type="AtlasTexture" id="AtlasTexture_aqxmx"]
7 | atlas = ExtResource("2_euaqe")
8 | region = Rect2(0, 0, 16, 48)
9 |
10 | [resource]
11 | script = ExtResource("1_3s1wa")
12 | weapon_sprite = SubResource("AtlasTexture_aqxmx")
13 | flip_sprite = true
14 | origin_point = Vector2(0, -15)
15 | class_type = 0
16 | metadata/slug = &"test_sword2"
17 | metadata/id = 12
18 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/weapons/dcadrius/weapon_data.gd:
--------------------------------------------------------------------------------
1 | @icon("res://assets/node_icons/color/icon_weapon.png")
2 | class_name WeaponData
3 | extends Resource
4 |
5 | enum weapon_class {
6 | Sword,
7 | Dagger,
8 | Staff,
9 | Bow
10 | }
11 | @export_group("Visuals")
12 | @export var weapon_sprite: Texture
13 | @export var flip_sprite: bool = false
14 | @export var origin_point: Vector2 = Vector2.ZERO
15 | @export_group("Data")
16 | @export var class_type: weapon_class = weapon_class.Sword
17 | @export var animation_library: AnimationLibrary
18 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/weapons/dcadrius/weapon_data.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bnq3ka3xd6gme
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/weapons/empty_hand/empty_hand.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=2 format=3 uid="uid://dslec2qgwwig2"]
2 |
3 | [ext_resource type="PackedScene" uid="uid://64u3mmswdrma" path="res://source/common/gameplay/items/weapons/weapon.tscn" id="1_2tdu7"]
4 |
5 | [node name="EmptyHand" instance=ExtResource("1_2tdu7")]
6 | position = Vector2(0, 0)
7 |
8 | [node name="WeaponSprite" parent="." index="0"]
9 | visible = false
10 |
11 | [node name="Hand" parent="." index="1"]
12 | region_rect = Rect2(16, 0, 16, 16)
13 | status = 0
14 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/weapons/sword/sword.gd.uid:
--------------------------------------------------------------------------------
1 | uid://ct0u1fvddy3aa
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/weapons/sword/sword.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=4 format=3 uid="uid://cq4pqfg3tnqxh"]
2 |
3 | [ext_resource type="PackedScene" uid="uid://64u3mmswdrma" path="res://source/common/gameplay/items/weapons/weapon.tscn" id="1_6bj2e"]
4 | [ext_resource type="Script" uid="uid://ct0u1fvddy3aa" path="res://source/common/gameplay/items/weapons/sword/sword.gd" id="2_gih3n"]
5 | [ext_resource type="AnimationLibrary" uid="uid://rbv6cl1ldcc7" path="res://source/common/gameplay/items/weapons/sword/sword_animations.tres" id="3_xqg3f"]
6 |
7 | [node name="Sword" instance=ExtResource("1_6bj2e")]
8 | script = ExtResource("2_gih3n")
9 | animation_libraries = Dictionary[StringName, AnimationLibrary]({
10 | &"weapon": ExtResource("3_xqg3f")
11 | })
12 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/weapons/weapon.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cb37imj7qsy82
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/items/weapons/weapon.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=4 format=3 uid="uid://64u3mmswdrma"]
2 |
3 | [ext_resource type="Script" uid="uid://cb37imj7qsy82" path="res://source/common/gameplay/items/weapons/weapon.gd" id="1_aiw52"]
4 | [ext_resource type="Texture2D" uid="uid://bl4x3jlsvt3jq" path="res://assets/sprites/items/weapons/bone/bone.png" id="2_33udu"]
5 | [ext_resource type="PackedScene" uid="uid://c4mlxpbwyc1tw" path="res://source/common/gameplay/characters/components/hand/hand.tscn" id="3_ydnw2"]
6 |
7 | [node name="Weapon" type="Node2D"]
8 | script = ExtResource("1_aiw52")
9 |
10 | [node name="WeaponSprite" type="Sprite2D" parent="."]
11 | texture = ExtResource("2_33udu")
12 | offset = Vector2(0, -15)
13 | flip_h = true
14 | region_enabled = true
15 | region_rect = Rect2(0, 0, 16, 48)
16 |
17 | [node name="Hand" parent="." instance=ExtResource("3_ydnw2")]
18 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/components/interaction_areas/interaction_area.gd:
--------------------------------------------------------------------------------
1 | @icon("res://assets/node_icons/blue/icon_grid.png")
2 | class_name InteractionArea
3 | extends Area2D
4 | ## Base class of all interactible areas. Can be a collectible, a warper, a teleporter etc.
5 |
6 | signal player_entered_interaction_area(player: Player, interaction_area: InteractionArea)
7 |
8 |
9 | func _init() -> void:
10 | body_entered.connect(_on_body_entered)
11 |
12 |
13 | func _on_body_entered(body: Node2D) -> void:
14 | if body is Player:
15 | player_entered_interaction_area.emit(body, self)
16 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/components/interaction_areas/interaction_area.gd.uid:
--------------------------------------------------------------------------------
1 | uid://b3r6vglj3doxu
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/components/interaction_areas/interaction_area.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=2 format=3 uid="uid://d0rhh01b2jj7f"]
2 |
3 | [ext_resource type="Script" uid="uid://b3r6vglj3doxu" path="res://source/common/gameplay/maps/components/interaction_areas/interaction_area.gd" id="1_0ligj"]
4 |
5 | [node name="InteractionArea" type="Area2D"]
6 | script = ExtResource("1_0ligj")
7 |
8 | [connection signal="body_entered" from="." to="." method="_on_body_entered"]
9 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/components/interaction_areas/teleporter/teleporter.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dd13qn2chpxp2
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/components/interaction_areas/teleporter/teleporter.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=3 format=3 uid="uid://dbg8y8if4vv5p"]
2 |
3 | [ext_resource type="Script" uid="uid://dd13qn2chpxp2" path="res://source/common/gameplay/maps/components/interaction_areas/teleporter/teleporter.gd" id="1_ctuaa"]
4 |
5 | [sub_resource type="RectangleShape2D" id="RectangleShape2D_atxum"]
6 | size = Vector2(16, 16)
7 |
8 | [node name="Teleporter" type="Area2D"]
9 | z_index = 10
10 | script = ExtResource("1_ctuaa")
11 |
12 | [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
13 | shape = SubResource("RectangleShape2D_atxum")
14 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/components/interaction_areas/warper/warper.gd:
--------------------------------------------------------------------------------
1 | @icon("res://assets/node_icons/blue/icon_door.png")
2 | class_name Warper
3 | extends InteractionArea
4 |
5 |
6 | @export var target_instance: InstanceResource
7 | @export var warper_id: int = 0
8 | @export var target_id: int = 0
9 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/components/interaction_areas/warper/warper.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cloyd4stl0hfe
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/components/interaction_areas/warper/warper.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=3 format=3 uid="uid://b2ckixon7ryh6"]
2 |
3 | [ext_resource type="Script" uid="uid://cloyd4stl0hfe" path="res://source/common/gameplay/maps/components/interaction_areas/warper/warper.gd" id="1_w00al"]
4 |
5 | [sub_resource type="RectangleShape2D" id="RectangleShape2D_5fu4t"]
6 |
7 | [node name="Warper" type="Area2D"]
8 | monitorable = false
9 | script = ExtResource("1_w00al")
10 |
11 | [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
12 | shape = SubResource("RectangleShape2D_5fu4t")
13 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/instance/instance_collection/dungeon.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="InstanceResource" load_steps=2 format=3 uid="uid://ditnocjiqmbsu"]
2 |
3 | [ext_resource type="Script" uid="uid://deqjrbn7hm53u" path="res://source/common/gameplay/maps/instance/instance_resource.gd" id="1_yll11"]
4 |
5 | [resource]
6 | script = ExtResource("1_yll11")
7 | instance_name = &"Dungeon"
8 | map_path = "uid://bvpi2a6j7k8s0"
9 | load_at_startup = false
10 | metadata/slug = &"dungeon"
11 | metadata/id = 4
12 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/instance/instance_collection/dungeon/dungeon.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="InstanceResource" load_steps=2 format=3 uid="uid://ditnocjiqmbsu"]
2 |
3 | [ext_resource type="Script" uid="uid://deqjrbn7hm53u" path="res://source/common/gameplay/maps/instance/instance_resource.gd" id="1_yll11"]
4 |
5 | [resource]
6 | script = ExtResource("1_yll11")
7 | instance_name = &"Dungeon"
8 | map_path = "uid://bvpi2a6j7k8s0"
9 | load_at_startup = false
10 | metadata/slug = &"dungeon"
11 | metadata/id = 4
12 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/instance/instance_collection/dungeon/dungeon_entrance.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="InstanceResource" load_steps=2 format=3 uid="uid://4utja3eou6l6"]
2 |
3 | [ext_resource type="Script" uid="uid://deqjrbn7hm53u" path="res://source/common/gameplay/maps/instance/instance_resource.gd" id="1_n2sgl"]
4 |
5 | [resource]
6 | script = ExtResource("1_n2sgl")
7 | instance_name = &"DungeonEntrance"
8 | map_path = "uid://5ke1s1ydu7ty"
9 | load_at_startup = false
10 | metadata/slug = &"dungeon_entrance"
11 | metadata/id = 5
12 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/instance/instance_collection/dungeon_entrance.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="InstanceResource" load_steps=2 format=3 uid="uid://4utja3eou6l6"]
2 |
3 | [ext_resource type="Script" uid="uid://deqjrbn7hm53u" path="res://source/common/gameplay/maps/instance/instance_resource.gd" id="1_n2sgl"]
4 |
5 | [resource]
6 | script = ExtResource("1_n2sgl")
7 | instance_name = &"DungeonEntrance"
8 | map_path = "uid://5ke1s1ydu7ty"
9 | load_at_startup = false
10 | metadata/slug = &"dungeon_entrance"
11 | metadata/id = 5
12 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/instance/instance_collection/guild_house/guild_house.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="InstanceResource" load_steps=2 format=3 uid="uid://c0xqjh15bmdkm"]
2 |
3 | [ext_resource type="Script" uid="uid://deqjrbn7hm53u" path="res://source/common/gameplay/maps/instance/instance_resource.gd" id="1_2uix5"]
4 |
5 | [resource]
6 | script = ExtResource("1_2uix5")
7 | instance_name = &"GuildHouse"
8 | map_path = "uid://d3td3u4jic7j6"
9 | load_at_startup = false
10 | metadata/_custom_type_script = "uid://deqjrbn7hm53u"
11 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/instance/instance_collection/guild_outpost_base/guild_outpost.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="InstanceResource" load_steps=2 format=3 uid="uid://ci3xj57ys32t7"]
2 |
3 | [ext_resource type="Script" uid="uid://deqjrbn7hm53u" path="res://source/common/gameplay/maps/instance/instance_resource.gd" id="1_hi3h0"]
4 |
5 | [resource]
6 | script = ExtResource("1_hi3h0")
7 | instance_name = &"GuildOutpost"
8 | map_path = "uid://c0le2suyjl2g7"
9 | load_at_startup = false
10 | metadata/_custom_type_script = "uid://deqjrbn7hm53u"
11 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/instance/instance_collection/mining_cave/cave_area1.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="InstanceResource" load_steps=2 format=3 uid="uid://iuqxmo63ipnn"]
2 |
3 | [ext_resource type="Script" uid="uid://deqjrbn7hm53u" path="res://source/common/gameplay/maps/instance/instance_resource.gd" id="1_dvqs5"]
4 |
5 | [resource]
6 | script = ExtResource("1_dvqs5")
7 | instance_name = &"CaveArea1"
8 | map_path = "uid://wkvp6lqnmgx5"
9 | load_at_startup = false
10 | metadata/_custom_type_script = "uid://deqjrbn7hm53u"
11 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/instance/instance_collection/overworld.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="InstanceResource" load_steps=2 format=3 uid="uid://doc0umc2oovri"]
2 |
3 | [ext_resource type="Script" uid="uid://deqjrbn7hm53u" path="res://source/common/gameplay/maps/instance/instance_resource.gd" id="1_5ydet"]
4 |
5 | [resource]
6 | script = ExtResource("1_5ydet")
7 | instance_name = &"Overworld"
8 | map_path = "res://source/common/gameplay/maps/maps/overworld.tscn"
9 | load_at_startup = true
10 | metadata/slug = &"overworld"
11 | metadata/id = 6
12 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/instance/instance_collection/spar_house/spar_house.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="InstanceResource" load_steps=2 format=3 uid="uid://b832bjouifd56"]
2 |
3 | [ext_resource type="Script" uid="uid://deqjrbn7hm53u" path="res://source/common/gameplay/maps/instance/instance_resource.gd" id="1_hlkax"]
4 |
5 | [resource]
6 | script = ExtResource("1_hlkax")
7 | instance_name = &"SparHouse"
8 | map_path = "uid://c0lsanpe40uo0"
9 | load_at_startup = false
10 | metadata/_custom_type_script = "uid://deqjrbn7hm53u"
11 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/instance/instance_collection/starter_shop/starter_shop.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="InstanceResource" load_steps=2 format=3 uid="uid://csp4j7lr4famg"]
2 |
3 | [ext_resource type="Script" uid="uid://deqjrbn7hm53u" path="res://source/common/gameplay/maps/instance/instance_resource.gd" id="1_eo6dn"]
4 |
5 | [resource]
6 | script = ExtResource("1_eo6dn")
7 | instance_name = &"Shop"
8 | map_path = "uid://bhorfmdpw4rq3"
9 | load_at_startup = false
10 | metadata/_custom_type_script = "uid://deqjrbn7hm53u"
11 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/instance/instance_collection/trade_house/trade_house.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="InstanceResource" load_steps=2 format=3 uid="uid://bqx2riy2f440w"]
2 |
3 | [ext_resource type="Script" uid="uid://deqjrbn7hm53u" path="res://source/common/gameplay/maps/instance/instance_resource.gd" id="1_1h1k1"]
4 |
5 | [resource]
6 | script = ExtResource("1_1h1k1")
7 | instance_name = &"TradeHouse"
8 | map_path = "uid://be82v7hsu1yi2"
9 | load_at_startup = false
10 | metadata/_custom_type_script = "uid://deqjrbn7hm53u"
11 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/instance/instance_resource.gd:
--------------------------------------------------------------------------------
1 | class_name InstanceResource
2 | extends Resource
3 |
4 |
5 | @export var instance_name: StringName
6 | @export_file("*.tscn") var map_path: String
7 | @export var load_at_startup: bool = false
8 |
9 | var loading_instances: Array
10 | var charged_instances: Array[ServerInstance]
11 |
12 |
13 | @warning_ignore("unused_parameter")
14 | func can_join_instance(player: Player, index: int = -1) -> bool:
15 | return true
16 |
17 |
18 | func get_instance(index: int = -1) -> ServerInstance:
19 | if charged_instances.is_empty() or charged_instances.size() <= index:
20 | return null
21 | return charged_instances[index]
22 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/instance/instance_resource.gd.uid:
--------------------------------------------------------------------------------
1 | uid://deqjrbn7hm53u
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/map.gd.uid:
--------------------------------------------------------------------------------
1 | uid://7mbux4mybta0
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/maps/guild_spar/spar_house_inside.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=2 format=3 uid="uid://clhv7kagrqam3"]
2 |
3 | [ext_resource type="Script" uid="uid://7mbux4mybta0" path="res://source/common/gameplay/maps/map.gd" id="1_duefv"]
4 |
5 | [node name="Spar_house_inside" type="Node2D"]
6 | script = ExtResource("1_duefv")
7 | metadata/_custom_type_script = "uid://7mbux4mybta0"
8 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/maps/spar_house/spar_house_inside.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=2 format=3 uid="uid://c0lsanpe40uo0"]
2 |
3 | [ext_resource type="Script" uid="uid://7mbux4mybta0" path="res://source/common/gameplay/maps/map.gd" id="1_72o38"]
4 |
5 | [node name="Spar_house_inside" type="Node2D"]
6 | script = ExtResource("1_72o38")
7 | metadata/_custom_type_script = "uid://7mbux4mybta0"
8 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/props/collectibles/coin.gd.uid:
--------------------------------------------------------------------------------
1 | uid://d132hhwqguove
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/props/doors/activable_door/activable_door.gd:
--------------------------------------------------------------------------------
1 | extends StaticBody2D
2 |
3 |
4 | @export var door_id: int = 0
5 |
6 | @onready var door_anim: AnimatedSprite2D = $AnimatedSprite2D
7 | @onready var door_collision: CollisionShape2D = $CollisionShape2D
8 |
9 |
10 | func _ready() -> void:
11 | door_anim.play(&"closed")
12 |
13 |
14 | func open_door() -> void:
15 | door_anim.play(&"opening")
16 | door_collision.disabled = true
17 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/props/doors/activable_door/activable_door.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cjqrkmohwgdql
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/props/ground_button/ground_button.gd.uid:
--------------------------------------------------------------------------------
1 | uid://wh5map4o52qc
2 |
--------------------------------------------------------------------------------
/source/common/gameplay/maps/zone_patch_2d.gd.uid:
--------------------------------------------------------------------------------
1 | uid://ddtm11pnrdkyo
2 |
--------------------------------------------------------------------------------
/source/common/main.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bmrprxwywd2oj
2 |
--------------------------------------------------------------------------------
/source/common/main.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=2 format=3 uid="uid://vexbi605indu"]
2 |
3 | [ext_resource type="Script" uid="uid://bmrprxwywd2oj" path="res://source/common/main.gd" id="1_gnr3o"]
4 |
5 | [node name="Main" type="Node"]
6 | script = ExtResource("1_gnr3o")
7 |
8 | [node name="ErrorLabel" type="Label" parent="."]
9 | anchors_preset = 8
10 | anchor_left = 0.5
11 | anchor_top = 0.5
12 | anchor_right = 0.5
13 | anchor_bottom = 0.5
14 | offset_left = -20.0
15 | offset_top = -11.5
16 | offset_right = 20.0
17 | offset_bottom = 11.5
18 | grow_horizontal = 2
19 | grow_vertical = 2
20 | text = "You see this label because no valid feature tag was found.
21 | Please check either README.md or common/main.gd for more information."
22 | horizontal_alignment = 1
23 | vertical_alignment = 1
24 |
--------------------------------------------------------------------------------
/source/common/network/endpoints/base_multiplayer_endpoint.gd.uid:
--------------------------------------------------------------------------------
1 | uid://ceehsvpysxod8
2 |
--------------------------------------------------------------------------------
/source/common/network/gateway_api.gd.uid:
--------------------------------------------------------------------------------
1 | uid://2xupcdx8pavx
2 |
--------------------------------------------------------------------------------
/source/common/network/sync/property_cache.gd.uid:
--------------------------------------------------------------------------------
1 | uid://d4nxif5yvfigw
2 |
--------------------------------------------------------------------------------
/source/common/network/sync/replicated_props.gd.uid:
--------------------------------------------------------------------------------
1 | uid://wq8klpndipnu
2 |
--------------------------------------------------------------------------------
/source/common/network/sync/state_synchronizer.gd.uid:
--------------------------------------------------------------------------------
1 | uid://d1a30n4ktgm71
2 |
--------------------------------------------------------------------------------
/source/common/network/sync/state_synchronizer_manager_client.gd.uid:
--------------------------------------------------------------------------------
1 | uid://6g8e62fhjitu
2 |
--------------------------------------------------------------------------------
/source/common/network/sync/state_synchronizer_manager_server.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cw1qwe7qjmawv
2 |
--------------------------------------------------------------------------------
/source/common/network/utils/sync_utils.gd:
--------------------------------------------------------------------------------
1 | class_name SyncUtils
2 |
3 |
4 | static func roughly_equal(a: Variant, b: Variant) -> bool:
5 | assert(typeof(a) == typeof(b), "Trying to compare different types")
6 |
7 | match typeof(a):
8 | TYPE_FLOAT:
9 | return is_equal_approx(a, b)
10 | TYPE_VECTOR2:#TYPE_VECTOR3 etc. for 3D game
11 | return (a as Vector2).is_equal_approx(b)
12 | _:
13 | return a == b
14 |
--------------------------------------------------------------------------------
/source/common/network/utils/sync_utils.gd.uid:
--------------------------------------------------------------------------------
1 | uid://do4ytxvd5htru
2 |
--------------------------------------------------------------------------------
/source/common/network/utils/tls_options_utils.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dirs80u4uvapc
2 |
--------------------------------------------------------------------------------
/source/common/network/wire.gd:
--------------------------------------------------------------------------------
1 | class_name Wire
2 |
3 |
4 | enum Type {
5 | VARIANT,
6 | BOOL,
7 | U8, U16, U32, U64,
8 | S8, S16, S32, S64,
9 | F16, F32, F64,
10 | STR_UTF8_U16, STR_UTF8_U32,
11 | STR_ASCII_U16, STR_ASCII_U32,
12 | BYTES_U16, BYTES_U32,
13 | VEC2_F32
14 | }
15 |
16 | # U / Unsigned byte
17 | # S / Signed byte
18 | # put_double / f64 / 64 bits
19 | # put_float / f32 / 32 bits / float, single precision
20 | # put_half / f16 / 16 bits/ half, half precision
21 |
--------------------------------------------------------------------------------
/source/common/network/wire.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dr4b8g8wxw2bg
2 |
--------------------------------------------------------------------------------
/source/common/network/wire_codec.gd.uid:
--------------------------------------------------------------------------------
1 | uid://d36gfss3kn1q2
2 |
--------------------------------------------------------------------------------
/source/common/registry/content_index.gd:
--------------------------------------------------------------------------------
1 | class_name ContentIndex
2 | extends Resource
3 |
4 |
5 | @export var content_name: StringName
6 | @export var version: int
7 | @export var next_id: int = 1
8 | ##{
9 | ## &"slug": &"human_readable,
10 | ## &"id": 123,
11 | ## &"path": &"res://item.tres" or value ?
12 | ##}
13 | ##
14 | @export var entries: Array[Dictionary]
15 |
16 | @export var scan_path: String
17 | @export var filters: PackedStringArray
18 |
--------------------------------------------------------------------------------
/source/common/registry/content_index.gd.uid:
--------------------------------------------------------------------------------
1 | uid://0wmtcxri41vp
2 |
--------------------------------------------------------------------------------
/source/common/registry/content_registry.gd.uid:
--------------------------------------------------------------------------------
1 | uid://ddfo3eu3rgtko
2 |
--------------------------------------------------------------------------------
/source/common/registry/content_registry_hub.gd.uid:
--------------------------------------------------------------------------------
1 | uid://djhp36csl5ao3
2 |
--------------------------------------------------------------------------------
/source/common/registry/path_registry.gd.uid:
--------------------------------------------------------------------------------
1 | uid://hsw3c4787kvu
2 |
--------------------------------------------------------------------------------
/source/common/utils/anim_utils.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bmx2ncltvma6c
2 |
--------------------------------------------------------------------------------
/source/common/utils/cmdline_utils.gd:
--------------------------------------------------------------------------------
1 | class_name CmdlineUtils
2 |
3 |
4 | static func get_parsed_args() -> Dictionary:
5 | var arguments: Dictionary = {}
6 | for argument: String in OS.get_cmdline_args():
7 | if argument.contains("="):
8 | var key_value := argument.split("=")
9 | arguments[key_value[0].trim_prefix("--")] = key_value[1]
10 | else:
11 | # Options without an argument will be present in the dictionary,
12 | # with the value set to an empty string.
13 | arguments[argument.trim_prefix("--")] = ""
14 | return arguments
15 |
--------------------------------------------------------------------------------
/source/common/utils/cmdline_utils.gd.uid:
--------------------------------------------------------------------------------
1 | uid://n1wf1t825rya
2 |
--------------------------------------------------------------------------------
/source/common/utils/config_file_utils.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cdr8sdqtr1yq6
2 |
--------------------------------------------------------------------------------
/source/common/utils/credentials_utils.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bwr45hjf46dlg
2 |
--------------------------------------------------------------------------------
/source/common/utils/editor_scripts/generate_crypto_key.gd.uid:
--------------------------------------------------------------------------------
1 | uid://b52nit56jvoj4
2 |
--------------------------------------------------------------------------------
/source/common/utils/file_utils.gd:
--------------------------------------------------------------------------------
1 | class_name FileUtils
2 |
3 |
4 | static func get_all_file_at(
5 | path: String,
6 | pattern: String = "*",
7 | recursive: bool = true
8 | ) -> PackedStringArray:
9 | var result_files: PackedStringArray
10 | var dir: DirAccess = DirAccess.open(path)
11 |
12 | if not dir:
13 | push_error("Failed to open directory at %s with error %s" % [
14 | path, error_string(DirAccess.get_open_error())
15 | ])
16 | return result_files
17 |
18 | dir.list_dir_begin()
19 | var file_name: String = dir.get_next()
20 |
21 | while file_name:
22 | var full_path: String = path.path_join(file_name)
23 | if dir.current_is_dir() and recursive:
24 | result_files += get_all_file_at(full_path)
25 | elif file_name.match(pattern):
26 | result_files.append(full_path)
27 | file_name = dir.get_next()
28 |
29 | dir.list_dir_end()
30 | return result_files
31 |
--------------------------------------------------------------------------------
/source/common/utils/file_utils.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dmg6b7mfo0mus
2 |
--------------------------------------------------------------------------------
/source/server/gateway/README.md:
--------------------------------------------------------------------------------
1 | ## Gateway
2 |
3 | ./master_gateway_client/
4 | - Means to communicate with the master server, the orchestrator.
5 |
6 | ./player_gateway_server/
7 | - Means to communicate with the player with its 'gateway_client.gd'.
8 |
--------------------------------------------------------------------------------
/source/server/gateway/gateway_main.gd:
--------------------------------------------------------------------------------
1 | extends Node
2 |
3 |
4 | func _ready() -> void:
5 | if DisplayServer.get_name() != "headless":
6 | DisplayServer.window_set_title("Gateway Server")
7 |
--------------------------------------------------------------------------------
/source/server/gateway/gateway_main.gd.uid:
--------------------------------------------------------------------------------
1 | uid://3snlehf663qv
2 |
--------------------------------------------------------------------------------
/source/server/gateway/gateway_main.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=4 format=3 uid="uid://bvnp50b85cxif"]
2 |
3 | [ext_resource type="Script" uid="uid://3snlehf663qv" path="res://source/server/gateway/gateway_main.gd" id="1_v0yps"]
4 | [ext_resource type="Script" uid="uid://l075wdufq4jr" path="res://source/server/gateway/master_gateway_client/gateway_manager_client.gd" id="3_m66nj"]
5 | [ext_resource type="Script" uid="uid://bjxnn8cv1untw" path="res://source/server/gateway/http_server.gd" id="5_mufm1"]
6 |
7 | [node name="GatewayMain" type="Node"]
8 | script = ExtResource("1_v0yps")
9 |
10 | [node name="GatewayManagerClient" type="Node" parent="."]
11 | script = ExtResource("3_m66nj")
12 |
13 | [node name="GatewayHTTPServer" type="Node" parent="."]
14 | script = ExtResource("5_mufm1")
15 |
--------------------------------------------------------------------------------
/source/server/gateway/http_server.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bjxnn8cv1untw
2 |
--------------------------------------------------------------------------------
/source/server/gateway/master_gateway_client/gateway_manager_client.gd.uid:
--------------------------------------------------------------------------------
1 | uid://l075wdufq4jr
2 |
--------------------------------------------------------------------------------
/source/server/master/README.md:
--------------------------------------------------------------------------------
1 | ## Master server
2 |
3 |
4 | Right now it has a very limited usefullnes but it does this:
5 | - Lets all gateway and world connect to itself (master server)
6 | - When a player connects to the gateway, the gateway can retrieve the list of available worlds via the server so it doesn't need to know all possible world adresses.
7 | - When a player try to access to a world server, the gateway will ask the master server to fetch him the available informations about the player on this server such as its characters.
8 | - Once the player choose its character on a specific server, a temporary token is generated allowing the client to connect to the target world server.
9 | - Act as the account data base, characters are stored in world servers.
10 |
11 | I'am not sure right now what more it should do.
12 |
--------------------------------------------------------------------------------
/source/server/master/account_models/account.gd:
--------------------------------------------------------------------------------
1 | class_name AccountResource
2 | extends Resource
3 |
4 |
5 | @export var id: int
6 | @export var username: String
7 | @export var password: String
8 |
9 | # peer_id = O if not connected
10 | var peer_id: int = 0
11 |
12 |
13 | func init(_id: int, _username: String, _password: String) -> void:
14 | id = _id
15 | username = _username
16 | password = _password
17 |
--------------------------------------------------------------------------------
/source/server/master/account_models/account.gd.uid:
--------------------------------------------------------------------------------
1 | uid://620djf1m6nxf
2 |
--------------------------------------------------------------------------------
/source/server/master/account_models/account_collection.gd:
--------------------------------------------------------------------------------
1 | class_name AccountResourceCollection
2 | extends Resource
3 |
4 |
5 | @export var collection: Dictionary = {}
6 |
7 | @export var next_account_id: int = 0
8 | #@export var next_player_id: int = 0
9 |
10 |
11 | func get_new_account_id() -> int:
12 | var new_account_id: int = next_account_id
13 | next_account_id += 1
14 | return new_account_id
15 |
--------------------------------------------------------------------------------
/source/server/master/account_models/account_collection.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cxrc2yfn6yejc
2 |
--------------------------------------------------------------------------------
/source/server/master/components/authentication_manager.gd.uid:
--------------------------------------------------------------------------------
1 | uid://d2cmewfb6gey3
2 |
--------------------------------------------------------------------------------
/source/server/master/components/database.gd.uid:
--------------------------------------------------------------------------------
1 | uid://if1byogst5v3
2 |
--------------------------------------------------------------------------------
/source/server/master/components/master_gateway_server/master_gateway_server.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dx6y8xcifn6f8
2 |
--------------------------------------------------------------------------------
/source/server/master/components/master_world_server/master_world_server.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bcbl4b333f5l5
2 |
--------------------------------------------------------------------------------
/source/server/master/master_main.gd:
--------------------------------------------------------------------------------
1 | extends Node
2 |
3 |
4 | func _ready() -> void:
5 | if DisplayServer.get_name() != "headless":
6 | DisplayServer.window_set_title("Master Server")
7 |
--------------------------------------------------------------------------------
/source/server/master/master_main.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bvryexdli570a
2 |
--------------------------------------------------------------------------------
/source/server/world/components/chat_command/chat_command.gd:
--------------------------------------------------------------------------------
1 | class_name ChatCommand
2 | extends RefCounted
3 |
4 |
5 | var command_name: String = ""
6 | var command_alias: PackedStringArray = []
7 | var command_priority: int = 0
8 |
9 |
10 | @warning_ignore("unused_parameter")
11 | func execute(args: PackedStringArray, peer_id: int, server_instance: ServerInstance) -> String:
12 | return "Unknown command."
13 |
--------------------------------------------------------------------------------
/source/server/world/components/chat_command/chat_command.gd.uid:
--------------------------------------------------------------------------------
1 | uid://ldi4mplp3mk8
2 |
--------------------------------------------------------------------------------
/source/server/world/components/chat_command/global_commands/getid_command.gd:
--------------------------------------------------------------------------------
1 | extends ChatCommand
2 |
3 |
4 | func _init():
5 | command_name = 'getid'
6 | command_priority = 0
7 |
8 |
9 | func execute(args: PackedStringArray, peer_id: int, server_instance: ServerInstance) -> String:
10 | if args.size() == 2:
11 | match args[1]:
12 | "network":
13 | return str(peer_id)
14 | "character":
15 | return str(server_instance.world_server.connected_players[peer_id].player_id)
16 | "instance":
17 | return server_instance.instance_resource.instance_name
18 | return "Invalid command format: /getid network/character/instance"
19 |
--------------------------------------------------------------------------------
/source/server/world/components/chat_command/global_commands/getid_command.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bp8n6kdvqc62s
2 |
--------------------------------------------------------------------------------
/source/server/world/components/chat_command/global_commands/heal_command.gd:
--------------------------------------------------------------------------------
1 | extends ChatCommand
2 |
3 |
4 | func _init():
5 | command_name = 'heal'
6 | command_priority = 2
7 |
8 |
9 | func execute(args: PackedStringArray, peer_id: int, server_instance: ServerInstance) -> String:
10 | if args.size() != 3:
11 | return "Invalid command format: /heal "
12 |
13 | var target: int = peer_id if args[1] == "self" else args[1].to_int()
14 | var amount: int = args[2].to_int()
15 |
16 | if server_instance.get_player(target) == null:
17 | return "Target not found."
18 |
19 | var error: bool = server_instance.set_player_attr_current(target, &"health", amount)
20 | return ("/heal %s %s" % [str(target), str(amount)]) + (" successful" if error else " failed")
21 |
--------------------------------------------------------------------------------
/source/server/world/components/chat_command/global_commands/heal_command.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cjpjeymk604i2
2 |
--------------------------------------------------------------------------------
/source/server/world/components/chat_command/global_commands/help_command.gd.uid:
--------------------------------------------------------------------------------
1 | uid://c4c4usbt6n8o6
2 |
--------------------------------------------------------------------------------
/source/server/world/components/chat_command/global_commands/selfadmin_command.gd:
--------------------------------------------------------------------------------
1 | extends ChatCommand
2 |
3 |
4 | func _init():
5 | command_name = 'selfadmin'
6 | command_priority = 2
7 |
8 | # For debugging
9 | if OS.has_feature("debug") or OS.has_feature("editor"):
10 | command_priority = 0
11 |
12 | # Only running in debug mode for now.
13 | func execute(_args: PackedStringArray, peer_id: int, server_instance: ServerInstance) -> String:
14 | server_instance.world_server.connected_players[peer_id].server_roles["senior_admin"] = {}
15 | return "Yes admin"
16 |
--------------------------------------------------------------------------------
/source/server/world/components/chat_command/global_commands/selfadmin_command.gd.uid:
--------------------------------------------------------------------------------
1 | uid://d13htpfxs2h37
2 |
--------------------------------------------------------------------------------
/source/server/world/components/chat_command/global_commands/set_command.gd.uid:
--------------------------------------------------------------------------------
1 | uid://d3pnmjwxyk381
2 |
--------------------------------------------------------------------------------
/source/server/world/components/chat_command/global_commands/size_command.gd:
--------------------------------------------------------------------------------
1 | extends ChatCommand
2 |
3 |
4 | func _init():
5 | command_name = 'size'
6 | command_priority = 2
7 |
8 |
9 | func execute(args: PackedStringArray, peer_id: int, server_instance: ServerInstance) -> String:
10 | if args.size() != 3:
11 | return "Invalid command format: /size "
12 |
13 | var target: int = peer_id if args[1] == "self" else args[1].to_int()
14 | var amount: int = clampi(args[2].to_int(), 1, 4)
15 |
16 | if server_instance.get_player(target) == null:
17 | return "Target not found."
18 |
19 | var ok := server_instance.set_player_path_value(target, ^":scale", Vector2(amount, amount))
20 | return ("/size %s %s" % [str(target), str(amount)]) + (" successful" if ok else " failed")
21 |
--------------------------------------------------------------------------------
/source/server/world/components/chat_command/global_commands/size_command.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bx8wcoso3dly5
2 |
--------------------------------------------------------------------------------
/source/server/world/components/chat_command/global_commands/toogle_role_command.gd:
--------------------------------------------------------------------------------
1 | extends ChatCommand
2 |
3 |
4 | func _init():
5 | command_name = 'toggle'
6 | command_priority = 2
7 |
8 |
9 | func execute(args: PackedStringArray, peer_id: int, server_instance: ServerInstance) -> String:
10 | if not args.size() == 3:
11 | return "Format "
12 | var player: PlayerResource = server_instance.world_server.connected_players.get(peer_id, null)
13 | if not player:
14 | return "Unknown peer."
15 | if player.server_roles.has(args[1]):
16 | player.server_roles["active"] = true if args[2] == "active" else false
17 | return "Your role state has been changed."
18 | return "You don't have this role."
19 |
--------------------------------------------------------------------------------
/source/server/world/components/chat_command/global_commands/toogle_role_command.gd.uid:
--------------------------------------------------------------------------------
1 | uid://b4gf16us3avgp
2 |
--------------------------------------------------------------------------------
/source/server/world/components/console.gd.uid:
--------------------------------------------------------------------------------
1 | uid://32l8t618k7dp
2 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/action.perform.gd:
--------------------------------------------------------------------------------
1 | extends DataRequestHandler
2 |
3 |
4 | func data_request_handler(
5 | peer_id: int,
6 | instance: ServerInstance,
7 | args: Dictionary
8 | ) -> Dictionary:
9 | var player: Player = instance.players_by_peer_id.get(peer_id, null)
10 | if not player:
11 | return {}
12 |
13 | var action_index: int = args.get("i", 0)
14 | var action_direction: Vector2 = args.get("d", Vector2.ZERO)
15 | if player.equipment_component.can_use(&"weapon", action_index):
16 | player.equipment_component._mounted[&"weapon"].perform_action(action_index, action_direction)
17 | instance.propagate_rpc(instance.data_push.bind(
18 | &"action.perform",
19 | {"i": action_index, "d": action_direction, "p": peer_id}
20 | ))
21 | return {}
22 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/action.perform.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bg12pp1ko4m3f
2 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/attribute.get.gd:
--------------------------------------------------------------------------------
1 | extends DataRequestHandler
2 |
3 |
4 | func data_request_handler(
5 | peer_id: int,
6 | instance: ServerInstance,
7 | args: Dictionary
8 | ) -> Dictionary:
9 | var player: Player = instance.players_by_peer_id.get(peer_id, null)
10 | if not player:
11 | return {}
12 | return {
13 | "points": player.player_resource.available_attributes_points,
14 | "attr": player.player_resource.attributes
15 | }
16 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/attribute.get.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cfgkqigw48w7o
2 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/attribute.spend.gd.uid:
--------------------------------------------------------------------------------
1 | uid://rmtnvx5dw5qp
2 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/chat.command.exec.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cqcjdfq5hft3k
2 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/chat.message.send.gd:
--------------------------------------------------------------------------------
1 | extends DataRequestHandler
2 |
3 |
4 | func data_request_handler(
5 | peer_id: int,
6 | instance: ServerInstance,
7 | args: Dictionary
8 | ) -> Dictionary:
9 | var message: Dictionary = {
10 | "text": args.get("text", ""),
11 | "channel": args.get("channel", 0),
12 | "name": instance.players_by_peer_id[peer_id].player_resource.display_name,
13 | "id": peer_id
14 | #"time": Time.get_
15 | }
16 | instance.propagate_rpc(instance.data_push.bind(&"chat.message", message))
17 | return {} # ACK later #{"error": 0}
18 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/chat.message.send.gd.uid:
--------------------------------------------------------------------------------
1 | uid://0almmjrgh4ie
2 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/data_request_handler.gd:
--------------------------------------------------------------------------------
1 | class_name DataRequestHandler
2 |
3 |
4 | func data_request_handler(
5 | peer_id: int,
6 | instance: ServerInstance,
7 | args: Dictionary
8 | ) -> Dictionary:
9 | return {}
10 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/data_request_handler.gd.uid:
--------------------------------------------------------------------------------
1 | uid://ojp2vqpi7mmm
2 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/guild.create.gd.uid:
--------------------------------------------------------------------------------
1 | uid://c1nnsdk8uda5s
2 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/guild.get.gd:
--------------------------------------------------------------------------------
1 | extends DataRequestHandler
2 |
3 |
4 | func data_request_handler(
5 | peer_id: int,
6 | instance: ServerInstance,
7 | args: Dictionary
8 | ) -> Dictionary:
9 | var to_get: String = args.get("q", "")
10 | if to_get.is_empty():
11 | return {}
12 | var guild: Guild = instance.world_server.database.player_data.guilds.get(to_get)
13 | var guild_info: Dictionary
14 | if guild:
15 | guild_info = {"name": guild.guild_name, "size": guild.members.size()}
16 | return guild_info
17 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/guild.get.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cjqdbfj0lalay
2 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/guild.quit.gd:
--------------------------------------------------------------------------------
1 | extends DataRequestHandler
2 |
3 |
4 | func data_request_handler(
5 | peer_id: int,
6 | instance: ServerInstance,
7 | args: Dictionary
8 | ) -> Dictionary:
9 | var player_resource: PlayerResource = instance.world_server.connected_players.get(peer_id, null)
10 | if not player_resource or not player_resource.guild:
11 | return {}
12 |
13 | player_resource.guild.remove_member(player_resource.player_id)
14 | player_resource.guild = null
15 |
16 | return {}
17 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/guild.quit.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dr72dr07b5t51
2 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/guild.search.gd:
--------------------------------------------------------------------------------
1 | extends DataRequestHandler
2 |
3 |
4 | func data_request_handler(
5 | peer_id: int,
6 | instance: ServerInstance,
7 | args: Dictionary
8 | ) -> Dictionary:
9 | const MAX_RESULT: int = 10
10 | var i: int = 0
11 | var result: Dictionary
12 | var guild_names: PackedStringArray = instance.world_server.database.player_data.guilds.keys()
13 | var to_search: String = args.get("q", "")
14 | for guild_name: String in guild_names:
15 | if guild_name.to_lower().contains(to_search):
16 | result[guild_name] = 0
17 | if i >= MAX_RESULT:
18 | break
19 | i += 1
20 | return result
21 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/guild.search.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cd68w2h8cfpq
2 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/guild.self.gd:
--------------------------------------------------------------------------------
1 | extends DataRequestHandler
2 |
3 |
4 | func data_request_handler(
5 | peer_id: int,
6 | instance: ServerInstance,
7 | args: Dictionary
8 | ) -> Dictionary:
9 | var player: Player = instance.players_by_peer_id.get(peer_id)
10 | if not player:
11 | return {}
12 |
13 | var guild: Guild = player.player_resource.guild
14 | var data: Dictionary
15 | if not guild:
16 | return {}
17 | data = {"name": guild.guild_name}
18 | return data
19 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/guild.self.gd.uid:
--------------------------------------------------------------------------------
1 | uid://caon7j6k57x08
2 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/inventory.get.gd:
--------------------------------------------------------------------------------
1 | extends DataRequestHandler
2 |
3 |
4 | func data_request_handler(
5 | peer_id: int,
6 | instance: ServerInstance,
7 | args: Dictionary
8 | ) -> Dictionary:
9 | return instance.players_by_peer_id[peer_id].player_resource.inventory
10 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/inventory.get.gd.uid:
--------------------------------------------------------------------------------
1 | uid://mcj2qur7rdbe
2 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/item.equip.gd:
--------------------------------------------------------------------------------
1 | extends DataRequestHandler
2 |
3 |
4 | func data_request_handler(
5 | peer_id: int,
6 | instance: ServerInstance,
7 | args: Dictionary
8 | ) -> Dictionary:
9 | var item_id: int = args.get("id", 0)
10 |
11 | # Check if player has the weapon
12 | var player: Player = instance.players_by_peer_id.get(peer_id, null)
13 | if player and player.player_resource.inventory.has(item_id):
14 | var item: Item = ContentRegistryHub.load_by_id(&"items", item_id)
15 | if item:
16 | if item is GearItem and item.can_equip(player):
17 | player.state_synchronizer.set_by_path(^"EquipmentComponent:mainhand_id", item_id)
18 | elif item is ConsumableItem:
19 | item.on_use(player)
20 | return {}
21 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/item.equip.gd.uid:
--------------------------------------------------------------------------------
1 | uid://c2lqje8seabvj
2 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/profile.get.gd:
--------------------------------------------------------------------------------
1 | extends DataRequestHandler
2 |
3 |
4 | func data_request_handler(
5 | peer_id: int,
6 | instance: ServerInstance,
7 | args: Dictionary
8 | ) -> Dictionary:
9 | var to_get: int = args.get("q", 0)
10 | if not to_get:
11 | return {}
12 | var target_player: Player = instance.players_by_peer_id.get(to_get, null)
13 | if not target_player:
14 | return {}
15 | var player_resource: PlayerResource = target_player.player_resource
16 | var profile: Dictionary = {
17 | "name": player_resource.display_name,
18 | "stats": {
19 | "money": player_resource.golds,
20 | "skin_id": player_resource.skin_id,
21 | "character_class": "???",
22 | "level": player_resource.level
23 | }
24 | }
25 | return profile
26 |
--------------------------------------------------------------------------------
/source/server/world/components/data_request_handlers/profile.get.gd.uid:
--------------------------------------------------------------------------------
1 | uid://c05nj5dsua3q3
2 |
--------------------------------------------------------------------------------
/source/server/world/components/instance_manager.gd.uid:
--------------------------------------------------------------------------------
1 | uid://d1fja2um2iixv
2 |
--------------------------------------------------------------------------------
/source/server/world/components/instance_server.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cyey5t0ublhro
2 |
--------------------------------------------------------------------------------
/source/server/world/components/world_database.gd.uid:
--------------------------------------------------------------------------------
1 | uid://d2driy4n25j0s
2 |
--------------------------------------------------------------------------------
/source/server/world/components/world_manager_client.gd.uid:
--------------------------------------------------------------------------------
1 | uid://cf4xahse7mg4d
2 |
--------------------------------------------------------------------------------
/source/server/world/components/world_server.gd.uid:
--------------------------------------------------------------------------------
1 | uid://dt8py6evrtkvk
2 |
--------------------------------------------------------------------------------
/source/server/world/data/guild.gd:
--------------------------------------------------------------------------------
1 | class_name Guild
2 | extends Resource
3 |
4 |
5 | @export var guild_name: String
6 | @export var leader_id: int
7 | ## player_id: rank_name
8 | @export var members: Dictionary[int, String]
9 |
10 |
11 | func add_member(player_id: int, rank: String) -> void:
12 | members[player_id] = rank
13 |
14 |
15 | func remove_member(player_id: int) -> void:
16 | members.erase(player_id)
17 |
--------------------------------------------------------------------------------
/source/server/world/data/guild.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bnw6yvttm5kp7
2 |
--------------------------------------------------------------------------------
/source/server/world/data/server_roles.gd:
--------------------------------------------------------------------------------
1 | class_name ServerRoles
2 | extends Resource
3 |
4 | # Lower the priority, less access to commands it has.
5 | # Make sure to leave the highest priority (100) to the developer/higher role
6 | # as it will have access to every command.
7 |
8 | @export var roles: Dictionary[String, Dictionary] = {
9 | "default": {
10 | "priority": 0,
11 | "commands": []
12 | },
13 | "moderator": {
14 | "priority": 1,
15 | "commands": []
16 | },
17 | "admin": {
18 | "priority": 2,
19 | "commands": []
20 | },
21 | "senior_admin": {
22 | "priority": 100,
23 | "commands": []
24 | }
25 | }
26 |
27 |
28 | func get_roles() -> Dictionary:
29 | return roles
30 |
31 |
32 | func create_role() -> void:
33 | pass
34 |
35 |
36 | func delete_role() -> void:
37 | pass
38 |
--------------------------------------------------------------------------------
/source/server/world/data/server_roles.gd.uid:
--------------------------------------------------------------------------------
1 | uid://c8vk2auuxjodx
2 |
--------------------------------------------------------------------------------
/source/server/world/data/server_roles.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="ServerRoles" load_steps=2 format=3 uid="uid://dvqbph1xfjbuj"]
2 |
3 | [ext_resource type="Script" uid="uid://c8vk2auuxjodx" path="res://source/server/world/data/server_roles.gd" id="1_rm64p"]
4 |
5 | [resource]
6 | script = ExtResource("1_rm64p")
7 | roles = Dictionary[String, Dictionary]({
8 | "admin": {
9 | "commands": [],
10 | "priority": 2
11 | },
12 | "default": {
13 | "commands": [],
14 | "priority": 0
15 | },
16 | "moderator": {
17 | "commands": [],
18 | "priority": 1
19 | },
20 | "senior_admin": {
21 | "commands": [],
22 | "priority": 100
23 | }
24 | })
25 | metadata/_custom_type_script = "uid://c8vk2auuxjodx"
26 |
--------------------------------------------------------------------------------
/source/server/world/data/world_player_data.gd.uid:
--------------------------------------------------------------------------------
1 | uid://b0vab61d5a3tr
2 |
--------------------------------------------------------------------------------
/source/server/world/deprecated/camera_probe.gd.uid:
--------------------------------------------------------------------------------
1 | uid://ba2vavuatms85
2 |
--------------------------------------------------------------------------------
/source/server/world/world_main.gd.uid:
--------------------------------------------------------------------------------
1 | uid://bml22pkupxow5
2 |
--------------------------------------------------------------------------------