Skills, auto-attack, aura and chain lightning rework, Esc, cache fix
- Skill bar: no art selection; slot 0 is the right-click art, keys 0-6 cast slots directly; cooldown labels in exact seconds; slot 0 set apart. - Arts regenerate on their own (casting no longer refills the group). - Auto-attack after targeting or casting at a hostile creature, at the speed of a held button. - Auras can be recast while active (renew, no second visual). - Blicke wie Klingen hits every enemy in range, physical, with life leech. - Blitzschlag steers the game's own chain: 3 + level/5 hits, 1 + level/10 chains, re-hits a lone enemy. - Weapon sets: click selects, drag only from the selected set; the leftmost set is clickable (signed hit tests). - Esc closes open windows before opening the game menu. - HUD: standalone buttons and texts are centred. - Record cache sized for widened views (town lag while walking). - Shared game code: orders, fx events, text drawing, cooldowns, effects. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
f721d2a486
commit
1fd89524d3
41 files changed
+2347
-214
No files matched your search
+12
-13
@@ -5,9 +5,9 @@
|
||||
// several event receivers (engine 0x618130, UI manager 0x757120, taskbar
|
||||
// 0x6e1970). This mod reads the raw key messages instead (virtual keys,
|
||||
// independent of the keyboard layout): a bound key's messages are swallowed
|
||||
// and its action runs. Slot keys call the taskbar's selection directly
|
||||
// (src/mods/skillbar.cpp); keys standing in for an original hotkey post that
|
||||
// hotkey's key event to the game's event kernel, the way the window
|
||||
// and its action runs. Skill keys cast their slot (src/mods/skillkeys.cpp),
|
||||
// weapon set keys select it on the taskbar; keys standing in for an original
|
||||
// hotkey post that hotkey's key event to the game's event kernel, the way the window
|
||||
// procedure does (the kernel dispatches it right away, on the window thread).
|
||||
//
|
||||
// While a text field has the keyboard, or Ctrl / Alt is held, keys pass
|
||||
@@ -15,7 +15,7 @@
|
||||
//
|
||||
// sacred_re.ini (key names: A-Z, 0-9, F1-F24, Space, None):
|
||||
// [keys]
|
||||
// SkillSlot1=1 ... SkillSlot7=7 ; select and cast combat-art slot
|
||||
// SkillSlot0=0 ... SkillSlot6=6 ; cast combat-art slot (0 = right mouse button art)
|
||||
// WeaponSet1=F1 ... WeaponSet7=F7 ; select weapon set
|
||||
// ActionSlot3=G ; what W did (W is movement)
|
||||
// PickUp=V ; what A did (pick up items nearby)
|
||||
@@ -85,13 +85,13 @@ struct Binding {
|
||||
};
|
||||
|
||||
Binding g_bindings[] = {
|
||||
{"SkillSlot1", "1", Kind::SkillSlot, 0, 0},
|
||||
{"SkillSlot2", "2", Kind::SkillSlot, 1, 0},
|
||||
{"SkillSlot3", "3", Kind::SkillSlot, 2, 0},
|
||||
{"SkillSlot4", "4", Kind::SkillSlot, 3, 0},
|
||||
{"SkillSlot5", "5", Kind::SkillSlot, 4, 0},
|
||||
{"SkillSlot6", "6", Kind::SkillSlot, 5, 0},
|
||||
{"SkillSlot7", "7", Kind::SkillSlot, 6, 0},
|
||||
{"SkillSlot0", "0", Kind::SkillSlot, 0, 0},
|
||||
{"SkillSlot1", "1", Kind::SkillSlot, 1, 0},
|
||||
{"SkillSlot2", "2", Kind::SkillSlot, 2, 0},
|
||||
{"SkillSlot3", "3", Kind::SkillSlot, 3, 0},
|
||||
{"SkillSlot4", "4", Kind::SkillSlot, 4, 0},
|
||||
{"SkillSlot5", "5", Kind::SkillSlot, 5, 0},
|
||||
{"SkillSlot6", "6", Kind::SkillSlot, 6, 0},
|
||||
{"WeaponSet1", "F1", Kind::WeaponSet, 0, 0},
|
||||
{"WeaponSet2", "F2", Kind::WeaponSet, 1, 0},
|
||||
{"WeaponSet3", "F3", Kind::WeaponSet, 2, 0},
|
||||
@@ -149,8 +149,7 @@ void Press(const Binding& binding, int vk) {
|
||||
const auto slot = static_cast<unsigned>(binding.index);
|
||||
switch (binding.kind) {
|
||||
case Kind::SkillSlot:
|
||||
mods::skillkeys::CastOnSelect(slot, vk);
|
||||
mods::skillbar::SelectSkillSlot(slot);
|
||||
mods::skillkeys::KeyPressed(slot, vk);
|
||||
break;
|
||||
case Kind::WeaponSet:
|
||||
mods::skillbar::SelectWeaponSet(slot);
|
||||
|
||||
Reference in new issue
Block a user