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:
Poojawa
2017-03-21 11:44:10 -05:00
committed by GitHub
parent 099a6c8764
commit f67e9f6d87
1476 changed files with 344416 additions and 40694 deletions
@@ -86,18 +86,18 @@ Borg Hypospray
/obj/item/weapon/reagent_containers/borghypo/attack(mob/living/carbon/M, mob/user)
var/datum/reagents/R = reagent_list[mode]
if(!R.total_volume)
user << "<span class='notice'>The injector is empty.</span>"
to_chat(user, "<span class='notice'>The injector is empty.</span>")
return
if(!istype(M))
return
if(R.total_volume && M.can_inject(user, 1, user.zone_selected,bypass_protection))
M << "<span class='warning'>You feel a tiny prick!</span>"
user << "<span class='notice'>You inject [M] with the injector.</span>"
to_chat(M, "<span class='warning'>You feel a tiny prick!</span>")
to_chat(user, "<span class='notice'>You inject [M] with the injector.</span>")
var/fraction = min(amount_per_transfer_from_this/R.total_volume, 1)
R.reaction(M, INJECT, fraction)
if(M.reagents)
var/trans = R.trans_to(M, amount_per_transfer_from_this)
user << "<span class='notice'>[trans] unit\s injected. [R.total_volume] unit\s remaining.</span>"
to_chat(user, "<span class='notice'>[trans] unit\s injected. [R.total_volume] unit\s remaining.</span>")
var/list/injected = list()
for(var/datum/reagent/RG in R.reagent_list)
@@ -111,7 +111,7 @@ Borg Hypospray
mode = chosen_reagent
playsound(loc, 'sound/effects/pop.ogg', 50, 0)
var/datum/reagent/R = chemical_reagents_list[reagent_ids[mode]]
user << "<span class='notice'>[src] is now dispensing '[R.name]'.</span>"
to_chat(user, "<span class='notice'>[src] is now dispensing '[R.name]'.</span>")
return
/obj/item/weapon/reagent_containers/borghypo/examine(mob/user)
@@ -125,11 +125,11 @@ Borg Hypospray
for(var/datum/reagents/RS in reagent_list)
var/datum/reagent/R = locate() in RS.reagent_list
if(R)
usr << "<span class='notice'>It currently has [R.volume] unit\s of [R.name] stored.</span>"
to_chat(usr, "<span class='notice'>It currently has [R.volume] unit\s of [R.name] stored.</span>")
empty = 0
if(empty)
usr << "<span class='warning'>It is currently empty! Allow some time for the internal syntheszier to produce more.</span>"
to_chat(usr, "<span class='warning'>It is currently empty! Allow some time for the internal syntheszier to produce more.</span>")
/obj/item/weapon/reagent_containers/borghypo/hacked
icon_state = "borghypo_s"
@@ -181,15 +181,15 @@ Borg Shaker
else if(target.is_open_container() && target.reagents)
var/datum/reagents/R = reagent_list[mode]
if(!R.total_volume)
user << "<span class='warning'>[src] is currently out of this ingredient! Please allow some time for the synthesizer to produce more.</span>"
to_chat(user, "<span class='warning'>[src] is currently out of this ingredient! Please allow some time for the synthesizer to produce more.</span>")
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
user << "<span class='notice'>[target] is full.</span>"
to_chat(user, "<span class='notice'>[target] is full.</span>")
return
var/trans = R.trans_to(target, amount_per_transfer_from_this)
user << "<span class='notice'>You transfer [trans] unit\s of the solution to [target].</span>"
to_chat(user, "<span class='notice'>You transfer [trans] unit\s of the solution to [target].</span>")
/obj/item/weapon/reagent_containers/borghypo/borgshaker/DescribeContents()
var/empty = 1
@@ -197,11 +197,11 @@ Borg Shaker
var/datum/reagents/RS = reagent_list[mode]
var/datum/reagent/R = locate() in RS.reagent_list
if(R)
usr << "<span class='notice'>It currently has [R.volume] unit\s of [R.name] stored.</span>"
to_chat(usr, "<span class='notice'>It currently has [R.volume] unit\s of [R.name] stored.</span>")
empty = 0
if(empty)
usr << "<span class='warning'>It is currently empty! Please allow some time for the synthesizer to produce more.</span>"
to_chat(usr, "<span class='warning'>It is currently empty! Please allow some time for the synthesizer to produce more.</span>")
/obj/item/weapon/reagent_containers/borghypo/borgshaker/hacked
..()
@@ -14,11 +14,11 @@
if(reagents.total_volume > 0)
if(target.reagents.total_volume >= target.reagents.maximum_volume)
user << "<span class='notice'>[target] is full.</span>"
to_chat(user, "<span class='notice'>[target] is full.</span>")
return
if(!target.is_open_container() && !ismob(target) && !istype(target,/obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/clothing/mask/cigarette)) //You can inject humans and food but you cant remove the shit.
user << "<span class='warning'>You cannot directly fill [target]!</span>"
to_chat(user, "<span class='warning'>You cannot directly fill [target]!</span>")
return
var/trans = 0
@@ -49,11 +49,11 @@
target.visible_message("<span class='danger'>[user] tries to squirt something into [target]'s eyes, but fails!</span>", \
"<span class='userdanger'>[user] tries to squirt something into [target]'s eyes, but fails!</span>")
user << "<span class='notice'>You transfer [trans] unit\s of the solution.</span>"
to_chat(user, "<span class='notice'>You transfer [trans] unit\s of the solution.</span>")
update_icon()
return
else if(isalien(target)) //hiss-hiss has no eyes!
target << "<span class='danger'>[target] does not seem to have any eyes!</span>"
to_chat(target, "<span class='danger'>[target] does not seem to have any eyes!</span>")
return
target.visible_message("<span class='danger'>[user] squirts something into [target]'s eyes!</span>", \
@@ -69,22 +69,22 @@
add_logs(user, M, "squirted", R)
trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
user << "<span class='notice'>You transfer [trans] unit\s of the solution.</span>"
to_chat(user, "<span class='notice'>You transfer [trans] unit\s of the solution.</span>")
update_icon()
else
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers))
user << "<span class='notice'>You cannot directly remove reagents from [target].</span>"
to_chat(user, "<span class='notice'>You cannot directly remove reagents from [target].</span>")
return
if(!target.reagents.total_volume)
user << "<span class='warning'>[target] is empty!</span>"
to_chat(user, "<span class='warning'>[target] is empty!</span>")
return
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this)
user << "<span class='notice'>You fill [src] with [trans] unit\s of the solution.</span>"
to_chat(user, "<span class='notice'>You fill [src] with [trans] unit\s of the solution.</span>")
update_icon()
@@ -16,7 +16,7 @@
return
if(!reagents || !reagents.total_volume)
user << "<span class='warning'>[src] is empty!</span>"
to_chat(user, "<span class='warning'>[src] is empty!</span>")
return
if(istype(M))
@@ -46,7 +46,7 @@
M.visible_message("<span class='danger'>[user] feeds something to [M].</span>", "<span class='userdanger'>[user] feeds something to you.</span>")
add_logs(user, M, "fed", reagentlist(src))
else
user << "<span class='notice'>You swallow a gulp of [src].</span>"
to_chat(user, "<span class='notice'>You swallow a gulp of [src].</span>")
var/fraction = min(5/reagents.total_volume, 1)
reagents.reaction(M, INGEST, fraction)
spawn(5)
@@ -59,28 +59,28 @@
else if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
if(target.reagents && !target.reagents.total_volume)
user << "<span class='warning'>[target] is empty and can't be refilled!</span>"
to_chat(user, "<span class='warning'>[target] is empty and can't be refilled!</span>")
return
if(reagents.total_volume >= reagents.maximum_volume)
user << "<span class='notice'>[src] is full.</span>"
to_chat(user, "<span class='notice'>[src] is full.</span>")
return
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this)
user << "<span class='notice'>You fill [src] with [trans] unit\s of the contents of [target].</span>"
to_chat(user, "<span class='notice'>You fill [src] with [trans] unit\s of the contents of [target].</span>")
else if(target.is_open_container() && target.reagents) //Something like a glass. Player probably wants to transfer TO it.
if(!reagents.total_volume)
user << "<span class='warning'>[src] is empty!</span>"
to_chat(user, "<span class='warning'>[src] is empty!</span>")
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
user << "<span class='notice'>[target] is full.</span>"
to_chat(user, "<span class='notice'>[target] is full.</span>")
return
var/trans = reagents.trans_to(target, amount_per_transfer_from_this)
user << "<span class='notice'>You transfer [trans] unit\s of the solution to [target].</span>"
to_chat(user, "<span class='notice'>You transfer [trans] unit\s of the solution to [target].</span>")
else if(reagents.total_volume)
if(user.a_intent == INTENT_HARM)
@@ -96,18 +96,18 @@
if(reagents)
if(reagents.chem_temp < hotness) //can't be heated to be hotter than the source
reagents.chem_temp += added_heat
user << "<span class='notice'>You heat [src] with [I].</span>"
to_chat(user, "<span class='notice'>You heat [src] with [I].</span>")
reagents.handle_reactions()
else
user << "<span class='warning'>[src] is already hotter than [I]!</span>"
to_chat(user, "<span class='warning'>[src] is already hotter than [I]!</span>")
if(istype(I,/obj/item/weapon/reagent_containers/food/snacks/egg)) //breaking eggs
var/obj/item/weapon/reagent_containers/food/snacks/egg/E = I
if(reagents)
if(reagents.total_volume >= reagents.maximum_volume)
user << "<span class='notice'>[src] is full.</span>"
to_chat(user, "<span class='notice'>[src] is full.</span>")
else
user << "<span class='notice'>You break [E] in [src].</span>"
to_chat(user, "<span class='notice'>You break [E] in [src].</span>")
reagents.add_reagent("eggyolk", 5)
qdel(E)
return
@@ -251,13 +251,13 @@
/obj/item/weapon/reagent_containers/glass/bucket/attackby(obj/O, mob/user, params)
if(istype(O, /obj/item/weapon/mop))
if(reagents.total_volume < 1)
user << "<span class='warning'>[src] is out of water!</span>"
to_chat(user, "<span class='warning'>[src] is out of water!</span>")
else
reagents.trans_to(O, 5)
user << "<span class='notice'>You wet [O] in [src].</span>"
to_chat(user, "<span class='notice'>You wet [O] in [src].</span>")
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
else if(isprox(O))
user << "<span class='notice'>You add [O] to [src].</span>"
to_chat(user, "<span class='notice'>You add [O] to [src].</span>")
qdel(O)
qdel(src)
user.put_in_hands(new /obj/item/weapon/bucket_sensor)
@@ -267,7 +267,7 @@
/obj/item/weapon/reagent_containers/glass/bucket/equipped(mob/user, slot)
..()
if(slot == slot_head && reagents.total_volume)
user << "<span class='userdanger'>[src]'s contents spill all over you!</span>"
to_chat(user, "<span class='userdanger'>[src]'s contents spill all over you!</span>")
reagents.reaction(user, TOUCH)
reagents.clear_reagents()
@@ -18,14 +18,14 @@
/obj/item/weapon/reagent_containers/hypospray/attack(mob/living/M, mob/user)
if(!reagents.total_volume)
user << "<span class='warning'>[src] is empty!</span>"
to_chat(user, "<span class='warning'>[src] is empty!</span>")
return
if(!iscarbon(M))
return
if(reagents.total_volume && (ignore_flags || M.can_inject(user, 1))) // Ignore flag should be checked first or there will be an error message.
M << "<span class='warning'>You feel a tiny prick!</span>"
user << "<span class='notice'>You inject [M] with [src].</span>"
to_chat(M, "<span class='warning'>You feel a tiny prick!</span>")
to_chat(user, "<span class='notice'>You inject [M] with [src].</span>")
var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1)
reagents.reaction(M, INJECT, fraction)
@@ -39,7 +39,7 @@
else
trans = reagents.copy_to(M, amount_per_transfer_from_this)
user << "<span class='notice'>[trans] unit\s injected. [reagents.total_volume] unit\s remaining in [src].</span>"
to_chat(user, "<span class='notice'>[trans] unit\s injected. [reagents.total_volume] unit\s remaining in [src].</span>")
var/contained = english_list(injected)
@@ -78,7 +78,7 @@
/obj/item/weapon/reagent_containers/hypospray/medipen/attack(mob/M, mob/user)
if(!reagents.total_volume)
user << "<span class='warning'>[src] is empty!</span>"
to_chat(user, "<span class='warning'>[src] is empty!</span>")
return
..()
if(!iscyborg(user))
@@ -102,9 +102,9 @@
/obj/item/weapon/reagent_containers/hypospray/medipen/examine()
..()
if(reagents && reagents.reagent_list.len)
usr << "<span class='notice'>It is currently loaded.</span>"
to_chat(usr, "<span class='notice'>It is currently loaded.</span>")
else
usr << "<span class='notice'>It is spent.</span>"
to_chat(usr, "<span class='notice'>It is spent.</span>")
/obj/item/weapon/reagent_containers/hypospray/medipen/stimpack //goliath kiting
name = "stimpack medipen"
@@ -32,7 +32,7 @@
if(self_delay)
if(!do_mob(user, M, self_delay))
return 0
M << "<span class='notice'>You [apply_method] [src].</span>"
to_chat(M, "<span class='notice'>You [apply_method] [src].</span>")
else
M.visible_message("<span class='danger'>[user] attempts to force [M] to [apply_method] [src].</span>", \
@@ -55,11 +55,11 @@
if(!proximity) return
if(target.is_open_container() != 0 && target.reagents)
if(!target.reagents.total_volume)
user << "<span class='warning'>[target] is empty! There's nothing to dissolve [src] in.</span>"
to_chat(user, "<span class='warning'>[target] is empty! There's nothing to dissolve [src] in.</span>")
return
user << "<span class='notice'>You dissolve [src] in [target].</span>"
to_chat(user, "<span class='notice'>You dissolve [src] in [target].</span>")
for(var/mob/O in viewers(2, user)) //viewers is necessary here because of the small radius
O << "<span class='warning'>[user] slips something into [target]!</span>"
to_chat(O, "<span class='warning'>[user] slips something into [target]!</span>")
reagents.trans_to(target, reagents.total_volume)
qdel(src)
@@ -100,7 +100,7 @@
list_reagents = list("salbutamol" = 30)
roundstart = 1
/obj/item/weapon/reagent_containers/pill/charcoal
name = "antitoxin pill"
name = "charcoal pill"
desc = "Neutralizes many common toxins."
icon_state = "pill17"
list_reagents = list("charcoal" = 10)
@@ -27,19 +27,19 @@
if(istype(A, /obj/structure/reagent_dispensers) && get_dist(src,A) <= 1) //this block copypasted from reagent_containers/glass, for lack of a better solution
if(!A.reagents.total_volume && A.reagents)
user << "<span class='notice'>\The [A] is empty.</span>"
to_chat(user, "<span class='notice'>\The [A] is empty.</span>")
return
if(reagents.total_volume >= reagents.maximum_volume)
user << "<span class='notice'>\The [src] is full.</span>"
to_chat(user, "<span class='notice'>\The [src] is full.</span>")
return
var/trans = A.reagents.trans_to(src, 50) //transfer 50u , using the spray's transfer amount would take too long to refill
user << "<span class='notice'>You fill \the [src] with [trans] units of the contents of \the [A].</span>"
to_chat(user, "<span class='notice'>You fill \the [src] with [trans] units of the contents of \the [A].</span>")
return
if(reagents.total_volume < amount_per_transfer_from_this)
user << "<span class='warning'>\The [src] is empty!</span>"
to_chat(user, "<span class='warning'>\The [src] is empty!</span>")
return
spray(A)
@@ -115,7 +115,7 @@
else
amount_per_transfer_from_this = initial(amount_per_transfer_from_this)
current_range = spray_range
user << "<span class='notice'>You switch the nozzle setting to [stream_mode ? "\"stream\"":"\"spray\""]. You'll now use [amount_per_transfer_from_this] units per use.</span>"
to_chat(user, "<span class='notice'>You switch the nozzle setting to [stream_mode ? "\"stream\"":"\"spray\""]. You'll now use [amount_per_transfer_from_this] units per use.</span>")
/obj/item/weapon/reagent_containers/spray/verb/empty()
set name = "Empty Spray Bottle"
@@ -126,7 +126,7 @@
if (alert(usr, "Are you sure you want to empty that?", "Empty Bottle:", "Yes", "No") != "Yes")
return
if(isturf(usr.loc) && src.loc == usr)
usr << "<span class='notice'>You empty \the [src] onto the floor.</span>"
to_chat(usr, "<span class='notice'>You empty \the [src] onto the floor.</span>")
reagents.reaction(usr.loc)
src.reagents.clear_reagents()
@@ -66,12 +66,12 @@
var/mob/living/carbon/monkey/M
M = target
M.retaliate(user)
switch(mode)
if(SYRINGE_DRAW)
if(reagents.total_volume >= reagents.maximum_volume)
user << "<span class='notice'>The syringe is full.</span>"
to_chat(user, "<span class='notice'>The syringe is full.</span>")
return
if(L) //living mob
@@ -89,34 +89,34 @@
if(L.transfer_blood_to(src, drawn_amount))
user.visible_message("[user] takes a blood sample from [L].")
else
user << "<span class='warning'>You are unable to draw any blood from [L]!</span>"
to_chat(user, "<span class='warning'>You are unable to draw any blood from [L]!</span>")
else //if not mob
if(!target.reagents.total_volume)
user << "<span class='warning'>[target] is empty!</span>"
to_chat(user, "<span class='warning'>[target] is empty!</span>")
return
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers) && !istype(target,/obj/item/slime_extract))
user << "<span class='warning'>You cannot directly remove reagents from [target]!</span>"
to_chat(user, "<span class='warning'>You cannot directly remove reagents from [target]!</span>")
return
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) // transfer from, transfer to - who cares?
user << "<span class='notice'>You fill [src] with [trans] units of the solution.</span>"
to_chat(user, "<span class='notice'>You fill [src] with [trans] units of the solution.</span>")
if (reagents.total_volume >= reagents.maximum_volume)
mode=!mode
update_icon()
if(SYRINGE_INJECT)
if(!reagents.total_volume)
user << "<span class='notice'>[src] is empty.</span>"
to_chat(user, "<span class='notice'>[src] is empty.</span>")
return
if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/slime_extract) && !istype(target, /obj/item/clothing/mask/cigarette) && !istype(target, /obj/item/weapon/storage/fancy/cigarettes))
user << "<span class='warning'>You cannot directly fill [target]!</span>"
to_chat(user, "<span class='warning'>You cannot directly fill [target]!</span>")
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
user << "<span class='notice'>[target] is full.</span>"
to_chat(user, "<span class='notice'>[target] is full.</span>")
return
if(L) //living mob
@@ -142,12 +142,12 @@
add_logs(user, L, "injected", src, addition="which had [contained]")
else
log_attack("<font color='red'>[user.name] ([user.ckey]) injected [L.name] ([L.ckey]) with [src.name], which had [contained] (INTENT: [uppertext(user.a_intent)])</font>")
L.attack_log += "\[[time_stamp()]\] <font color='orange'>Injected themselves ([contained]) with [src.name].</font>"
L.log_message("<font color='orange'>Injected themselves ([contained]) with [src.name].</font>", INDIVIDUAL_ATTACK_LOG)
var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1)
reagents.reaction(L, INJECT, fraction)
reagents.trans_to(target, amount_per_transfer_from_this)
user << "<span class='notice'>You inject [amount_per_transfer_from_this] units of the solution. The syringe now contains [reagents.total_volume] units.</span>"
to_chat(user, "<span class='notice'>You inject [amount_per_transfer_from_this] units of the solution. The syringe now contains [reagents.total_volume] units.</span>")
if (reagents.total_volume <= 0 && mode==SYRINGE_INJECT)
mode = SYRINGE_DRAW
update_icon()