mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-11 02:12:14 +00:00
TG sync Sunday (#201)
* stage one * datums and shit * game stuff * modules * tgstation.dme * tools * these things for icons * compiling fixes * merge spree on TG * other updates * updated maps with deepfryers * My helpers were not helping
This commit is contained in:
@@ -49,8 +49,6 @@
|
||||
Remove(owner)
|
||||
|
||||
/datum/action/proc/Remove(mob/M)
|
||||
if(!M)
|
||||
return
|
||||
if(M)
|
||||
if(M.client)
|
||||
M.client.screen -= button
|
||||
|
||||
@@ -73,7 +73,10 @@
|
||||
R.module.rebuild_modules()
|
||||
else if(isAI(S))
|
||||
var/mob/living/silicon/ai/A = S
|
||||
A.can_be_carded = FALSE
|
||||
A.requires_power = POWER_REQ_CLOCKCULT
|
||||
A.languages_spoken &= ~HUMAN
|
||||
A.add_atom_colour(list("#B18B25", "#92661A", "#6D370F", rgb(0,0,0)), ADMIN_COLOUR_PRIORITY)
|
||||
if(!A.lacks_power())
|
||||
A.ai_restore_power()
|
||||
if(A.eyeobj)
|
||||
@@ -122,7 +125,10 @@
|
||||
var/mob/living/silicon/S = owner
|
||||
if(isAI(S))
|
||||
var/mob/living/silicon/ai/A = S
|
||||
A.can_be_carded = initial(A.can_be_carded)
|
||||
A.requires_power = initial(A.requires_power)
|
||||
A.languages_spoken |= HUMAN
|
||||
A.remove_atom_colour(ADMIN_COLOUR_PRIORITY, list("#B18B25", "#92661A", "#6D370F", rgb(0,0,0)))
|
||||
S.make_laws()
|
||||
S.update_icons()
|
||||
S.show_laws()
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
Reset()
|
||||
Draw()
|
||||
sleep(sleep_time)
|
||||
if(!qdeleted(src))
|
||||
if(!QDELETED(src))
|
||||
qdel(src)
|
||||
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
return ..()
|
||||
|
||||
/datum/forced_movement/process()
|
||||
if(qdeleted(victim) || !victim.loc || qdeleted(target) || !target.loc)
|
||||
if(QDELETED(victim) || !victim.loc || QDELETED(target) || !target.loc)
|
||||
qdel(src)
|
||||
return
|
||||
var/steps_to_take = round(steps_per_tick * (world.time - last_processed))
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
buckled_mob.pixel_x = 0
|
||||
buckled_mob.pixel_y = 0
|
||||
if(buckled_mob.client)
|
||||
buckled_mob.client.view = world.view
|
||||
buckled_mob.client.change_view(world.view)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
/datum/status_effect/shadow_mend
|
||||
id = "shadow_mend"
|
||||
duration = 3
|
||||
duration = 30
|
||||
alert_type = /obj/screen/alert/status_effect/shadow_mend
|
||||
|
||||
/obj/screen/alert/status_effect/shadow_mend
|
||||
@@ -26,8 +26,8 @@
|
||||
|
||||
/datum/status_effect/void_price
|
||||
id = "void_price"
|
||||
duration = 30
|
||||
tick_interval = 3
|
||||
duration = 300
|
||||
tick_interval = 30
|
||||
alert_type = /obj/screen/alert/status_effect/void_price
|
||||
|
||||
/obj/screen/alert/status_effect/void_price
|
||||
@@ -40,11 +40,12 @@
|
||||
owner.adjustBruteLoss(3)
|
||||
|
||||
|
||||
|
||||
/datum/status_effect/vanguard_shield
|
||||
id = "vanguard"
|
||||
duration = 20
|
||||
duration = 200
|
||||
tick_interval = 0 //tick as fast as possible
|
||||
alert_type = /obj/screen/alert/status_effect/vanguard
|
||||
var/datum/progressbar/progbar
|
||||
|
||||
/obj/screen/alert/status_effect/vanguard
|
||||
name = "Vanguard"
|
||||
@@ -60,10 +61,21 @@
|
||||
desc += "<br><b>[vanguard["stuns_absorbed"] * 2]</b> seconds of stuns held back.<br><b>[round(min(vanguard["stuns_absorbed"] * 0.25, 20)) * 2]</b> seconds of stun will affect you."
|
||||
..()
|
||||
|
||||
/datum/status_effect/vanguard_shield/Destroy()
|
||||
qdel(progbar)
|
||||
progbar = null
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/vanguard_shield/on_apply()
|
||||
add_logs(owner, null, "gained Vanguard stun immunity")
|
||||
owner.add_stun_absorption("vanguard", 200, 1, "'s yellow aura momentarily intensifies!", "Your ward absorbs the stun!", " radiating with a soft yellow light!")
|
||||
owner.visible_message("<span class='warning'>[owner] begins to faintly glow!</span>", "<span class='brass'>You will absorb all stuns for the next twenty seconds.</span>")
|
||||
progbar = new(owner, duration, owner)
|
||||
progbar.bar.color = list("#FAE48C", "#FAE48C", "#FAE48C", rgb(0,0,0))
|
||||
progbar.update(duration - world.time)
|
||||
|
||||
/datum/status_effect/vanguard_shield/tick()
|
||||
progbar.update(duration - world.time)
|
||||
|
||||
/datum/status_effect/vanguard_shield/on_remove()
|
||||
var/vanguard = owner.stun_absorption["vanguard"]
|
||||
@@ -85,14 +97,15 @@
|
||||
message_to_owner += "\n<span class='userdanger'>You faint from the exertion!</span>"
|
||||
stuns_blocked *= 2
|
||||
owner.Paralyse(stuns_blocked)
|
||||
else
|
||||
stuns_blocked = 0 //so logging is correct in cases where there were stuns blocked but we didn't stun for other reasons
|
||||
owner.visible_message("<span class='warning'>[owner]'s glowing aura fades!</span>", message_to_owner)
|
||||
add_logs(owner, null, "lost Vanguard stun immunity[stuns_blocked ? "and been stunned for [stuns_blocked]":""]")
|
||||
|
||||
add_logs(owner, null, "lost Vanguard stun immunity[stuns_blocked ? "and was stunned for [stuns_blocked]":""]")
|
||||
|
||||
|
||||
/datum/status_effect/inathneqs_endowment
|
||||
id = "inathneqs_endowment"
|
||||
duration = 15
|
||||
duration = 150
|
||||
alert_type = /obj/screen/alert/status_effect/inathneqs_endowment
|
||||
|
||||
/obj/screen/alert/status_effect/inathneqs_endowment
|
||||
@@ -119,9 +132,10 @@
|
||||
owner.status_flags &= ~GODMODE
|
||||
playsound(owner, 'sound/magic/Ethereal_Exit.ogg', 50, 1)
|
||||
|
||||
|
||||
/datum/status_effect/cyborg_power_regen
|
||||
id = "power_regen"
|
||||
duration = 10
|
||||
duration = 100
|
||||
alert_type = /obj/screen/alert/status_effect/power_regen
|
||||
var/power_to_give = 0 //how much power is gained each tick
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/datum/status_effect/freon
|
||||
id = "frozen"
|
||||
duration = 10
|
||||
duration = 100
|
||||
unique = TRUE
|
||||
alert_type = /obj/screen/alert/status_effect/freon
|
||||
var/icon/cube
|
||||
|
||||
@@ -6,10 +6,9 @@ var/global/list/all_status_effects = list() //a list of all status effects, if f
|
||||
|
||||
/datum/status_effect
|
||||
var/id = "effect" //Used for screen alerts.
|
||||
var/duration = -1 //How long the status effect lasts in SECONDS. Enter -1 for an effect that never ends unless removed through some means.
|
||||
var/tick_interval = 1 //How many seconds between ticks. Leave at 1 for every second.
|
||||
var/duration = -1 //How long the status effect lasts in DECISECONDS. Enter -1 for an effect that never ends unless removed through some means.
|
||||
var/tick_interval = 10 //How many deciseconds between ticks, approximately. Leave at 10 for every second.
|
||||
var/mob/living/owner //The mob affected by the status effect.
|
||||
var/cosmetic = FALSE //If the status effect only exists for flavor.
|
||||
var/unique = TRUE //If there can be multiple status effects of this type on one mob.
|
||||
var/alert_type = /obj/screen/alert/status_effect //the alert thrown by the status effect, contains name and description
|
||||
|
||||
@@ -22,7 +21,7 @@ var/global/list/all_status_effects = list() //a list of all status effects, if f
|
||||
addtimer(CALLBACK(src, .proc/start_ticking), 1) //Give us time to set any variables
|
||||
|
||||
/datum/status_effect/Destroy()
|
||||
STOP_PROCESSING(SSprocessing, src)
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
if(owner)
|
||||
owner.clear_alert(id)
|
||||
on_remove()
|
||||
@@ -37,22 +36,22 @@ var/global/list/all_status_effects = list() //a list of all status effects, if f
|
||||
qdel(src)
|
||||
return
|
||||
on_apply()
|
||||
if(duration != -1)
|
||||
duration = world.time + initial(duration)
|
||||
tick_interval = world.time + initial(tick_interval)
|
||||
if(alert_type)
|
||||
var/obj/screen/alert/status_effect/A = owner.throw_alert(id, alert_type)
|
||||
A.attached_effect = src //so the alert can reference us, if it needs to
|
||||
START_PROCESSING(SSprocessing, src)
|
||||
START_PROCESSING(SSfastprocess, src)
|
||||
|
||||
/datum/status_effect/process()
|
||||
if(!owner)
|
||||
qdel(src)
|
||||
return
|
||||
if(duration != -1)
|
||||
duration--
|
||||
tick_interval--
|
||||
if(!tick_interval)
|
||||
if(tick_interval < world.time)
|
||||
tick()
|
||||
tick_interval = initial(tick_interval)
|
||||
if(!duration)
|
||||
tick_interval = world.time + initial(tick_interval)
|
||||
if(duration != -1 && duration < world.time)
|
||||
qdel(src)
|
||||
|
||||
/datum/status_effect/proc/on_apply() //Called whenever the buff is applied.
|
||||
|
||||
Reference in New Issue
Block a user