Merge remote-tracking branch 'origin/master' into hardsync-1.5
This commit is contained in:
@@ -81,30 +81,43 @@
|
||||
|
||||
///Everyone should now be on the station and have their normal gear. This is the place to give the special roles extra things
|
||||
/datum/game_mode/proc/post_setup(report) //Gamemodes can override the intercept report. Passing TRUE as the argument will force a report.
|
||||
//finalize_monster_hunters() Disabled for now
|
||||
if(!report)
|
||||
report = !CONFIG_GET(flag/no_intercept_report)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/display_roundstart_logout_report), ROUNDSTART_LOGOUT_REPORT_TIME)
|
||||
|
||||
if(prob(20)) //CIT CHANGE - adds a 20% chance for the security level to be the opposite of what it normally is
|
||||
if(prob(20)) //cit-change
|
||||
flipseclevel = TRUE
|
||||
|
||||
// if(CONFIG_GET(flag/reopen_roundstart_suicide_roles))
|
||||
// var/delay = CONFIG_GET(number/reopen_roundstart_suicide_roles_delay)
|
||||
// if(delay)
|
||||
// delay = (delay SECONDS)
|
||||
// else
|
||||
// delay = (4 MINUTES) //default to 4 minutes if the delay isn't defined.
|
||||
// addtimer(CALLBACK(GLOBAL_PROC, .proc/reopen_roundstart_suicide_roles), delay)
|
||||
|
||||
if(SSdbcore.Connect())
|
||||
var/sql
|
||||
var/list/to_set = list()
|
||||
var/arguments = list()
|
||||
if(SSticker.mode)
|
||||
sql += "game_mode = '[SSticker.mode]'"
|
||||
to_set += "game_mode = :game_mode"
|
||||
arguments["game_mode"] = SSticker.mode
|
||||
if(GLOB.revdata.originmastercommit)
|
||||
if(sql)
|
||||
sql += ", "
|
||||
sql += "commit_hash = '[GLOB.revdata.originmastercommit]'"
|
||||
if(sql)
|
||||
var/datum/DBQuery/query_round_game_mode = SSdbcore.NewQuery("UPDATE [format_table_name("round")] SET [sql] WHERE id = [GLOB.round_id]")
|
||||
to_set += "commit_hash = :commit_hash"
|
||||
arguments["commit_hash"] = GLOB.revdata.originmastercommit
|
||||
if(to_set.len)
|
||||
arguments["round_id"] = GLOB.round_id
|
||||
var/datum/db_query/query_round_game_mode = SSdbcore.NewQuery(
|
||||
"UPDATE [format_table_name("round")] SET [to_set.Join(", ")] WHERE id = :round_id",
|
||||
arguments
|
||||
)
|
||||
query_round_game_mode.Execute()
|
||||
qdel(query_round_game_mode)
|
||||
if(report)
|
||||
addtimer(CALLBACK(src, .proc/send_intercept, 0), rand(waittime_l, waittime_h))
|
||||
generate_station_goals()
|
||||
gamemode_ready = TRUE
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
|
||||
///Handles late-join antag assignments
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
icon_state = "colormate"
|
||||
|
||||
/obj/machinery/gear_painter/Destroy()
|
||||
inserted.forceMove(drop_location())
|
||||
if(inserted) //please i beg you do not drop nulls
|
||||
inserted.forceMove(drop_location())
|
||||
return ..()
|
||||
|
||||
/obj/machinery/gear_painter/attackby(obj/item/I, mob/living/user)
|
||||
|
||||
@@ -117,12 +117,6 @@
|
||||
if(user.a_intent == INTENT_HARM)
|
||||
return ..()
|
||||
|
||||
//callback proc used on stacks use_tool to stop unnecessary amounts being wasted from spam clicking.
|
||||
/obj/structure/frame/computer/proc/check_state(target_state)
|
||||
if(state == target_state)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/structure/frame/computer/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(state == 4)
|
||||
|
||||
@@ -21,6 +21,11 @@
|
||||
circuit = null
|
||||
qdel(src)
|
||||
|
||||
//callback proc used on stacks use_tool to stop unnecessary amounts being wasted from spam clicking.
|
||||
/obj/structure/frame/proc/check_state(target_state)
|
||||
if(state == target_state)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/structure/frame/machine
|
||||
name = "machine frame"
|
||||
@@ -84,7 +89,7 @@
|
||||
if(!P.tool_start_check(user, amount=5))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start to add cables to the frame...</span>")
|
||||
if(P.use_tool(src, user, 20, volume=50, amount=5))
|
||||
if(P.use_tool(src, user, 20, volume=50, amount=5, extra_checks = CALLBACK(src, .proc/check_state, 1)))
|
||||
to_chat(user, "<span class='notice'>You add cables to the frame.</span>")
|
||||
state = 2
|
||||
icon_state = "box_1"
|
||||
@@ -93,25 +98,23 @@
|
||||
if(P.tool_behaviour == TOOL_SCREWDRIVER && !anchored)
|
||||
user.visible_message("<span class='warning'>[user] disassembles the frame.</span>", \
|
||||
"<span class='notice'>You start to disassemble the frame...</span>", "You hear banging and clanking.")
|
||||
if(P.use_tool(src, user, 40, volume=50))
|
||||
if(state == 1)
|
||||
to_chat(user, "<span class='notice'>You disassemble the frame.</span>")
|
||||
var/obj/item/stack/sheet/metal/M = new (loc, 5)
|
||||
M.add_fingerprint(user)
|
||||
qdel(src)
|
||||
if(P.use_tool(src, user, 40, volume=50, extra_checks = CALLBACK(src, .proc/check_state, 1)))
|
||||
to_chat(user, "<span class='notice'>You disassemble the frame.</span>")
|
||||
var/obj/item/stack/sheet/metal/M = new (loc, 5)
|
||||
M.add_fingerprint(user)
|
||||
qdel(src)
|
||||
return
|
||||
if(P.tool_behaviour == TOOL_WRENCH)
|
||||
to_chat(user, "<span class='notice'>You start [anchored ? "un" : ""]securing [name]...</span>")
|
||||
if(P.use_tool(src, user, 40, volume=75))
|
||||
if(state == 1)
|
||||
to_chat(user, "<span class='notice'>You [anchored ? "un" : ""]secure [name].</span>")
|
||||
setAnchored(!anchored)
|
||||
if(P.use_tool(src, user, 40, volume=75, extra_checks = CALLBACK(src, .proc/check_state, 1)))
|
||||
to_chat(user, "<span class='notice'>You [anchored ? "un" : ""]secure [name].</span>")
|
||||
setAnchored(!anchored)
|
||||
return
|
||||
|
||||
if(2)
|
||||
if(P.tool_behaviour == TOOL_WRENCH)
|
||||
to_chat(user, "<span class='notice'>You start [anchored ? "un" : ""]securing [name]...</span>")
|
||||
if(P.use_tool(src, user, 40, volume=75))
|
||||
if(P.use_tool(src, user, 40, volume=75, extra_checks = CALLBACK(src, .proc/check_state, 2)))
|
||||
to_chat(user, "<span class='notice'>You [anchored ? "un" : ""]secure [name].</span>")
|
||||
setAnchored(!anchored)
|
||||
return
|
||||
@@ -169,7 +172,7 @@
|
||||
|
||||
if(P.tool_behaviour == TOOL_WRENCH && !circuit.needs_anchored)
|
||||
to_chat(user, "<span class='notice'>You start [anchored ? "un" : ""]securing [name]...</span>")
|
||||
if(P.use_tool(src, user, 40, volume=75))
|
||||
if(P.use_tool(src, user, 40, volume=75, extra_checks = CALLBACK(src, .proc/check_state, 3)))
|
||||
to_chat(user, "<span class='notice'>You [anchored ? "un" : ""]secure [name].</span>")
|
||||
setAnchored(!anchored)
|
||||
return
|
||||
|
||||
@@ -1062,7 +1062,7 @@
|
||||
to_chat(user, "<span class='warning'>The airlock's motors resist your efforts to force it!</span>")
|
||||
else if(locked)
|
||||
to_chat(user, "<span class='warning'>The airlock's bolts prevent it from being forced!</span>")
|
||||
else if( !welded && !operating)
|
||||
else if(!welded && !operating)
|
||||
if(!beingcrowbarred) //being fireaxe'd
|
||||
var/obj/item/fireaxe/axe = I
|
||||
if(!axe.wielded)
|
||||
@@ -1073,6 +1073,8 @@
|
||||
INVOKE_ASYNC(src, (density ? .proc/open : .proc/close), 2)
|
||||
|
||||
if(I.tool_behaviour == TOOL_CROWBAR)
|
||||
if(!I.can_force_powered)
|
||||
return
|
||||
if(hasPower() && isElectrified())
|
||||
shock(user,100)//it's like sticking a forck in a power socket
|
||||
return
|
||||
|
||||
@@ -116,6 +116,8 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
|
||||
var/buffer = null
|
||||
var/show_wires = FALSE
|
||||
var/datum/integrated_io/selected_io = null //functional for integrated circuits.
|
||||
//Special crowbar
|
||||
var/can_force_powered = FALSE
|
||||
|
||||
var/reach = 1 //In tiles, how far this weapon can reach; 1 for adjacent, which is default
|
||||
|
||||
|
||||
@@ -122,7 +122,10 @@
|
||||
/obj/item/paicard/proc/setPersonality(mob/living/silicon/pai/personality)
|
||||
src.pai = personality
|
||||
src.add_overlay("pai-null")
|
||||
|
||||
var/list/policies = CONFIG_GET(keyed_list/policyconfig)
|
||||
var/policy = policies[POLICYCONFIG_PAI]
|
||||
if(policy)
|
||||
to_chat(personality, policy)
|
||||
playsound(loc, 'sound/effects/pai_boot.ogg', 50, 1, -1)
|
||||
audible_message("\The [src] plays a cheerful startup noise!")
|
||||
|
||||
|
||||
@@ -180,6 +180,11 @@
|
||||
|
||||
//Called from turf.dm turf/dblclick
|
||||
/obj/item/flamethrower/proc/flame_turf(turflist)
|
||||
var/mob/living/carbon/human/user = loc
|
||||
// no fun for pacifists
|
||||
if(HAS_TRAIT(user, TRAIT_PACIFISM))
|
||||
to_chat(user, "<span class='warning'>You don't want to put others in danger!</span>")
|
||||
return
|
||||
if(!lit || operating)
|
||||
return
|
||||
operating = TRUE
|
||||
|
||||
@@ -771,7 +771,10 @@
|
||||
|
||||
/obj/item/nullrod/tribal_knife/process()
|
||||
slowdown = rand(-2, 2)
|
||||
|
||||
if(iscarbon(loc))
|
||||
var/mob/living/carbon/wielder = loc
|
||||
if(wielder.is_holding(src))
|
||||
wielder.update_equipment_speed_mods()
|
||||
|
||||
/obj/item/nullrod/pitchfork
|
||||
icon_state = "pitchfork0"
|
||||
|
||||
@@ -88,6 +88,7 @@
|
||||
usesound = 'sound/items/jaws_pry.ogg'
|
||||
force = 15
|
||||
toolspeed = 0.25
|
||||
can_force_powered = TRUE
|
||||
|
||||
/obj/item/crowbar/power/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is putting [user.p_their()] head in [src], it looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
|
||||
Reference in New Issue
Block a user