Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
b1a6695
it begins
SapphicOverload Apr 16, 2024
801a432
Update gun.dm
SapphicOverload Apr 16, 2024
e9f7acd
misc fixes
SapphicOverload Apr 16, 2024
f956404
Update gun.dm
SapphicOverload Apr 16, 2024
4a3115d
more fixes
SapphicOverload Apr 16, 2024
50f29c1
Update lightning_flow.dm
SapphicOverload Apr 16, 2024
fe60798
i may be stupid
SapphicOverload Apr 16, 2024
062c837
Update suicide.dm
SapphicOverload Apr 16, 2024
07e8351
fix mech strafing
SapphicOverload Apr 16, 2024
3487ccb
Update mecha.dm
SapphicOverload Apr 16, 2024
8dfd366
let there be qol
SapphicOverload Apr 16, 2024
e2568b8
ghost stuff
SapphicOverload Apr 16, 2024
1bc09e7
Update screen_clockwork.dmi
SapphicOverload Apr 16, 2024
a78cbee
does the stuff
SapphicOverload Apr 16, 2024
e3cf176
stuff
SapphicOverload Apr 16, 2024
8b3b801
Merge remote-tracking branch 'upstream/master' into combat-mode
SapphicOverload Apr 16, 2024
8200e58
Update worldbreaker.dm
SapphicOverload Apr 17, 2024
4580031
moltial arts
Moltijoe Apr 17, 2024
6042322
Update worldbreaker.dm
Moltijoe Apr 17, 2024
a69380d
CRITICAL FIX
SapphicOverload Apr 17, 2024
3aa6bbd
mech stuff
SapphicOverload Apr 17, 2024
b002129
Update tables_racks.dm
SapphicOverload Apr 17, 2024
d28e7a8
stuff
SapphicOverload Apr 17, 2024
6fe38c7
fix seismic arm
SapphicOverload Apr 18, 2024
783cc97
buster/seismic arm fix 2
SapphicOverload Apr 18, 2024
70b6e07
Merge remote-tracking branch 'upstream/master' into combat-mode
SapphicOverload Apr 18, 2024
6eac40f
saber + lockers
SapphicOverload Apr 18, 2024
fd25c7c
stuff
SapphicOverload Apr 18, 2024
de06ca6
hand tele and pre_attack_secondary
SapphicOverload Apr 19, 2024
30bab04
more right click acts
SapphicOverload Apr 19, 2024
a4262e4
Update closets.dm
SapphicOverload Apr 19, 2024
7ac21cd
who did this
SapphicOverload Apr 19, 2024
bd0b20f
heck
SapphicOverload Apr 19, 2024
a74e09b
Update mob.dm
SapphicOverload Apr 19, 2024
4ab8db3
Update items.dm
SapphicOverload Apr 20, 2024
3d0af69
darkspawn fix
SapphicOverload Apr 21, 2024
a8d7272
Merge remote-tracking branch 'upstream/master' into combat-mode
SapphicOverload Apr 21, 2024
8370219
Merge remote-tracking branch 'upstream/master' into combat-mode
SapphicOverload Apr 21, 2024
ba59b87
fixes wound healing
SapphicOverload Apr 22, 2024
ab60ed7
Update item_attack.dm
SapphicOverload Apr 22, 2024
74958e0
minor qol stuff
SapphicOverload Apr 23, 2024
a2525ca
Merge remote-tracking branch 'upstream/master' into combat-mode
SapphicOverload Apr 23, 2024
2f29dbe
Update kinetic_crusher.dm
SapphicOverload Apr 24, 2024
10cb9e4
Update kinetic_crusher.dm
SapphicOverload Apr 24, 2024
0379e50
runtime fix
SapphicOverload Apr 24, 2024
2cf719f
Update kinetic_crusher.dm
SapphicOverload Apr 24, 2024
34064be
Merge remote-tracking branch 'upstream/master' into combat-mode
SapphicOverload Apr 25, 2024
4954f82
Update screen_plasmafire.dmi
SapphicOverload Apr 27, 2024
c2436fb
Merge remote-tracking branch 'upstream/master' into combat-mode
SapphicOverload Apr 27, 2024
907717b
stuff
SapphicOverload Apr 28, 2024
d55c907
syringes
SapphicOverload Apr 28, 2024
cfd2a99
i am very silly
SapphicOverload Apr 28, 2024
a1fd8a0
death to /obj/item/toolset_handler
SapphicOverload Apr 29, 2024
ad69efc
Update assembly.dm
SapphicOverload Apr 29, 2024
3e7bb2b
surgery fix + hypo stuff
SapphicOverload Apr 29, 2024
d626b4f
Merge remote-tracking branch 'upstream/master' into combat-mode
SapphicOverload Apr 30, 2024
fdf1eb6
mantis fix
SapphicOverload Apr 30, 2024
aaa9e0a
gas harpoon
SapphicOverload Apr 30, 2024
52e2fae
Merge remote-tracking branch 'upstream/master' into combat-mode
SapphicOverload May 2, 2024
096e6c3
Merge remote-tracking branch 'upstream/master' into combat-mode
SapphicOverload May 4, 2024
31e1da9
Merge remote-tracking branch 'upstream/master' into combat-mode
SapphicOverload May 8, 2024
711560a
atmos machines
SapphicOverload May 8, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 10 additions & 10 deletions code/__DEFINES/combat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,16 @@
#define EFFECT_DROWSY "drowsy"
#define EFFECT_JITTER "jitter"

/// Alternate attack defines. Return these at the end of procs like afterattack_secondary.
/// Calls the normal attack proc. For example, if returned in afterattack_secondary, will call afterattack.

/// Will continue the chain depending on the return value of the non-alternate proc, like with normal attacks.
#define SECONDARY_ATTACK_CALL_NORMAL 1
/// Cancels the attack chain entirely.
#define SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN 2
/// Proceed with the attack chain, but don't call the normal methods.
#define SECONDARY_ATTACK_CONTINUE_CHAIN 3

//Bitflags defining which status effects could be or are inflicted on a mob
#define CANSTUN (1<<0)
#define CANKNOCKDOWN (1<<1)
Expand Down Expand Up @@ -129,16 +139,6 @@
#define ATTACK_EFFECT_MECHTOXIN "mech_toxin"
#define ATTACK_EFFECT_BOOP "boop" //Honk

//intent defines
#define INTENT_HELP "help"
#define INTENT_GRAB "grab"
#define INTENT_DISARM "disarm"
#define INTENT_HARM "harm"
//NOTE: INTENT_HOTKEY_* defines are not actual intents!
//they are here to support hotkeys
#define INTENT_HOTKEY_LEFT "left"
#define INTENT_HOTKEY_RIGHT "right"

//the define for visible message range in combat
#define COMBAT_MESSAGE_RANGE 3
#define DEFAULT_MESSAGE_RANGE 7
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@
#define COMSIG_ATOM_DIR_CHANGE "atom_dir_change"
///from base of atom/setDir(): (old_dir, new_dir). Called after the direction changes.
#define COMSIG_ATOM_POST_DIR_CHANGE "atom_dir_change"
///from base of atom/movable/keybind_face_direction(): (dir). Called before turning with the movement lock key.
#define COMSIG_MOVABLE_KEYBIND_FACE_DIR "keybind_face_dir"
///ignores the movement lock key, used for turning while strafing in a mech
#define COMSIG_IGNORE_MOVEMENT_LOCK (1<<0)
///from base of atom/setShift(): (dir). Called before the shift changes.
#define COMSIG_ATOM_SHIFT_CHANGE "atom_shift_change"
/// from /datum/component/singularity/proc/can_move(), as well as /obj/energy_ball/proc/can_move()
Expand Down
3 changes: 3 additions & 0 deletions code/__DEFINES/dcs/signals/signals_mob/signals_mob.dm
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@
#define COMSIG_MOB_SWAP_HANDS "mob_swap_hands"
///from base of /mob/verb/pointed: (atom/A)
#define COMSIG_MOB_POINTED "mob_pointed"
///from base of /mob/living/start_pulling: (atom/movable/AM, state, force)
#define COMSIG_MOB_PULL "mob_pull"
#define COMPONENT_BLOCK_PULL (1<<0) // blocks pulling
///Mob is trying to open the wires of a target [/atom], from /datum/wires/interactable(): (atom/target)
#define COMSIG_TRY_WIRES_INTERACT "try_wires_interact"
#define COMPONENT_CANT_INTERACT_WIRES (1<<0)
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@
#define ui_above_intent "EAST-3:24, SOUTH+1:7"
#define ui_movi "EAST-2:26,SOUTH:5"
#define ui_acti "EAST-3:24,SOUTH:5"
#define ui_combat_toggle "EAST-3:24,SOUTH:5"
#define ui_zonesel "EAST-1:28,SOUTH:5"
#define ui_acti_alt "EAST-1:28,SOUTH:5" //alternative intent switcher for when the interface is hidden (F12)
#define ui_crafting "EAST-4:22,SOUTH:5"
Expand Down
3 changes: 0 additions & 3 deletions code/__DEFINES/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -304,9 +304,6 @@ GLOBAL_LIST_INIT(donor_pdas, list(PDA_COLOR_NORMAL, PDA_COLOR_TRANSPARENT, PDA_C

#define MAX_PROC_DEPTH 195 // 200 proc calls deep and shit breaks, this is a bit lower to give some safety room

#define SYRINGE_DRAW 0
#define SYRINGE_INJECT 1

//gold slime core spawning
#define NO_SPAWN 0
#define HOSTILE_SPAWN 1
Expand Down
3 changes: 1 addition & 2 deletions code/__DEFINES/monkeys.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@
#define MONKEY_RECRUIT_PROB 25 // recruit a monkey near it
#define MONKEY_SWITCH_TARGET_PROB 25 // switch targets if it sees another enemy

#define MONKEY_RETALIATE_HARM_PROB 95 // probability for the monkey to aggro when attacked with harm intent
#define MONKEY_RETALIATE_DISARM_PROB 20 // probability for the monkey to aggro when attacked with disarm intent
#define MONKEY_RETALIATE_PROB 85 // probability for the monkey to aggro when attacked

#define MONKEY_HATRED_AMOUNT 4 // amount of aggro to add to an enemy when they attack user
#define MONKEY_HATRED_REDUCTION_PROB 25 // probability of reducing aggro by one when the monkey attacks
Expand Down
2 changes: 1 addition & 1 deletion code/__DEFINES/preferences.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#define MIDROUND_ANTAG (1<<6)
#define SOUND_INSTRUMENTS (1<<7)
#define SOUND_SHIP_AMBIENCE (1<<8)
#define SOUND_PRAYER_N_FAX (1<<9)
#define SOUND_PRAYER_N_FAX (1<<9)
#define ANNOUNCE_LOGIN (1<<10)
#define SOUND_ANNOUNCEMENTS (1<<11)
#define DISABLE_DEATHRATTLE (1<<12)
Expand Down
2 changes: 2 additions & 0 deletions code/__DEFINES/traits/declarations.dm
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_IGNOREDAMAGESLOWDOWN "ignoredamageslowdown"
/// Makes it so the mob can use guns regardless of tool user status
#define TRAIT_GUN_NATURAL "gunnatural"
/// Can't hold people up with guns, for whatever reason
#define TRAIT_NO_HOLDUP "no_holdup"
/// Causes death-like unconsciousness
#define TRAIT_DEATHCOMA "deathcoma"
/// The mob has the stasis effect.
Expand Down
12 changes: 6 additions & 6 deletions code/_onclick/ai.dm
Original file line number Diff line number Diff line change
Expand Up @@ -77,20 +77,20 @@
set_waypoint(A)
return

A.attack_ai(src)
A.attack_ai(src, modifiers)

/*
AI has no need for the UnarmedAttack() and RangedAttack() procs,
because the AI code is not generic; attack_ai() is used instead.
The below is only really for safety, or you can alter the way
it functions and re-insert it above.
*/
/mob/living/silicon/ai/UnarmedAttack(atom/A)
A.attack_ai(src)
/mob/living/silicon/ai/RangedAttack(atom/A)
A.attack_ai(src)
/mob/living/silicon/ai/UnarmedAttack(atom/A, proximity, modifiers)
A.attack_ai(src, modifiers)
/mob/living/silicon/ai/RangedAttack(atom/A, proximity, modifiers)
A.attack_ai(src, modifiers)

/atom/proc/attack_ai(mob/user)
/atom/proc/attack_ai(mob/user, modifiers)
return

/*
Expand Down
14 changes: 8 additions & 6 deletions code/_onclick/click.dm
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@

if(HAS_TRAIT(src, TRAIT_HANDS_BLOCKED))
changeNext_move(CLICK_CD_HANDCUFFED) //Doing shit in cuffs shall be vey slow
UnarmedAttack(A, FALSE)
UnarmedAttack(A, FALSE, modifiers)
return

if(in_throw_mode)
Expand All @@ -128,7 +128,8 @@
var/obj/item/W = get_active_held_item()

if(W == A)
W.attack_self(src)
if(!(LAZYACCESS(modifiers, RIGHT_CLICK) && W.attack_self_secondary(src, modifiers) != SECONDARY_ATTACK_CALL_NORMAL))
W.attack_self(src, modifiers)
update_inv_hands()
return

Expand All @@ -140,7 +141,7 @@
else
if(ismob(A))
changeNext_move(CLICK_CD_MELEE)
UnarmedAttack(A)
UnarmedAttack(A, FALSE, modifiers)
return

//Can't reach anything else in lockers or other weirdness
Expand All @@ -154,10 +155,11 @@
else
if(ismob(A))
changeNext_move(CLICK_CD_MELEE)
UnarmedAttack(A,1)
UnarmedAttack(A, TRUE, modifiers)
else
if(W)
W.afterattack(A,src,0,params)
if(!(LAZYACCESS(modifiers, RIGHT_CLICK) && W.afterattack_secondary(A, src, FALSE, params) != SECONDARY_ATTACK_CALL_NORMAL))
W.afterattack(A, src, FALSE, params)
else
RangedAttack(A,params)

Expand Down Expand Up @@ -261,7 +263,7 @@
proximity_flag is not currently passed to attack_hand, and is instead used
in human click code to allow glove touches only at melee range.
*/
/mob/proc/UnarmedAttack(atom/A, proximity_flag)
/mob/proc/UnarmedAttack(atom/A, proximity_flag, modifiers)
if(ismob(A))
changeNext_move(CLICK_CD_MELEE)
return
Expand Down
4 changes: 2 additions & 2 deletions code/_onclick/cyborg.dm
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
var/obj/item/W = get_active_held_item(TRUE)

if(!W && get_dist(src,A) <= interaction_range)
A.attack_robot(src)
A.attack_robot(src, modifiers)
return

if(W)
Expand All @@ -76,7 +76,7 @@
return

if(W == A)
W.attack_self(src)
W.attack_self(src, modifiers)
return

// cyborgs are prohibited from using storage items so we can I think safely remove (A.loc in contents)
Expand Down
8 changes: 4 additions & 4 deletions code/_onclick/hud/alien.dm
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,10 @@
using.screen_loc = ui_swaphand_position(owner,2)
static_inventory += using

using = new /atom/movable/screen/act_intent/alien(src)
using.icon_state = mymob.a_intent
static_inventory += using
action_intent = using
action_intent = new /atom/movable/screen/combattoggle/flashy(src)
action_intent.icon = ui_style
action_intent.screen_loc = ui_combat_toggle
static_inventory += action_intent

if(isalienhunter(mymob))
var/mob/living/carbon/alien/humanoid/hunter/H = mymob
Expand Down
8 changes: 4 additions & 4 deletions code/_onclick/hud/alien_larva.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
..()
var/atom/movable/screen/using

using = new /atom/movable/screen/act_intent/alien(src)
using.icon_state = mymob.a_intent
static_inventory += using
action_intent = using
action_intent = new /atom/movable/screen/combattoggle/flashy(src)
action_intent.icon = ui_style
action_intent.screen_loc = ui_combat_toggle
static_inventory += action_intent

healths = new /atom/movable/screen/healths/alien(src)
infodisplay += healths
Expand Down
13 changes: 4 additions & 9 deletions code/_onclick/hud/generic_dextrous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,10 @@
using.screen_loc = ui_swaphand_position(owner,2)
static_inventory += using

if(mymob.possible_a_intents)
if(mymob.possible_a_intents.len == 4)
// All possible intents - full intent selector
action_intent = new /atom/movable/screen/act_intent/segmented(src)
else
action_intent = new /atom/movable/screen/act_intent(src)
action_intent.icon = ui_style
action_intent.icon_state = mymob.a_intent
static_inventory += action_intent
action_intent = new /atom/movable/screen/combattoggle/flashy(src)
action_intent.icon = ui_style
action_intent.screen_loc = ui_combat_toggle
static_inventory += action_intent


zone_select = new /atom/movable/screen/zone_sel(src)
Expand Down
5 changes: 3 additions & 2 deletions code/_onclick/hud/human.dm
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,9 @@
using.screen_loc = UI_BOXAREA
static_inventory += using

action_intent = new /atom/movable/screen/act_intent/segmented(src)
action_intent.icon_state = mymob.a_intent
action_intent = new /atom/movable/screen/combattoggle/flashy(src)
action_intent.icon = ui_style
action_intent.screen_loc = ui_combat_toggle
static_inventory += action_intent

using = new /atom/movable/screen/mov_intent(src)
Expand Down
5 changes: 2 additions & 3 deletions code/_onclick/hud/monkey.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@
var/atom/movable/screen/using
var/atom/movable/screen/inventory/inv_box

action_intent = new /atom/movable/screen/act_intent(src)
action_intent = new /atom/movable/screen/combattoggle/flashy(src)
action_intent.icon = ui_style
action_intent.icon_state = mymob.a_intent
action_intent.screen_loc = ui_acti
action_intent.screen_loc = ui_combat_toggle
static_inventory += action_intent

using = new /atom/movable/screen/mov_intent(src)
Expand Down
7 changes: 4 additions & 3 deletions code/_onclick/hud/robot.dm
Original file line number Diff line number Diff line change
Expand Up @@ -146,9 +146,10 @@
var/atom/movable/screen/robot/modPC/tabletbutton = using
tabletbutton.robot = mymobR

//Intent
action_intent = new /atom/movable/screen/act_intent/robot(src)
action_intent.icon_state = mymob.a_intent
//Combat Mode
action_intent = new /atom/movable/screen/combattoggle/robot(src)
action_intent.icon = ui_style
action_intent.screen_loc = ui_combat_toggle
static_inventory += action_intent

//Health
Expand Down
61 changes: 35 additions & 26 deletions code/_onclick/hud/screen_objects.dm
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@
if(inv_item)
return inv_item.Click(location, control, params)

if(usr.attack_ui(slot_id))
if(usr.attack_ui(slot_id, params))
usr.update_inv_hands()
return TRUE

Expand Down Expand Up @@ -314,38 +314,47 @@
if(usr.stat == CONSCIOUS)
usr.dropItemToGround(usr.get_active_held_item())

/atom/movable/screen/act_intent
name = "intent"
icon_state = "help"
screen_loc = ui_acti

/atom/movable/screen/act_intent/Click(location, control, params)
usr.a_intent_change(INTENT_HOTKEY_RIGHT)
/atom/movable/screen/combattoggle
name = "toggle combat mode"
icon = 'icons/mob/screen_midnight.dmi'
icon_state = "combat_off"
screen_loc = ui_combat_toggle

/atom/movable/screen/act_intent/segmented/Click(location, control, params)
if(usr.client.prefs.toggles & INTENT_STYLE)
var/_x = text2num(params2list(params)["icon-x"])
var/_y = text2num(params2list(params)["icon-y"])
/atom/movable/screen/combattoggle/New(loc, ...)
. = ..()
update_appearance(UPDATE_ICON)

if(_x<=16 && _y<=16)
usr.a_intent_change(INTENT_HARM)
/atom/movable/screen/combattoggle/Click()
if(isliving(usr))
var/mob/living/owner = usr
owner.set_combat_mode(!owner.combat_mode, FALSE)
update_appearance(UPDATE_ICON)

else if(_x<=16 && _y>=17)
usr.a_intent_change(INTENT_HELP)
/atom/movable/screen/combattoggle/update_icon_state()
. = ..()
var/mob/living/user = hud?.mymob
if(!istype(user) || !user.client)
return
icon_state = user.combat_mode ? "combat" : "combat_off" //Treats the combat_mode

else if(_x>=17 && _y<=16)
usr.a_intent_change(INTENT_GRAB)
//Version of the combat toggle with the flashy overlay
/atom/movable/screen/combattoggle/flashy
///Mut appearance for flashy border
var/mutable_appearance/flashy

else if(_x>=17 && _y>=17)
usr.a_intent_change(INTENT_DISARM)
else
return ..()
/atom/movable/screen/combattoggle/flashy/update_overlays()
. = ..()
var/mob/living/user = hud?.mymob
if(!istype(user) || !user.client)
return

/atom/movable/screen/act_intent/alien
icon = 'icons/mob/screen_alien.dmi'
screen_loc = ui_movi
if(user.combat_mode)
if(!flashy)
flashy = mutable_appearance('icons/mob/screen_gen.dmi', "togglefull_flash")
flashy.color = "#C62727"
. += flashy

/atom/movable/screen/act_intent/robot
/atom/movable/screen/combattoggle/robot
icon = 'icons/mob/screen_cyborg.dmi'
screen_loc = ui_borg_intents

Expand Down
Loading