Advanced Search
Search Results
108 total results found
Mobs
Mobs are defined in one main class: mob this mob class implements the combat component, health bars, targeting?, loot/exp drop purposefully excluded is pathfinding
Crusade Boi / Fanatic - Meritus
I have a hammer, a sword and a spoon and I shall create the work of god, slay his enemies and feed those in need. The food is the life, and may god nurture us all. Eat, pray, slay the unbelievers - what a lovely afternoon! “I fed the hungry with these han...
monitoring
import subprocessimport requests def run_ssh_command(): # SSH command ssh_command = "ssh -p 54231 monitoring@netvm1.shiny.space" # Run the SSH command and capture the output try: result = subprocess.check_output(ssh_command, shell=True,...
Joining and Leaving a Server
Currently, the game can only be joined on a dedicated server. This server needs to be built with a separate build template, which currently only runs on linux. A dedicated server uses the "dedicated_server" feature, which allows for queries to determine whethe...
Movement
Player movement is controlled by the handle_movement function in the player script, which is called in _physics_process. It uses the direction variable that is synced from the player_input node. player_input generated the direction vector based on the directi...
Animal Boi - Krashali
Are you still gonna eat that? Shapeshifter, but locked to one form per role. Melee form is sort of a raven, not sure about other ones
Python and venv
Python is supposed to be simple. but if you want your scripts to not break at arbitrary times, you'll need to deal with some complexity. this page explains it mostly specific to red hat enterprise linux, but it should be similar on other distros. problem Fir...
Spell Dictionary
Spells are the combat skills that players, NPCs and interactables use to affect players and NPCs. They can be divided into damage, heal, dot, hot, buff, debuff, and aura spells. All spell data are contained in the data/db_spells.json file. The spell data are ...
Wheel
Raspberry Pi OS does not have the wheel group by default. It can be added with sudo groupadd wheel A user can then be added to the wheel group with sudo usermod -aG wheel username The -a flag appends the group, such that the user is not removed from all gr...
doas
doas can be installed with sudo apt install doas After this, a config file must be created, optionally after installing vim with sudo apt install vim sudo vim /etc/doas.conf The content of the config file should then be set to permit setenv {PATH=/usr/lo...
ssh
The Raspberry Pi OS can be set up with an rsa key already authorized. If this is not the case, a new public key must be added. The new key must be moved into the file /home/username/.ssh/authorized_keys Afterwards, the default port for ssh connections must b...
BaseSpell Class
Spells inherit from the BaseSpell class, which contains some functionality that is shared between all spells. This class contains the dictionaries that store spell data, the cooldown timer, and the flag that determines whether a spell uses mouseover targeting....
Interactables
Interactables are objects in the game world that can be interacted with, and trigger a specific effect when this is done. Effects can be spells cast on the interactable target, or other specified targets, or changes made to the game world. Technically, virtual...
Creating New Spells
New spells are intended to be simple to add, if they do not do esoteric things. In particular spells that deal damage, heal, apply a buff, debuff or absorb shield, or combine these elements, should be fairly simple to implement. To add a new spell, a few steps...
Spell Container
The spell_container scene consists of a node of type Node, and is used as a parent node for all individual spell scenes that a unit or interactable has available. The spell_container script contains a few functions. spell_entrypoint is the function that recei...
Auras
Auras are temporary or permanent effects on a unit. They can be DoTs, HoTs, buffs, debuffs or absorbs. Every unit has an aura_container scene, which has a Node type root node, and contains Node type nodes named dot_container, hot_container, buff_container, deb...
Entering the Combat Script
There are a number of functions that are intended as entrypoints into the combat script, which are called by spell scripts. The appropriate function must be called to properly proceed through a combat event. combat_event_entrypointThis function serves as the ...
Combat Events
Combat events are damage, healing and aura events that are reached via the entrypoints into the combat script. They calculate the magnitude of a spell, unless prescribed, check for avoidance and ciritcal hits, apply the hp change or aura to the target, and log...
Checks
There are a few checks that the combat script requires to function. is_criticalThis function checks whether a hit is critical. It uses the crit modifier of a spell and the base critical hit chance of the source as arguments. A random number generator is initi...
Value Application
The final part of the combat event sequence, before the logging, is the application of the final spell value to the absorb shields and health of the target. apply_damageThis function applies damage to the health of the target, and returns the difference betwe...