Skip to content

Commit

Permalink
Version 5 (#9)
Browse files Browse the repository at this point in the history
* create base for new config system

* add more helper functions for handling config

* fix oversight with read_config_with_default not returning proper if setting default

* repurpose global.debug variable for config

* create base for the new debug keybind system

* change how config is read and loaded to avoid opening file too much

* add function for checking if debug keybind is active

* update function calls of old active feature key to new debug keybind checker

* remove screenshot from the game's debug check

* fix config function not calling global variable

* add hitbox as a debug keybind

* add new "basic" options

* add base for new rng rigging system

* add new other keybind base system

* change a few practice modes to have internal API

* add internal api for snowgrave plot

* changed party selector API (potentially broken since untested)

* change ch1 mashing stat display API

* change room warping API

* change timer variables to be config driven

* change split preset system to work with new config

* refix battle timer and clean up segment timer

* fix splits timer to work with new system

* implement first timer part of new menu

* reintegrate splits preset creator

* add debug keybinds base options

* add misc keybinds menu

* add basic item giver

* add basic party selector to menu

* add plot warp to menu

* add snowgrave plot warp to menu

* add room warp with typing room name

* improvements to room search

* fix numbers in room search

* improve saves browsing and readd feature

* make color ui menu work in new config

* remove dead code

* fix vanilla debug checks for ch1

* redesign how mod options disables keybinds

* debug mode persistance fixed

* add ui color for scrollbar

* improved scrollbar function

* fix bug with the font in mod options

* fix special instructions

* remove dead code

* fix split preset highlighting

* improve split creator

* add proper unkillable code for boss practice mode

* add reset default keybinds functionality

* nearly finish item selector

* rename "game flags" to more descriptive name

* change the locking for game data on savefiles

* add chapter select check for room warping

* add menu descriptions and proper scrolling

* add description to the majority of options

* final mod option fixes

* more survey program compatibility

* add misc options in the menu

* fix missing name

* fix misplaced break

* fix scrolling not being quite right

* update mod version

* adding enumeration

* remove descriptions from preset creation instructions

* add survey program split preset compatibility

* update readme
  • Loading branch information
nhaar authored Sep 12, 2024
1 parent adab952 commit d27f5ce
Show file tree
Hide file tree
Showing 101 changed files with 3,014 additions and 2,219 deletions.
14 changes: 12 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,17 @@
# Keucher Mod
Keucher Mod is a DELTARUNE speedrun practice mod

Keucher Mod, created by Keucher, is a DELTARUNE speedrun practice mod.
# Installation

1. Download [the latest version of the mod](https://github.com/nhaar/keucher-mod/releases/latest). In the `assets` section, choose the patch you will use
2. Choose the ROM patcher you prefer, if you don't have any, [this one is recommended](https://www.marcrobledo.com/RomPatcher.js/)
3. For the "ROM file", select the `data.win` from your DELTARUNE game files.
4. For the "Patch file", select the patch appropriate for your DELTARUNE version.
5. Apply the patch, and save the generated file as `data.win` in the game folder, and the mod will be installed

# Contributing

See the [wiki](https://github.com/nhaar/keucher-mod/wiki) for how to contribute

# Credits

This repository started on version 4 of Keucher Mod which is based on version 3, which was primarily done by Keucher, with added help from Ocean Bagel
170 changes: 0 additions & 170 deletions src/main.csx
Original file line number Diff line number Diff line change
Expand Up @@ -108,176 +108,6 @@ class KeucherModLoader : UMPLoader
}
return objects.Select(s => $"gml_Object_obj_{s}_Create_0").ToList();
}

// convention: UMP enums use screaming snake case for enum names and snake case for enum values

public enum FEATURE_STATE
{
never,
always,
debug
}

public enum KEYBINDING
{
save = 0,
load = 1,
reload = 2,
speed = 3,
gif = 4,
next_room = 5,
previous_room = 6,
heal = 7,
instant_win = 8,
toggle_tp = 9,
toggle_debug = 10,
stop_sounds = 11,
reset_tempflags = 12,
warp_room = 13,
toggle_hitboxes = 14,
make_visible = 15,
snowgrave_plot = 16,
change_party = 17,
side_action = 18,
no_clip = 19,
get_item = 20,
plot_warp = 21,
igt_mode = 22,
igt_room = 23,
toggle_timer = 24,
reset_timer = 25,
store_savestate = 26,
load_savestate = 27,
toggle_crit_mode = 28,
toggle_pattern_mode = 29,
next_crit_pattern = 30,
previous_crit_pattern = 31,
toggle_rouxls = 32,
next_house_pattern = 33,
previous_house_pattern = 34,
toggle_boss = 35,
next_boss_attack = 36,
previous_boss_attack = 37,
screenshot = 38
}

public enum OPTION_STATE
{
default_state,
/// <summary>
/// For the option that shows all features
/// </summary>
features,
/// <summary>
/// For the options of a single feature
/// </summary>
single_feature,
keybind_assign,
splits,
split_assign,
split_creator,
split_pick,
general_options,
ui_colors,
color_picker,
/// <summary>
/// In this state, the save files are displayed
/// </summary>
saves
}

public enum DEFAULT_OPTION
{
feature,
current_split,
create_split,
timer_precision,
options,
/// <summary>
/// Option that allows to browse saves
/// </summary>
saves
}

public enum BUTTON_STATE
{
none,
hover,
press,
highlight
}

/// <summary>
/// The state of the boundary box visibility
/// </summary>
public enum BOUNDARY_BOX_STATE
{
/// <summary>
/// No boundary boxes are visible
/// </summary>
none,
/// <summary>
/// Only the boundary boxes of the doors are visible
/// </summary>
doors,
/// <summary>
/// All boundary boxes are visible
/// </summary>
doors_and_walls
}

public enum GENERAL_OPTION
{
ui_colors
}

public enum UI_ELEMENT
{
background,
button,
text,
border,
button_hover,
button_press,
button_highlight
}

public enum COLOR_PICKER_OPTION
{
rgb,
hex
}

/// <summary>
/// Different modes for the IGT
/// </summary>
public enum IGT_MODE
{
/// <summary>
/// IGT is not watching for anything
/// </summary>
none,
/// <summary>
/// IGT watches for the room to change
/// </summary>
room_by_room,
/// <summary>
/// IGT watches for start of battle, splits every turn
/// </summary>
battle,
/// <summary>
/// IGT watches for the segment to start and end
/// </summary>
segment,
/// <summary>
/// IGT watches for the room to change or for battle to end and start
/// </summary>
room_and_battle,
/// <summary>
/// Same as room and battle with some extra triggers
/// </summary>
room_battle_extra
}
}

void BuildMod (DeltaruneVersion version)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
/// BEFORE
snd_play(snd_dtrans_lw)
/// CODE
global.current_event = "ch2start"
global.current_event = "ch2_start"
/// END
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ This patch is for having a way to split when going to bed in Chapter 2.
/// CODE
if (mystring == "\\E1* ... they're already asleep.../%" || mystring == "\\E1* …ふたりとも もう&  ねむってしまったのね。/%")
{
global.current_event = "ch2sleep"
global.current_event = "ch2_sleep"
}
/// END
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ This patch is for having a way to split when going to bed in Chapter 1.
/// CODE
if (mystring == "* (You decided to go to bed.)/%" || mystring == "* (ねむることにした)/%")
{
global.current_event = "ch1sleep"
global.current_event = "ch1_sleep"
}
/// END
2 changes: 1 addition & 1 deletion src/mod/all_chapters/IGT/events/o_bq_whitefade_Step_0.gml
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
/// AFTER
snd_play(snd_explosion)
/// CODE
global.current_event = "gigaend"
global.current_event = "ch2_gigaend"
/// END
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ snd_play_ch1(snd_hurt1_ch1)
snd_play(snd_hurt1)
#endif
/// CODE
global.current_event = "captured"
global.current_event = "ch1_captured"
/// END
2 changes: 1 addition & 1 deletion src/mod/all_chapters/IGT/events/obj_ch2_city08_Step_0.gml
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
/// AFTER
c_wait(70)
/// CODE
global.current_event = "city2end"
global.current_event = "ch2_city2end"
/// END
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
/// IMPORT .ignore ifndef DEMO

global.current_event = "cyberend"
global.current_event = "ch2_cyberend"
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
/// AFTER
image_index = 1
/// CODE
global.current_event = "doorslam"
global.current_event = "ch1_ct_doorslam"
/// END
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/// PATCH
/// PREPEND
global.current_event = "kingdefeat"
global.current_event = "ch1_kingdefeat"
/// END
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
/// BEFORE
for (i = 0; i < 20; i++)
/// CODE
global.current_event = "djsend"
global.current_event = "ch2_djsend"
/// END
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
/// AFTER
global.plot = 156
/// CODE
global.current_event = "escaped"
global.current_event = "ch1_escaped"
/// END
10 changes: 0 additions & 10 deletions src/mod/all_chapters/IGT/events/obj_shortcut_door_Step_0.gml

This file was deleted.

Loading

0 comments on commit d27f5ce

Please sign in to comment.