Bleeding edgy refresh (#303)
* not code stuff * other things * global vars, defines, helpers * onclick hud stuff, orphans, world.dm * controllers and datums * game folder * everything not client/mobs in modules * client folder * stage 1 mob stuff * simple animal things * silicons * carbon things * ayylmaos and monkeys * hyoomahn * icons n shit * sprite fixes * compile fixes * some fixes I cherrypicked. * qdel fixes * forgot brain refractors
This commit is contained in:
@@ -25,6 +25,8 @@
|
||||
var/list/gamemode_blacklist = list() // Event won't happen in these gamemodes
|
||||
var/list/gamemode_whitelist = list() // Event will happen ONLY in these gamemodes if not empty
|
||||
|
||||
var/triggering //admin cancellation
|
||||
|
||||
/datum/round_event_control/New()
|
||||
..()
|
||||
if(config && !wizardevent) // Magic is unaffected by configs
|
||||
@@ -53,9 +55,32 @@
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/datum/round_event_control/proc/runEvent()
|
||||
/datum/round_event_control/proc/preRunEvent()
|
||||
if(!ispath(typepath,/datum/round_event))
|
||||
return PROCESS_KILL
|
||||
return EVENT_CANT_RUN
|
||||
|
||||
triggering = TRUE
|
||||
if (alertadmins)
|
||||
message_admins("Random Event triggering in 10 seconds: [name] ([typepath]) (<a href='?src=\ref[src];cancel=1'>CANCEL</a>)")
|
||||
sleep(100)
|
||||
|
||||
if(!triggering)
|
||||
return EVENT_CANCELLED //admin cancelled
|
||||
triggering = FALSE
|
||||
return EVENT_READY
|
||||
|
||||
/datum/round_event_control/Topic(href, href_list)
|
||||
..()
|
||||
if(href_list["cancel"])
|
||||
if(!triggering)
|
||||
to_chat(usr, "<span class='admin'>You are too late to cancel that event</span>")
|
||||
return
|
||||
triggering = FALSE
|
||||
message_admins("[key_name_admin(usr)] cancelled event [name].")
|
||||
log_admin_private("[key_name(usr)] cancelled event [name].")
|
||||
feedback_add_details("admin_verb","CancelEvent: [typepath]")
|
||||
|
||||
/datum/round_event_control/proc/runEvent(random)
|
||||
var/datum/round_event/E = new typepath()
|
||||
E.current_players = get_active_player_count(alive_check = 1, afk_check = 1, human_check = 1)
|
||||
E.control = src
|
||||
@@ -63,6 +88,10 @@
|
||||
occurrences++
|
||||
|
||||
testing("[time2text(world.time, "hh:mm:ss")] [E.type]")
|
||||
if(random)
|
||||
if(alertadmins)
|
||||
deadchat_broadcast("<span class='deadsay'><b>[name]</b> has just been randomly triggered!</span>") //STOP ASSUMING IT'S BADMINS!
|
||||
log_game("Random Event triggering: [name] ([typepath])")
|
||||
|
||||
return E
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
weight = 20
|
||||
|
||||
/datum/round_event/anomaly/anomaly_flux
|
||||
startWhen = 3
|
||||
announceWhen = 20
|
||||
startWhen = 10
|
||||
announceWhen = 3
|
||||
|
||||
/datum/round_event/anomaly/anomaly_flux/announce()
|
||||
priority_announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert")
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
weight = 20
|
||||
|
||||
/datum/round_event/anomaly/anomaly_pyro
|
||||
startWhen = 10
|
||||
announceWhen = 3
|
||||
startWhen = 3
|
||||
announceWhen = 10
|
||||
|
||||
/datum/round_event/anomaly/anomaly_pyro/announce()
|
||||
priority_announce("Pyroclastic anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert")
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"#4nd%;f4y6,>£%-BZZZZZZZT")
|
||||
|
||||
for(var/mob/living/silicon/ai/A in ai_list) //AIs are always aware of communication blackouts.
|
||||
A << "<br><span class='warning'><b>[alert]</b></span><br>"
|
||||
to_chat(A, "<br><span class='warning'><b>[alert]</b></span><br>")
|
||||
|
||||
if(prob(30)) //most of the time, we don't want an announcement, so as to allow AIs to fake blackouts.
|
||||
priority_announce(alert)
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
var/mob/living/carbon/human/devil = create_event_devil(spawn_loc)
|
||||
Mind.transfer_to(devil)
|
||||
ticker.mode.finalize_devil(Mind)
|
||||
ticker.mode.finalize_devil(Mind, FALSE)
|
||||
ticker.mode.add_devil_objectives(src, 2)
|
||||
Mind.announceDevilLaws()
|
||||
Mind.announce_objectives()
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/datum/round_event_control/grid_check
|
||||
name = "Grid Check"
|
||||
typepath = /datum/round_event/grid_check
|
||||
weight = 7
|
||||
max_occurrences = 1
|
||||
weight = 10
|
||||
max_occurrences = 3
|
||||
|
||||
/datum/round_event/grid_check
|
||||
announceWhen = 1
|
||||
|
||||
@@ -15,4 +15,4 @@
|
||||
|
||||
/datum/round_event/fridaythethirteen/announce()
|
||||
for(var/mob/living/L in player_list)
|
||||
L << "<span class='warning'>You are feeling unlucky today.</span>"
|
||||
to_chat(L, "<span class='warning'>You are feeling unlucky today.</span>")
|
||||
@@ -69,7 +69,7 @@
|
||||
for(var/mob/living/carbon/human/H in living_mob_list)
|
||||
if(!H.client || !istype(H))
|
||||
return
|
||||
H << "<span class='danger'>Honk...</span>"
|
||||
to_chat(H, "<span class='danger'>Honk...</span>")
|
||||
H << 'sound/spookoween/scary_clown_appear.ogg'
|
||||
var/turf/T = get_turf(H)
|
||||
if(T)
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
|
||||
else
|
||||
L << "<span class='warning'><B>You didn't get a date! They're all having fun without you! you'll show them though...</B></span>"
|
||||
to_chat(L, "<span class='warning'><B>You didn't get a date! They're all having fun without you! you'll show them though...</B></span>")
|
||||
var/datum/objective/martyr/normiesgetout = new
|
||||
normiesgetout.owner = L.mind
|
||||
ticker.mode.traitors |= L.mind
|
||||
@@ -58,7 +58,7 @@
|
||||
protect_objective.target = date.mind
|
||||
protect_objective.explanation_text = "Protect [date.real_name], your date."
|
||||
lover.mind.objectives += protect_objective
|
||||
lover << "<span class='warning'><B>You're on a date with [date]! Protect them at all costs. This takes priority over all other loyalties.</B></span>"
|
||||
to_chat(lover, "<span class='warning'><B>You're on a date with [date]! Protect them at all costs. This takes priority over all other loyalties.</B></span>")
|
||||
|
||||
|
||||
/datum/round_event/valentines/announce()
|
||||
@@ -143,7 +143,7 @@
|
||||
user << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[message]</BODY></HTML>", "window=[name]")
|
||||
onclose(user, "[name]")
|
||||
else
|
||||
user << "<span class='notice'>It is too far away.</span>"
|
||||
to_chat(user, "<span class='notice'>It is too far away.</span>")
|
||||
|
||||
/obj/item/weapon/valentine/attack_self(mob/user)
|
||||
user.examinate(src)
|
||||
|
||||
@@ -157,4 +157,4 @@
|
||||
telespell.clothes_req = 0 //santa robes aren't actually magical.
|
||||
santa.mind.AddSpell(telespell) //does the station have chimneys? WHO KNOWS!
|
||||
|
||||
santa << "<span class='boldannounce'>You are Santa! Your objective is to bring joy to the people on this station. You can conjure more presents using a spell, and there are several presents in your bag.</span>"
|
||||
to_chat(santa, "<span class='boldannounce'>You are Santa! Your objective is to bring joy to the people on this station. You can conjure more presents using a spell, and there are several presents in your bag.</span>")
|
||||
|
||||
@@ -107,6 +107,7 @@
|
||||
//Foods. Drinks aren't included due to grammar; if you want to add drinks, make a new set
|
||||
//of possible laws for best effect. Unless you want the crew having to drink hamburgers.
|
||||
var/ionfood = pick_list(ION_FILE, "ionfood")
|
||||
var/iondrinks = pick_list(ION_FILE, "iondrinks")
|
||||
|
||||
var/message = ""
|
||||
|
||||
@@ -327,15 +328,17 @@
|
||||
if(24 to 26) //The AI must always
|
||||
message = "YOU MUST ALWAYS [ionmust]"
|
||||
|
||||
if(27 to 28) //Humans must eat X to survive
|
||||
switch(rand(1,4)) //What is X?
|
||||
if(27 to 28) //Humans must consume X to survive
|
||||
switch(rand(1,5)) //What is X?
|
||||
if(1) //X is a food
|
||||
message = "HUMANS MUST EAT [ionadjectiveshalf][ionfood] TO SURVIVE"
|
||||
if(2) //X is an object
|
||||
if(2) //X is a drink
|
||||
message = "HUMANS MUST DRINK [ionadjectiveshalf][iondrinks] TO SURVIVE"
|
||||
if(3) //X is an object
|
||||
message = "HUMANS MUST EAT [ionadjectiveshalf][ionobjects] TO SURVIVE"
|
||||
if(3) //X is a threat
|
||||
if(4) //X is a threat
|
||||
message = "HUMANS MUST EAT [ionadjectiveshalf][ionthreats] TO SURVIVE"
|
||||
if(4) //X is a job
|
||||
if(5) //X is a job
|
||||
message = "HUMANS MUST EAT [ionadjectiveshalf][ioncrew1] TO SURVIVE"
|
||||
|
||||
if(29 to 31) //Change jobs or ranks
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
/datum/round_event_control/meteor_wave
|
||||
name = "Meteor Wave: Normal"
|
||||
typepath = /datum/round_event/meteor_wave
|
||||
weight = 2
|
||||
weight = 4
|
||||
min_players = 5
|
||||
max_occurrences = 2
|
||||
max_occurrences = 3
|
||||
|
||||
/datum/round_event/meteor_wave
|
||||
startWhen = 6
|
||||
@@ -22,9 +22,9 @@
|
||||
/datum/round_event/meteor_wave/proc/determine_wave_type()
|
||||
if(!wave_name)
|
||||
wave_name = pickweight(list(
|
||||
"normal" = 90,
|
||||
"threatening" = 20,
|
||||
"catastrophic" = 5))
|
||||
"normal" = 50,
|
||||
"threatening" = 40,
|
||||
"catastrophic" = 10))
|
||||
switch(wave_name)
|
||||
if("normal")
|
||||
wave_type = meteors_normal
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
nuke_code = nuke.r_code
|
||||
|
||||
Mind.store_memory("<B>Station Self-Destruct Device Code</B>: [nuke_code]", 0, 0)
|
||||
Mind.current << "The nuclear authorization code is: <B>[nuke_code]</B>"
|
||||
to_chat(Mind.current, "The nuclear authorization code is: <B>[nuke_code]</B>")
|
||||
|
||||
var/datum/objective/nuclear/O = new()
|
||||
O.owner = Mind
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
for(var/mob/living/silicon/ai/A in ai_list)
|
||||
//AIs are always aware of processor overload
|
||||
A << "<br><span class='warning'><b>[alert]</b></span><br>"
|
||||
to_chat(A, "<br><span class='warning'><b>[alert]</b></span><br>")
|
||||
|
||||
// Announce most of the time, but leave a little gap so people don't know
|
||||
// whether it's, say, a tesla zapping tcomms, or some selective
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
name = "Radiation Storm"
|
||||
typepath = /datum/round_event/radiation_storm
|
||||
max_occurrences = 1
|
||||
weight = 7
|
||||
|
||||
/datum/round_event/radiation_storm
|
||||
|
||||
|
||||
@@ -19,8 +19,7 @@
|
||||
|
||||
sentience_report += "<br><br>Based on [data], we believe that [one] of the station's [pets] has developed [strength] level intelligence, and the ability to communicate."
|
||||
|
||||
print_command_report(sentience_report, "Classified [command_name()] Update")
|
||||
priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/AI/commandreport.ogg')
|
||||
print_command_report(text=sentience_report)
|
||||
..()
|
||||
|
||||
/datum/round_event/ghost_role/sentience/spawn_role()
|
||||
@@ -60,10 +59,10 @@
|
||||
|
||||
spawned_mobs += SA
|
||||
|
||||
SA << "<span class='userdanger'>Hello world!</span>"
|
||||
SA << "<span class='warning'>Due to freak radiation and/or chemicals \
|
||||
to_chat(SA, "<span class='userdanger'>Hello world!</span>")
|
||||
to_chat(SA, "<span class='warning'>Due to freak radiation and/or chemicals \
|
||||
and/or lucky chance, you have gained human level intelligence \
|
||||
and the ability to speak and understand human language!</span>"
|
||||
and the ability to speak and understand human language!</span>")
|
||||
|
||||
return SUCCESSFUL_SPAWN
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
|
||||
var/list/empty_shuttle_turfs = list()
|
||||
for(var/turf/open/floor/T in SSshuttle.supply.areaInstance)
|
||||
if(T.density || T.contents.len)
|
||||
if(is_blocked_turf(T))
|
||||
continue
|
||||
empty_shuttle_turfs += T
|
||||
if(!empty_shuttle_turfs.len)
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
|
||||
/datum/spacevine_mutation/light/on_grow(obj/structure/spacevine/holder)
|
||||
if(holder.energy)
|
||||
holder.SetLuminosity(severity, 3)
|
||||
holder.set_light(severity, 0.3)
|
||||
|
||||
/datum/spacevine_mutation/toxicity
|
||||
name = "toxic"
|
||||
@@ -131,7 +131,7 @@
|
||||
if(issilicon(crosser))
|
||||
return
|
||||
if(prob(severity) && istype(crosser) && !isvineimmune(crosser))
|
||||
crosser << "<span class='alert'>You accidently touch the vine and feel a strange sensation.</span>"
|
||||
to_chat(crosser, "<span class='alert'>You accidently touch the vine and feel a strange sensation.</span>")
|
||||
crosser.adjustToxLoss(5)
|
||||
|
||||
/datum/spacevine_mutation/toxicity/on_eat(obj/structure/spacevine/holder, mob/living/eater)
|
||||
@@ -196,7 +196,7 @@
|
||||
quality = POSITIVE
|
||||
|
||||
/datum/spacevine_mutation/transparency/on_grow(obj/structure/spacevine/holder)
|
||||
holder.SetOpacity(0)
|
||||
holder.set_opacity(0)
|
||||
holder.alpha = 125
|
||||
|
||||
/datum/spacevine_mutation/oxy_eater
|
||||
@@ -269,13 +269,13 @@
|
||||
if(prob(severity) && istype(crosser) && !isvineimmune(holder))
|
||||
var/mob/living/M = crosser
|
||||
M.adjustBruteLoss(5)
|
||||
M << "<span class='alert'>You cut yourself on the thorny vines.</span>"
|
||||
to_chat(M, "<span class='alert'>You cut yourself on the thorny vines.</span>")
|
||||
|
||||
/datum/spacevine_mutation/thorns/on_hit(obj/structure/spacevine/holder, mob/living/hitter, obj/item/I, expected_damage)
|
||||
if(prob(severity) && istype(hitter) && !isvineimmune(holder))
|
||||
var/mob/living/M = hitter
|
||||
M.adjustBruteLoss(5)
|
||||
M << "<span class='alert'>You cut yourself on the thorny vines.</span>"
|
||||
to_chat(M, "<span class='alert'>You cut yourself on the thorny vines.</span>")
|
||||
. = expected_damage
|
||||
|
||||
/datum/spacevine_mutation/woodening
|
||||
@@ -341,7 +341,7 @@
|
||||
else
|
||||
text += " normal"
|
||||
text += " vine."
|
||||
user << text
|
||||
to_chat(user, text)
|
||||
|
||||
/obj/structure/spacevine/Destroy()
|
||||
for(var/datum/spacevine_mutation/SM in mutations)
|
||||
@@ -355,7 +355,7 @@
|
||||
KZ.set_potency(master.mutativeness * 10)
|
||||
KZ.set_production((master.spread_cap / initial(master.spread_cap)) * 5)
|
||||
mutations = list()
|
||||
SetOpacity(0)
|
||||
set_opacity(0)
|
||||
if(has_buckled_mobs())
|
||||
unbuckle_all_mobs(force=1)
|
||||
return ..()
|
||||
@@ -521,7 +521,7 @@
|
||||
if(!energy)
|
||||
src.icon_state = pick("Med1", "Med2", "Med3")
|
||||
energy = 1
|
||||
SetOpacity(1)
|
||||
set_opacity(1)
|
||||
else
|
||||
src.icon_state = pick("Hvy1", "Hvy2", "Hvy3")
|
||||
energy = 2
|
||||
@@ -543,7 +543,7 @@
|
||||
for(var/datum/spacevine_mutation/SM in mutations)
|
||||
SM.on_buckle(src, V)
|
||||
if((V.stat != DEAD) && (V.buckled != src)) //not dead or captured
|
||||
V << "<span class='danger'>The vines [pick("wind", "tangle", "tighten")] around you!</span>"
|
||||
to_chat(V, "<span class='danger'>The vines [pick("wind", "tangle", "tighten")] around you!</span>")
|
||||
buckle_mob(V, 1)
|
||||
|
||||
/obj/structure/spacevine/proc/spread()
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
S.clothes_req = 0
|
||||
spell_improved = 1
|
||||
if(spell_improved)
|
||||
L << "<span class='notice'>You suddenly feel like you never needed those garish robes in the first place...</span>"
|
||||
to_chat(L, "<span class='notice'>You suddenly feel like you never needed those garish robes in the first place...</span>")
|
||||
|
||||
//--//
|
||||
|
||||
@@ -53,4 +53,4 @@
|
||||
if(5)
|
||||
S.name = "Ludicrous [S.name]"
|
||||
|
||||
L << "<span class='notice'>You suddenly feel more competent with your casting!</span>"
|
||||
to_chat(L, "<span class='notice'>You suddenly feel more competent with your casting!</span>")
|
||||
|
||||
@@ -44,8 +44,8 @@
|
||||
citizens += H
|
||||
ticker.mode.traitors += M
|
||||
M.special_role = "separatist"
|
||||
H.attack_log += "\[[time_stamp()]\] <font color='red'>Was made into a separatist, long live [nation]!</font>"
|
||||
H << "<B>You are a separatist! [nation] forever! Protect the soverignty of your newfound land with your comrades in arms!</B>"
|
||||
H.log_message("<font color='red'>Was made into a separatist, long live [nation]!</font>", INDIVIDUAL_ATTACK_LOG)
|
||||
to_chat(H, "<B>You are a separatist! [nation] forever! Protect the soverignty of your newfound land with your comrades in arms!</B>")
|
||||
if(citizens.len)
|
||||
var/message
|
||||
for(var/job in jobs_to_revolt)
|
||||
|
||||
@@ -8,4 +8,4 @@
|
||||
/datum/round_event/wizard/fake_explosion/start()
|
||||
for(var/mob/M in player_list)
|
||||
M << 'sound/machines/Alarm.ogg'
|
||||
addtimer(CALLBACK(ticker, /datum/subsystem/ticker/.proc/station_explosion_cinematic, 1, "fake"), 100) //:o)
|
||||
addtimer(CALLBACK(ticker, /datum/controller/subsystem/ticker/.proc/station_explosion_cinematic, 1, "fake"), 100) //:o)
|
||||
@@ -2,13 +2,12 @@
|
||||
name = "G-G-G-Ghosts!"
|
||||
weight = 3
|
||||
typepath = /datum/round_event/wizard/ghost
|
||||
max_occurrences = 5
|
||||
max_occurrences = 1
|
||||
earliest_start = 0
|
||||
|
||||
/datum/round_event/wizard/ghost/start()
|
||||
for(var/mob/dead/observer/G in player_list)
|
||||
G.invisibility = 0
|
||||
G << "You suddenly feel extremely obvious..."
|
||||
var/msg = "<span class='warning'>You suddenly feel extremely obvious...</span>"
|
||||
set_observer_default_invisibility(0, msg)
|
||||
|
||||
|
||||
//--//
|
||||
@@ -24,4 +23,4 @@
|
||||
for(var/mob/dead/observer/G in player_list)
|
||||
G.verbs += /mob/dead/observer/verb/boo
|
||||
G.verbs += /mob/dead/observer/verb/possess
|
||||
G << "You suddenly feel a welling of new spooky powers..."
|
||||
to_chat(G, "You suddenly feel a welling of new spooky powers...")
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
var/mob/living/carbon/human/H = pick(holder_canadates)
|
||||
new /obj/item/weapon/greentext(H.loc)
|
||||
H << "<font color='green'>The mythical greentext appear at your feet! Pick it up if you dare...</font>"
|
||||
to_chat(H, "<font color='green'>The mythical greentext appear at your feet! Pick it up if you dare...</font>")
|
||||
|
||||
|
||||
/obj/item/weapon/greentext
|
||||
@@ -36,9 +36,9 @@
|
||||
poi_list |= src
|
||||
|
||||
/obj/item/weapon/greentext/equipped(mob/living/user as mob)
|
||||
user << "<font color='green'>So long as you leave this place with greentext in hand you know will be happy...</font>"
|
||||
to_chat(user, "<font color='green'>So long as you leave this place with greentext in hand you know will be happy...</font>")
|
||||
if(user.mind && user.mind.objectives.len > 0)
|
||||
user << "<span class='warning'>... so long as you still perform your other objectives that is!</span>"
|
||||
to_chat(user, "<span class='warning'>... so long as you still perform your other objectives that is!</span>")
|
||||
new_holder = user
|
||||
if(!last_holder)
|
||||
last_holder = user
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
/obj/item/weapon/greentext/dropped(mob/living/user as mob)
|
||||
if(user in color_altered_mobs)
|
||||
user << "<span class='warning'>A sudden wave of failure washes over you...</span>"
|
||||
to_chat(user, "<span class='warning'>A sudden wave of failure washes over you...</span>")
|
||||
user.add_atom_colour("#FF0000", ADMIN_COLOUR_PRIORITY) //ya blew it
|
||||
last_holder = null
|
||||
new_holder = null
|
||||
@@ -59,7 +59,7 @@
|
||||
|
||||
/obj/item/weapon/greentext/process()
|
||||
if(new_holder && new_holder.z == ZLEVEL_CENTCOM)//you're winner!
|
||||
new_holder << "<font color='green'>At last it feels like victory is assured!</font>"
|
||||
to_chat(new_holder, "<font color='green'>At last it feels like victory is assured!</font>")
|
||||
if(!(new_holder in ticker.mode.traitors))
|
||||
ticker.mode.traitors += new_holder.mind
|
||||
new_holder.mind.special_role = "winner"
|
||||
@@ -67,13 +67,13 @@
|
||||
O.completed = 1 //YES!
|
||||
O.owner = new_holder.mind
|
||||
new_holder.mind.objectives += O
|
||||
new_holder.attack_log += "\[[time_stamp()]\] <font color='green'>Won with greentext!!!</font>"
|
||||
new_holder.log_message("<font color='green'>Won with greentext!!!</font>", INDIVIDUAL_ATTACK_LOG)
|
||||
color_altered_mobs -= new_holder
|
||||
resistance_flags |= ON_FIRE
|
||||
qdel(src)
|
||||
|
||||
if(last_holder && last_holder != new_holder) //Somehow it was swiped without ever getting dropped
|
||||
last_holder << "<span class='warning'>A sudden wave of failure washes over you...</span>"
|
||||
to_chat(last_holder, "<span class='warning'>A sudden wave of failure washes over you...</span>")
|
||||
last_holder.add_atom_colour("#FF0000", ADMIN_COLOUR_PRIORITY)
|
||||
last_holder = new_holder //long live the king
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
message += "...</span>"
|
||||
// can't skip the mob check as it also does the decolouring
|
||||
if(!quiet)
|
||||
M << message
|
||||
to_chat(M, message)
|
||||
|
||||
/obj/item/weapon/greentext/quiet
|
||||
quiet = TRUE
|
||||
|
||||
@@ -53,6 +53,6 @@
|
||||
I.mind.objectives += protect_objective
|
||||
ticker.mode.update_wiz_icons_added(I.mind)
|
||||
|
||||
I.attack_log += "\[[time_stamp()]\] <font color='red'>Is an imposter!</font>"
|
||||
I << "<B>You are an imposter! Trick and confuse the crew to misdirect malice from your handsome original!</B>"
|
||||
I.log_message("<font color='red'>Is an imposter!</font>", INDIVIDUAL_ATTACK_LOG)
|
||||
to_chat(I, "<B>You are an imposter! Trick and confuse the crew to misdirect malice from your handsome original!</B>")
|
||||
I << sound('sound/effects/magic.ogg')
|
||||
|
||||
@@ -9,4 +9,4 @@
|
||||
|
||||
for(var/mob/living/carbon/human/H in living_mob_list)
|
||||
H.reagents.add_reagent("adminordrazine", 40) //100 ticks of absolute invinciblity (barring gibs)
|
||||
H << "<span class='notice'>You feel invincible, nothing can hurt you!</span>"
|
||||
to_chat(H, "<span class='notice'>You feel invincible, nothing can hurt you!</span>")
|
||||
@@ -41,7 +41,7 @@
|
||||
/obj/item/projectile/magic/death, /obj/item/projectile/magic/teleport, /obj/item/projectile/magic/door, /obj/item/projectile/magic/aoe/fireball,
|
||||
/obj/item/projectile/magic/spellblade, /obj/item/projectile/magic/arcane_barrage)
|
||||
|
||||
/mob/living/simple_animal/hostile/carp/ranged/New()
|
||||
/mob/living/simple_animal/hostile/carp/ranged/Initialize()
|
||||
projectiletype = pick(allowed_projectile_types)
|
||||
..()
|
||||
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
H.set_species(new_species)
|
||||
H.real_name = new_species.random_name(H.gender,1)
|
||||
H.dna.unique_enzymes = H.dna.generate_unique_enzymes()
|
||||
H << "<span class='notice'>You feel somehow... different?</span>"
|
||||
to_chat(H, "<span class='notice'>You feel somehow... different?</span>")
|
||||
if(!all_the_same)
|
||||
new_species = pick(all_species)
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
return
|
||||
var/quality = target.force - initial(target.force)
|
||||
if(quality > 9 && prob((quality - 9)*10))
|
||||
user << "<span class='danger'>[target] catches fire!</span>"
|
||||
to_chat(user, "<span class='danger'>[target] catches fire!</span>")
|
||||
if(target.resistance_flags & (LAVA_PROOF|FIRE_PROOF))
|
||||
target.resistance_flags &= ~(LAVA_PROOF|FIRE_PROOF)
|
||||
target.resistance_flags |= FLAMMABLE
|
||||
@@ -59,5 +59,5 @@
|
||||
target.throwforce += 1
|
||||
for(var/value in target.armor)
|
||||
target.armor[value] += 1
|
||||
user << "<span class='notice'>[target] glows blue and seems vaguely \"better\"!</span>"
|
||||
to_chat(user, "<span class='notice'>[target] glows blue and seems vaguely \"better\"!</span>")
|
||||
qdel(src)
|
||||
|
||||
Reference in New Issue
Block a user