Merge remote-tracking branch 'upstream/master' into fasterspace

Conflicts:
	code/modules/mob/living/carbon/human/species.dm
This commit is contained in:
xxalpha
2015-03-29 15:30:38 +01:00
539 changed files with 10349 additions and 8150 deletions
+2 -2
View File
@@ -498,7 +498,7 @@ var/global/floorIsLava = 0
if(confirm == "Cancel")
return
if(confirm == "Yes")
world << "<span class='userdanger'>Restarting world!</span> <span class='adminnotice'> Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]!</span>"
world << "<span class='boldannounce'>Restarting world!</span> <span class='adminnotice'> Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]!</span>"
log_admin("[key_name(usr)] initiated a reboot.")
feedback_set_details("end_error","admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]")
@@ -653,7 +653,7 @@ var/global/floorIsLava = 0
if(!usr.client.holder) return
if( alert("Reboot server?",,"Yes","No") == "No")
return
world << "<span class='userdanger'>Rebooting world!</span> <span class='adminnotice'>Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]!</span>"
world << "<span class='boldannounce'>Rebooting world!</span> <span class='adminnotice'>Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]!</span>"
log_admin("[key_name(usr)] initiated an immediate reboot.")
feedback_set_details("end_error","immediate admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]")
+3 -2
View File
@@ -83,7 +83,8 @@ var/list/admin_verbs_fun = list(
/client/proc/object_say,
/client/proc/toggle_random_events,
/client/proc/set_ooc,
/client/proc/forceEvent
/client/proc/forceEvent,
/client/proc/bluespace_artillery
)
var/list/admin_verbs_spawn = list(
/datum/admins/proc/spawn_atom, /*allows us to spawn instances*/
@@ -319,7 +320,7 @@ var/list/admin_verbs_hideable = list(
if(holder && mob)
if(mob.invisibility == INVISIBILITY_OBSERVER)
mob.invisibility = initial(mob.invisibility)
mob << "<span class='userdanger'>Invisimin off. Invisibility reset.</span>"
mob << "<span class='boldannounce'>Invisimin off. Invisibility reset.</span>"
else
mob.invisibility = INVISIBILITY_OBSERVER
mob << "<span class='adminnotice'><b>Invisimin on. You are now as invisible as a ghost.</b></span>"
+2 -1
View File
@@ -21,4 +21,5 @@
H.facial_hair_color = H.hair_color
H.eye_color = random_eye_color()
H.dna.blood_type = random_blood_type()
H.update_icons()
H.update_body()
H.update_hair()
+2 -2
View File
@@ -229,8 +229,6 @@
if(iscarbon(M)) //Carbon stuff
if(ishuman(M))
M_job = M.job
else if(isslime(M))
M_job = "slime"
else if(ismonkey(M))
M_job = "Monkey"
else if(isalien(M)) //aliens
@@ -254,6 +252,8 @@
else if(isanimal(M)) //simple animals
if(iscorgi(M))
M_job = "Corgi"
else if(isslime(M))
M_job = "slime"
else
M_job = "Animal"
+18 -50
View File
@@ -265,13 +265,13 @@
if("sentinel") M.change_mob_type( /mob/living/carbon/alien/humanoid/sentinel , null, null, delmob )
if("larva") M.change_mob_type( /mob/living/carbon/alien/larva , null, null, delmob )
if("human") M.change_mob_type( /mob/living/carbon/human , null, null, delmob )
if("slime") M.change_mob_type( /mob/living/carbon/slime , null, null, delmob )
if("slime") M.change_mob_type( /mob/living/simple_animal/slime , null, null, delmob )
if("monkey") M.change_mob_type( /mob/living/carbon/monkey , null, null, delmob )
if("robot") M.change_mob_type( /mob/living/silicon/robot , null, null, delmob )
if("cat") M.change_mob_type( /mob/living/simple_animal/cat , null, null, delmob )
if("runtime") M.change_mob_type( /mob/living/simple_animal/cat/Runtime , null, null, delmob )
if("corgi") M.change_mob_type( /mob/living/simple_animal/corgi , null, null, delmob )
if("ian") M.change_mob_type( /mob/living/simple_animal/corgi/Ian , null, null, delmob )
if("cat") M.change_mob_type( /mob/living/simple_animal/pet/cat , null, null, delmob )
if("runtime") M.change_mob_type( /mob/living/simple_animal/pet/cat/Runtime , null, null, delmob )
if("corgi") M.change_mob_type( /mob/living/simple_animal/pet/corgi , null, null, delmob )
if("ian") M.change_mob_type( /mob/living/simple_animal/pet/corgi/Ian , null, null, delmob )
if("crab") M.change_mob_type( /mob/living/simple_animal/crab , null, null, delmob )
if("coffee") M.change_mob_type( /mob/living/simple_animal/crab/Coffee , null, null, delmob )
if("parrot") M.change_mob_type( /mob/living/simple_animal/parrot , null, null, delmob )
@@ -372,7 +372,7 @@
DB_ban_unban(M.ckey, BANTYPE_APPEARANCE)
appearance_unban(M)
message_admins("<span class='adminnotice'>[key_name_admin(usr)] removed [key_name_admin(M)]'s appearance ban</span>")
M << "<span class='userdanger'><BIG>[usr.client.ckey] has removed your appearance ban.</BIG></span>"
M << "<span class='boldannounce'><BIG>[usr.client.ckey] has removed your appearance ban.</BIG></span>"
else switch(alert("Appearance ban [M.ckey]?",,"Yes","No", "Cancel"))
if("Yes")
@@ -386,8 +386,8 @@
appearance_fullban(M, "[reason]; By [usr.ckey] on [time2text(world.realtime)]")
notes_add(M.ckey, "Appearance banned - [reason]")
message_admins("<span class='adminnotice'>[key_name_admin(usr)] appearance banned [key_name_admin(M)]</span>")
M << "<span class='userdanger'><BIG>You have been appearance banned by [usr.client.ckey].</BIG></span>"
M << "<span class='userdanger'>The reason is: [reason]</span>"
M << "<span class='boldannounce'><BIG>You have been appearance banned by [usr.client.ckey].</BIG></span>"
M << "<span class='boldannounce'>The reason is: [reason]</span>"
M << "<span class='danger'>Appearance ban can be lifted only upon request.</span>"
if(config.banappeals)
M << "<span class='danger'>To try to resolve this matter head to [config.banappeals]</span>"
@@ -767,8 +767,8 @@
msg += ", [job]"
notes_add(M.ckey, "Banned from [msg] - [reason]")
message_admins("<span class='adminnotice'>[key_name_admin(usr)] banned [key_name_admin(M)] from [msg] for [mins] minutes</span>")
M << "<span class='userdanger'><BIG>You have been jobbanned by [usr.client.ckey] from: [msg].</BIG></span>"
M << "<span class='userdanger'>The reason is: [reason]</span>"
M << "<span class='boldannounce'><BIG>You have been jobbanned by [usr.client.ckey] from: [msg].</BIG></span>"
M << "<span class='boldannounce'>The reason is: [reason]</span>"
M << "<span class='danger'>This jobban will be lifted in [mins] minutes.</span>"
href_list["jobban2"] = 1 // lets it fall through and refresh
return 1
@@ -787,8 +787,8 @@
else msg += ", [job]"
notes_add(M.ckey, "Banned from [msg] - [reason]")
message_admins("<span class='adminnotice'>[key_name_admin(usr)] banned [key_name_admin(M)] from [msg]</span>")
M << "<span class='userdanger'><BIG>You have been jobbanned by [usr.client.ckey] from: [msg].</BIG></span>"
M << "<span class='userdanger'>The reason is: [reason]</span>"
M << "<span class='boldannounce'><BIG>You have been jobbanned by [usr.client.ckey] from: [msg].</BIG></span>"
M << "<span class='boldannounce'>The reason is: [reason]</span>"
M << "<span class='danger'>Jobban can be lifted only upon request.</span>"
href_list["jobban2"] = 1 // lets it fall through and refresh
return 1
@@ -820,7 +820,7 @@
continue
if(msg)
message_admins("<span class='adminnotice'>[key_name_admin(usr)] unbanned [key_name_admin(M)] from [msg]</span>")
M << "<span class='userdanger'><BIG>You have been un-jobbanned by [usr.client.ckey] from [msg].</BIG></span>"
M << "<span class='boldannounce'><BIG>You have been un-jobbanned by [usr.client.ckey] from [msg].</BIG></span>"
href_list["jobban2"] = 1 // lets it fall through and refresh
return 1
return 0 //we didn't do anything!
@@ -884,7 +884,7 @@
return
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 1, mins)
ban_unban_log_save("[usr.client.ckey] has banned [M.ckey]. - Reason: [reason] - This will be removed in [mins] minutes.")
M << "<span class='userdanger'><BIG>You have been banned by [usr.client.ckey].\nReason: [reason]</BIG></span>"
M << "<span class='boldannounce'><BIG>You have been banned by [usr.client.ckey].\nReason: [reason]</BIG></span>"
M << "<span class='danger'>This is a temporary ban, it will be removed in [mins] minutes.</span>"
feedback_inc("ban_tmp",1)
DB_ban_record(BANTYPE_TEMP, M, mins, reason)
@@ -908,7 +908,7 @@
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0, M.lastKnownIP)
if("No")
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0)
M << "<span class='userdanger'><BIG>You have been banned by [usr.client.ckey].\nReason: [reason]</BIG></span>"
M << "<span class='boldannounce'><BIG>You have been banned by [usr.client.ckey].\nReason: [reason]</BIG></span>"
M << "<span class='danger'>This is a permanent ban.</span>"
if(config.banappeals)
M << "<span class='danger'>To try to resolve this matter head to [config.banappeals]</span>"
@@ -1469,40 +1469,8 @@
H << "<span class='adminnotice'>Your prayers have been answered!! You received the <b>best cookie</b>!</span>"
else if(href_list["BlueSpaceArtillery"])
if(!check_rights(R_ADMIN|R_FUN)) return
var/mob/living/M = locate(href_list["BlueSpaceArtillery"])
if(!isliving(M))
usr << "This can only be used on instances of type /mob/living"
return
if(alert(src.owner, "Are you sure you wish to hit [key_name(M)] with Blue Space Artillery?", "Confirm Firing?" , "Yes" , "No") != "Yes")
return
if(BSACooldown)
src.owner << "Standby! Reload cycle in progress! Gunnary crews ready in five seconds!"
return
BSACooldown = 1
spawn(50)
BSACooldown = 0
M << "You've been hit by bluespace artillery!"
log_admin("[key_name(M)] has been hit by Bluespace Artillery fired by [src.owner]")
message_admins("[key_name(M)] has been hit by Bluespace Artillery fired by [src.owner]")
var/turf/simulated/floor/T = get_turf(M)
if(istype(T))
if(prob(80)) T.break_tile_to_plating()
else T.break_tile()
if(M.health == 1)
M.gib()
else
M.adjustBruteLoss( min( 99 , (M.health - 1) ) )
M.Stun(20)
M.Weaken(20)
M.stuttering = 20
M.client.bluespace_artillery(M)
else if(href_list["CentcommReply"])
var/mob/living/carbon/human/H = locate(href_list["CentcommReply"])
@@ -1861,7 +1829,7 @@
MAX_EX_LIGHT_RANGE = 14
MAX_EX_HEAVY_RANGE = 7
MAX_EX_DEVESTATION_RANGE = 3
message_admins("<span class='userdanger'>[key_name_admin(usr)] changed the bomb cap to [MAX_EX_DEVESTATION_RANGE], [MAX_EX_HEAVY_RANGE], [MAX_EX_LIGHT_RANGE]</span>")
message_admins("<span class='boldannounce'>[key_name_admin(usr)] changed the bomb cap to [MAX_EX_DEVESTATION_RANGE], [MAX_EX_HEAVY_RANGE], [MAX_EX_LIGHT_RANGE]</span>")
log_admin("[key_name(usr)] changed the bomb cap to [MAX_EX_DEVESTATION_RANGE], [MAX_EX_HEAVY_RANGE], [MAX_EX_LIGHT_RANGE]")
if("lightsout")
@@ -1953,7 +1921,7 @@
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","RET")
for(var/mob/living/carbon/human/H in player_list)
H << "<span class='userdanger'>You suddenly feel stupid.</span>"
H << "<span class='boldannounce'>You suddenly feel stupid.</span>"
H.setBrainLoss(60)
message_admins("[key_name_admin(usr)] made everybody retarded")
if("eagles")//SCRAW
+34
View File
@@ -0,0 +1,34 @@
/client/proc/bluespace_artillery(var/mob/M in mob_list)
set name = "Bluespace Artillery"
set category = "Fun"
if(!holder || !check_rights(R_FUN))
return
var/mob/living/target = M
if(!isliving(target))
usr << "This can only be used on instances of type /mob/living"
return
if(alert(usr, "Are you sure you wish to hit [key_name(target)] with Blue Space Artillery?", "Confirm Firing?" , "Yes" , "No") != "Yes")
return
explosion(target.loc, 0, 0, 0, 0)
var/turf/simulated/floor/T = get_turf(target)
if(istype(T))
if(prob(80)) T.break_tile_to_plating()
else T.break_tile()
if(target.health <= 1)
target.gib()
else
target.adjustBruteLoss(min(99,(target.health - 1)))
target.Stun(20)
target.Weaken(20)
target.stuttering = 20
target << "You've been hit by bluespace artillery!"
log_admin("[target.name] has been hit by Bluespace Artillery fired by [usr]")
message_admins("[target.name] has been hit by Bluespace Artillery fired by [usr]")
+4 -8
View File
@@ -1161,13 +1161,12 @@ var/global/list/g_fancy_list_of_types = null
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/ert(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/hardsuit/ert(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/card/id/ert(M), slot_wear_id)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/captain(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/hardsuit/ert(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol/loyalpin(M), slot_in_backpack)
@@ -1178,14 +1177,13 @@ var/global/list/g_fancy_list_of_types = null
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/ert/sec(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/hardsuit/ert/sec(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/card/id/ert/Security(M), slot_wear_id)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security/sunglasses(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/handcuffs(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/hardsuit/ert/sec(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/carbine/loyalpin(M), slot_in_backpack)
@@ -1195,13 +1193,12 @@ var/global/list/g_fancy_list_of_types = null
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/ert/med(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/hardsuit/ert/med(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/card/id/ert/Medical(M), slot_wear_id)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/hardsuit/ert/med(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/hypospray/combat/nanites(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol/loyalpin(M), slot_in_backpack)
@@ -1214,13 +1211,12 @@ var/global/list/g_fancy_list_of_types = null
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/ert/engi(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/hardsuit/ert/engi(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/card/id/ert/Engineer(M), slot_wear_id)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/meson/engine(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/hardsuit/ert/engi(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/rcd/combat(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol/loyalpin(M), slot_in_backpack)
+1 -1
View File
@@ -13,7 +13,7 @@ var/sound/admin_sound
log_admin("[key_name(src)] played sound [S]")
message_admins("[key_name_admin(src)] played sound [S]")
if(SSevent.holiday == "April Fool's Day")
if(SSevent.holidays && SSevent.holidays[APRIL_FOOLS])
admin_sound.frequency = pick(0.5, 0.7, 0.8, 0.85, 0.9, 0.95, 1.1, 1.2, 1.4, 1.6, 2.0, 2.5)
src << "You feel the Honkmother messing with your song..."
+2 -2
View File
@@ -327,7 +327,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
new_character.loc = get_turf(synd_spawn)
call(/datum/game_mode/proc/equip_syndicate)(new_character)
if("Space Ninja")
var/ninja_spawn[] = list()
var/list/ninja_spawn = list()
for(var/obj/effect/landmark/L in landmarks_list)
if(L.name=="carpspawn")
ninja_spawn += L
@@ -707,7 +707,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
set category = "Special Verbs"
set name = "Attack Log"
usr << text("<span class='userdanger'>Attack Log for []</span>", mob)
usr << "<span class='boldannounce'>Attack Log for [mob]</span>"
for(var/t in M.attack_log)
usr << t
feedback_add_details("admin_verb","ATTL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+1 -1
View File
@@ -57,7 +57,7 @@
H.updatehealth()
else if(ismouse(target))
var/mob/living/simple_animal/mouse/M = target
visible_message("<span class='userdanger'>SPLAT!</span>")
visible_message("<span class='boldannounce'>SPLAT!</span>")
M.splat()
playsound(src.loc, 'sound/effects/snap.ogg', 50, 1)
armed = 0
+1 -2
View File
@@ -42,8 +42,7 @@
/obj/item/device/assembly/prox_sensor/HasProximity(atom/movable/AM as mob|obj)
if (istype(AM, /obj/effect/beam)) return
if (AM.move_speed < 12) sense()
return
sense()
/obj/item/device/assembly/prox_sensor/sense()
+4 -4
View File
@@ -7,10 +7,13 @@
origin_tech = "magnets=1"
flags = HEAR
attachable = 1
verb_say = "beeps"
verb_ask = "beeps"
verb_exclaim = "beeps"
var/listening = 0
var/recorded = "" //the activation message
/obj/item/device/assembly/voice/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq)
/obj/item/device/assembly/voice/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans)
if(speaker == src)
return
@@ -28,9 +31,6 @@
listening = !listening
say("[listening ? "Now" : "No longer"] recording input.")
/obj/machinery/vending/say_quote(text)
return "beeps, \"[text]\""
/obj/item/device/assembly/voice/attack_self(mob/user)
if(!user)
return 0
+3 -3
View File
@@ -105,10 +105,10 @@
icon_state = "grey baby slime" //sets the icon in the map editor
/obj/effect/landmark/corpse/slimeCorpse/createCorpse() //proc creates a dead slime
var/A = locate(/mob/living/carbon/slime/) in loc //variable A looks for a slime at the location of the landmark
var/A = locate(/mob/living/simple_animal/slime/) in loc //variable A looks for a slime at the location of the landmark
if(A) //if variable A is true
return //stop executing the proc
var/mob/living/carbon/slime/M = new(src.loc) //variable M is a new slime at the location of the landmark
var/mob/living/simple_animal/slime/M = new(src.loc) //variable M is a new slime at the location of the landmark
M.colour = src.mobcolour //slime colour is set by landmark's mobcolour var
M.adjustToxLoss(9001) //kills the slime, death() doesn't update its icon correctly
qdel(src)
@@ -196,7 +196,7 @@
corpseidaccess = "Station Engineer"
/obj/effect/landmark/corpse/engineer/rig
corpsesuit = /obj/item/clothing/suit/space/hardsuit
corpsesuit = /obj/item/clothing/suit/space/hardsuit/engine
corpsemask = /obj/item/clothing/mask/breath
/obj/effect/landmark/corpse/clown
+4 -4
View File
@@ -3,7 +3,7 @@ proc/createRandomZlevel()
return
var/list/potentialRandomZlevels = list()
world << "<span class='userdanger'>Searching for away missions...</span>"
world << "<span class='boldannounce'>Searching for away missions...</span>"
var/list/Lines = file2list("_maps/RandomZLevels/fileList.txt")
if(!Lines.len) return
for (var/t in Lines)
@@ -33,7 +33,7 @@ proc/createRandomZlevel()
if(potentialRandomZlevels.len)
world << "<span class='userdanger'>Loading away mission...</span>"
world << "<span class='boldannounce'>Loading away mission...</span>"
var/map = pick(potentialRandomZlevels)
var/file = file(map)
@@ -46,8 +46,8 @@ proc/createRandomZlevel()
continue
awaydestinations.Add(L)
world << "<span class='userdanger'>Away mission loaded.</span>"
world << "<span class='boldannounce'>Away mission loaded.</span>"
else
world << "<span class='userdanger'>No away missions found.</span>"
world << "<span class='boldannounce'>No away missions found.</span>"
return
+6 -11
View File
@@ -14,8 +14,9 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
"pAI", //7
"cultist" = /datum/game_mode/cult, //8
"blob" = /datum/game_mode/blob, //9
"monkey" = /datum/game_mode/monkey, //10
"gangster" = /datum/game_mode/gang //11
"ninja", //10
"monkey" = /datum/game_mode/monkey, //11
"gangster" = /datum/game_mode/gang //12
)
@@ -808,7 +809,7 @@ datum/preferences
if("ghost_whispers")
chat_toggles ^= CHAT_GHOSTWHISPER
if("ghost_radio")
chat_toggles ^= CHAT_GHOSTRADIO
@@ -888,11 +889,5 @@ datum/preferences
backbag = 1 //Same as above
character.backbag = backbag
/*
//Debugging report to track down a bug, which randomly assigned the plural gender to people.
if(character.gender in list(PLURAL, NEUTER))
if(isliving(src)) //Ghosts get neuter by default
message_admins("[character] ([character.ckey]) has spawned with their gender as plural or neuter. Please notify coders.")
character.gender = MALE
*/
character.update_body()
character.update_hair()
+7 -3
View File
@@ -2,7 +2,7 @@
#define SAVEFILE_VERSION_MIN 8
//This is the current version, anything below this will attempt to update (if it's not obsolete)
#define SAVEFILE_VERSION_MAX 10
#define SAVEFILE_VERSION_MAX 11
/*
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
This proc checks if the current directory of the savefile S needs updating
@@ -33,7 +33,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
/datum/preferences/proc/update_preferences(current_version)
if(current_version < 10)
toggles |= MEMBER_PUBLIC
return
if(current_version < 11)
chat_toggles = TOGGLES_DEFAULT_CHAT
toggles = TOGGLES_DEFAULT
//should this proc get fairly long (say 3 versions long),
//just increase SAVEFILE_VERSION_MIN so it's not as far behind
@@ -99,6 +101,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["UI_style"] >> UI_style
S["be_special"] >> be_special
S["default_slot"] >> default_slot
S["chat_toggles"] >> chat_toggles
S["toggles"] >> toggles
S["ghost_form"] >> ghost_form
@@ -132,6 +135,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["be_special"] << be_special
S["default_slot"] << default_slot
S["toggles"] << toggles
S["chat_toggles"] << chat_toggles
S["ghost_form"] << ghost_form
return 1
@@ -299,4 +303,4 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
/client/verb/savefile_import(path as text)
var/savefile/S = new /savefile(path)
S.ImportText("/",file("[path].txt"))
*/
*/
@@ -157,6 +157,19 @@
src << sound(null, repeat = 0, wait = 0, volume = 0, channel = 2)
feedback_add_details("admin_verb","TAmbi") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
// This needs a toggle because you people are awful and spammed terrible music
/client/verb/toggle_instruments()
set name = "Hear/Silence Instruments"
set category = "Preferences"
set desc = "Toggles hearing musical instruments like the violin and piano"
prefs.toggles ^= SOUND_INSTRUMENTS
prefs.save_preferences()
if(prefs.toggles & SOUND_INSTRUMENTS)
src << "You will now hear people playing musical instruments."
else
src << "You will no longer hear musical instruments."
feedback_add_details("admin_verb","TInstru") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
//be special
/client/verb/toggle_be_special(role in be_special_flags)
set name = "Toggle SpecialRole Candidacy"
+8 -2
View File
@@ -9,6 +9,9 @@
righthand_file = 'icons/mob/inhands/clothing_righthand.dmi'
var/alt_desc = null
var/obj/item/device/flashlight/F = null
var/can_flashlight = 0
//Ears: currently only used for headsets and earmuffs
/obj/item/clothing/ears
name = "ears"
@@ -76,6 +79,7 @@ BLIND // can't see anything
icon = 'icons/obj/clothing/hats.dmi'
body_parts_covered = HEAD
slot_flags = SLOT_HEAD
var/blockTracking = 0 //For AI tracking
//Mask
/obj/item/clothing/mask
@@ -266,7 +270,7 @@ atom/proc/generate_female_clothing(index,t_color,icon,type)
female_clothing_icons[index] = female_clothing_icon
/obj/item/clothing/under/verb/toggle()
set name = "Toggle Suit Sensors"
set name = "Adjust Suit Sensors"
set category = "Object"
set src in usr
var/mob/M = usr
@@ -329,7 +333,8 @@ atom/proc/generate_female_clothing(index,t_color,icon,type)
usr << "You adjust the suit back to normal."
src.adjusted = 0
else
src.fitted = NO_FEMALE_UNIFORM
if(src.fitted != FEMALE_UNIFORM_TOP)
src.fitted = NO_FEMALE_UNIFORM
src.item_color += "_d"
usr << "You adjust the suit to wear it more casually."
src.adjusted = 1
@@ -402,3 +407,4 @@ atom/proc/generate_female_clothing(index,t_color,icon,type)
if(!user.stat && user.canmove && !user.restrained())
return 1
return 0
+75 -1
View File
@@ -15,6 +15,17 @@
item_state = "nvgmeson"
darkness_view = 8
/obj/item/clothing/glasses/meson/gar
name = "gar mesons"
icon_state = "garm"
item_state = "garm"
desc = "Do the impossible, see the invisible!"
force = 10
throwforce = 10
throw_speed = 4
attack_verb = list("sliced")
hitsound = 'sound/weapons/bladeslice.ogg'
/obj/item/clothing/glasses/science
name = "Science Goggles"
desc = "A pair of snazzy goggles used to protect against chemical spills."
@@ -78,6 +89,44 @@
flash_protect = 1
tint = 1
/obj/item/clothing/glasses/sunglasses/garb
desc = "Go beyond impossible and kick reason to the curb!"
name = "black gar glasses"
icon_state = "garb"
item_state = "garb"
force = 10
throwforce = 10
throw_speed = 4
attack_verb = list("sliced")
hitsound = 'sound/weapons/bladeslice.ogg'
/obj/item/clothing/glasses/sunglasses/garb/supergarb
desc = "Believe in us humans."
name = "black giga gar glasses"
icon_state = "supergarb"
item_state = "garb"
force = 12
throwforce = 12
/obj/item/clothing/glasses/sunglasses/gar
desc = "Just who the hell do you think I am?!"
name = "gar glasses"
icon_state = "gar"
item_state = "gar"
force = 10
throwforce = 10
throw_speed = 4
attack_verb = list("sliced")
hitsound = 'sound/weapons/bladeslice.ogg'
/obj/item/clothing/glasses/sunglasses/gar/supergar
desc = "We evolve past the person we were a minute before. Little by little we advance with each turn. That's how a drill works!"
name = "giga gar glasses"
icon_state = "supergar"
item_state = "gar"
force = 12
throwforce = 12
/obj/item/clothing/glasses/welding
name = "welding goggles"
desc = "Protects the eyes from welders; approved by the mad scientist association."
@@ -155,4 +204,29 @@
name = "Optical Thermal Eyepatch"
desc = "An eyepatch with built-in thermal optics."
icon_state = "eyepatch"
item_state = "eyepatch"
item_state = "eyepatch"
/obj/item/clothing/glasses/cold
name = "cold goggles"
desc = "A pair of goggles meant for low temperatures."
icon_state = "cold"
item_state = "cold"
obj/item/clothing/glasses/heat
name = "heat goggles"
desc = "A pair of goggles meant for high temperatures."
icon_state = "heat"
item_state = "heat"
obj/item/clothing/glasses/orange
name = "orange glasses"
desc = "A sweet pair of orange shades."
icon_state = "orangeglasses"
item_state = "orangeglasses"
obj/item/clothing/glasses/red
name = "red glasses"
desc = "A sweet pair of red shades."
icon_state = "redglasses"
item_state = "redglasses"
+18
View File
@@ -65,3 +65,21 @@
emagged = 1
desc = desc + " The display flickers slightly."
/obj/item/clothing/glasses/hud/security/sunglasses/gars
name = "HUD gar glasses"
desc = "GAR glasses with a HUD."
icon_state = "gars"
item_state = "garb"
force = 10
throwforce = 10
throw_speed = 4
attack_verb = list("sliced")
hitsound = 'sound/weapons/bladeslice.ogg'
/obj/item/clothing/glasses/hud/security/sunglasses/gars/supergars
name = "giga HUD gar glasses"
desc = "GIGA GAR glasses with a HUD."
icon_state = "supergars"
item_state = "garb"
force = 12
throwforce = 12
-104
View File
@@ -1,104 +0,0 @@
/*
Dear ninja gloves
This isn't because I like you
this is because your father is a bastard
...
I guess you're a little cool.
-Sayu
*/
/obj/item/clothing/gloves/space_ninja
desc = "These nano-enhanced gloves insulate from electricity and provide fire resistance."
name = "ninja gloves"
icon_state = "s-ninja"
item_state = "s-ninja"
siemens_coefficient = 0
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
strip_delay = 120
var/draining = 0
var/candrain = 0
var/mindrain = 200
var/maxdrain = 400
/*
This runs the gamut of what ninja gloves can do
The other option would be a dedicated ninja touch bullshit proc on everything
which would probably more efficient, but ninjas are pretty rare.
This was mostly introduced to keep ninja code from contaminating other code;
with this in place it would be easier to untangle the rest of it.
For the drain proc, see events/ninja.dm
*/
/obj/item/clothing/gloves/space_ninja/Touch(var/atom/A,var/proximity)
if(!candrain || draining) return 0
var/mob/living/carbon/human/H = loc
if(!istype(H)) return 0 // what
var/obj/item/clothing/suit/space/space_ninja/suit = H.wear_suit
if(!istype(suit)) return 0
if(isturf(A)) return 0
if(!proximity) // todo: you could add ninja stars or computer hacking here
return 0
A.add_fingerprint(H)
// steal energy from powered things
if(istype(A,/mob/living/silicon/robot))
drain("CYBORG",A,suit)
return 1
if(istype(A,/obj/machinery/power/apc))
drain("APC",A,suit)
return 1
if(istype(A,/obj/structure/cable))
drain("WIRE",A,suit)
return 1
if(istype(A,/obj/structure/grille))
var/obj/structure/cable/C = locate() in A.loc
if(C)
drain("WIRE",C,suit)
return 1
if(istype(A,/obj/machinery/power/smes))
drain("SMES",A,suit)
return 1
if(istype(A,/obj/mecha))
drain("MECHA",A,suit)
return 1
if(istype(A,/obj/machinery/computer/rdconsole)) // download research
drain("RESEARCH",A,suit)
return 1
if(istype(A,/obj/machinery/r_n_d/server))
A.add_fingerprint(H)
var/obj/machinery/r_n_d/server/S = A
if(S.disabled)
return 1
if(S.shocked)
S.shock(H,50)
return 1
drain("RESEARCH",A,suit)
return 1
//do AI transfers
if(istype(A,/mob/living/silicon/ai))
suit.NAI.transfer_ai("AICORE", "AICARD", A, H)
return 1
if(istype(A,/obj/structure/AIcore/deactivated))
suit.NAI.transfer_ai("INACTIVE","AICARD",A, H)
return 1
if(istype(A,/obj/machinery/computer/aifixer))
suit.NAI.transfer_ai("AIFIXER","AICARD",A, H)
return 1
+170
View File
@@ -11,6 +11,28 @@
heat_protection = HEAD
max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT
strip_delay = 60
var/obj/machinery/camera/portable/helmetCam = null
var/spawnWithHelmetCam = 0
var/canAttachCam = 0
/obj/item/clothing/head/helmet/New()
..()
if(spawnWithHelmetCam)
helmetCam = new /obj/machinery/camera/portable(src)
helmetCam.c_tag = "Helmet-Mounted Camera (No User)([rand(1,999)])"
helmetCam.network = list("SS13")
update_icon()
/obj/item/clothing/head/helmet/emp_act(severity)
if(helmetCam) //Transfer the EMP to the camera so you can still disable it this way.
helmetCam.emp_act(severity)
..()
/obj/item/clothing/head/helmet/sec
spawnWithHelmetCam = 1
canAttachCam = 1
can_flashlight = 1
/obj/item/clothing/head/helmet/alt
name = "bulletproof helmet"
@@ -115,3 +137,151 @@ obj/item/clothing/head/helmet/bluetaghelm
armor = list(melee = 30, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0)
// Offer about the same protection as a hardhat.
flags_inv = HIDEEARS|HIDEEYES
//LightToggle
/obj/item/clothing/head/helmet/update_icon()
var/state = "[initial(icon_state)]"
if(helmetCam)
state += "-cam" //"helmet-cam"
if(F)
if(F.on)
state += "-flight-on" //"helmet-flight-on" // "helmet-cam-flight-on"
else
state += "-flight" //etc.
icon_state = state
if(istype(loc, /mob/living/carbon/human))
var/mob/living/carbon/human/H = loc
H.update_inv_head(0)
return
/obj/item/clothing/head/helmet/ui_action_click()
toggle_helmlight()
..()
/obj/item/clothing/head/helmet/attackby(var/obj/item/A as obj, mob/user as mob, params)
if(istype(A, /obj/item/device/flashlight/seclite))
var/obj/item/device/flashlight/seclite/S = A
if(can_flashlight)
if(!F)
user.drop_item()
user << "<span class='notice'>You click [S] into place on [src].</span>"
if(S.on)
SetLuminosity(0)
F = S
A.loc = src
update_icon()
update_helmlight(user)
verbs += /obj/item/clothing/head/helmet/proc/toggle_helmlight
return
if(istype(A, /obj/item/weapon/screwdriver))
if(F)
for(var/obj/item/device/flashlight/seclite/S in src)
user << "<span class='notice'>You unscrew the seclite from [src].</span>"
F = null
S.loc = get_turf(user)
update_helmlight(user)
S.update_brightness(user)
update_icon()
usr.update_inv_head(0)
verbs -= /obj/item/clothing/head/helmet/proc/toggle_helmlight
return
if(istype(A, /obj/item/weapon/camera_assembly))
if(!canAttachCam)
user << "<span class='warning'>You can't attach [A] to [src]!</span>"
return
if(helmetCam)
user << "<span class='notice'>[src] already has a mounted camera.</span>"
return
user.drop_item()
helmetCam = new /obj/machinery/camera/portable(src)
helmetCam.assembly = A
A.loc = helmetCam
helmetCam.c_tag = "Helmet-Mounted Camera (No User)([rand(1,999)])"
helmetCam.network = list("SS13")
update_icon()
user.visible_message("<span class='notice'>[user] attaches [A] to [src]</span>","<span class='notice'>You attach [A] to [src]</span>")
return
if(istype(A, /obj/item/weapon/crowbar))
if(!helmetCam)
..()
return
user.visible_message("<span class='notice'>[user] removes [helmetCam] from [src]</span>","<span class='notice'>You remove [helmetCam] from [src]</span>")
helmetCam.assembly.loc = get_turf(src)
helmetCam.assembly = null
qdel(helmetCam)
helmetCam = null
update_icon()
return
..()
return
/obj/item/clothing/head/helmet/proc/toggle_helmlight()
set name = "Toggle Helmetlight"
set category = "Object"
set desc = "Click to toggle your helmet's attached flashlight."
if(!F)
return
var/mob/living/carbon/human/user = usr
if(!isturf(user.loc))
user << "You cannot turn the light on while in this [user.loc]."
F.on = !F.on
user << "<span class='notice'>You toggle the helmetlight [F.on ? "on":"off"].</span>"
playsound(user, 'sound/weapons/empty.ogg', 100, 1)
update_helmlight(user)
return
/obj/item/clothing/head/helmet/proc/update_helmlight(var/mob/user = null)
if(F)
action_button_name = "Toggle Helmetlight"
if(F.on)
if(loc == user)
user.AddLuminosity(F.brightness_on)
else if(isturf(loc))
SetLuminosity(F.brightness_on)
else
if(loc == user)
user.AddLuminosity(-F.brightness_on)
else if(isturf(loc))
SetLuminosity(0)
update_icon()
else
action_button_name = null
if(loc == user)
user.AddLuminosity(-5)
else if(isturf(loc))
SetLuminosity(0)
return
/obj/item/clothing/head/helmet/pickup(mob/user)
if(F)
if(F.on)
user.AddLuminosity(F.brightness_on)
SetLuminosity(0)
/obj/item/clothing/head/helmet/equipped(mob/user)
if(helmetCam)
spawn(10) //Gives time for the game to set a name (lol rhyme) to roundstart officers.
helmetCam.c_tag = "Helmet-Mounted Camera ([user.name])([rand(1,999)])"
/obj/item/clothing/head/helmet/dropped(mob/user)
if(F)
if(F.on)
user.AddLuminosity(-F.brightness_on)
SetLuminosity(F.brightness_on)
if(helmetCam)
helmetCam.c_tag = "Helmet-Mounted Camera (No User)([rand(1,999)])"
+6 -1
View File
@@ -210,4 +210,9 @@
icon_state = "santahatnorm"
item_state = "that"
cold_protection = HEAD
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
/obj/item/clothing/head/jester
name = "jester hat"
desc = "A hat with bells, to add some merryness to the suit."
icon_state = "jester_hat"
+23 -11
View File
@@ -11,19 +11,31 @@
src.flipped=0
..()
verb/flip()
verb/flipcap()
set category = "Object"
set name = "Flip cap"
set src in usr
if(usr.canmove && !usr.stat && !usr.restrained())
src.flipped = !src.flipped
if(src.flipped)
icon_state = "[item_color]soft_flipped"
usr << "You flip the hat backwards."
else
icon_state = "[item_color]soft"
usr << "You flip the hat back in normal position."
usr.update_inv_head(0) //so our mob-overlays update
flip(usr)
/obj/item/clothing/head/soft/AltClick(var/mob/user)
flip(user)
/obj/item/clothing/head/soft/proc/flip(var/mob/user)
if(user.canmove && !user.stat && !user.restrained())
src.flipped = !src.flipped
if(src.flipped)
icon_state = "[item_color]soft_flipped"
user << "You flip the hat backwards."
else
icon_state = "[item_color]soft"
user << "You flip the hat back in normal position."
usr.update_inv_head(0) //so our mob-overlays update
/obj/item/clothing/head/soft/examine(mob/user)
..()
user << "<span class='notice'>Alt-click the cap to flip it [flipped ? "forwards" : "backwards"].</span>"
/obj/item/clothing/head/soft/red
name = "red cap"
+8 -1
View File
@@ -15,10 +15,17 @@
/obj/item/clothing/mask/breath/attack_self(var/mob/user)
adjustmask(user)
/obj/item/clothing/mask/breath/AltClick(var/mob/user)
adjustmask(user)
/obj/item/clothing/mask/breath/examine(mob/user)
..()
user << "<span class='notice'>Alt-click [src] to adjust it.</span>"
/obj/item/clothing/mask/breath/medical
desc = "A close-fitting sterile mask that can be connected to an air supply."
name = "medical mask"
icon_state = "medical"
item_state = "m_mask"
permeability_coefficient = 0.01
put_on_delay = 10
put_on_delay = 10
-29
View File
@@ -219,35 +219,6 @@
vchange = !vchange
user << "<span class='notice'>The voice changer is now [vchange ? "on" : "off"]!</span>"
/obj/item/clothing/mask/gas/voice/space_ninja
name = "ninja mask"
desc = "A close-fitting mask that acts both as an air filter and a post-modern fashion statement."
icon_state = "s-ninja"
item_state = "s-ninja_mask"
vchange = 1
strip_delay = 120
/obj/item/clothing/mask/gas/voice/space_ninja/speechModification(message)
if(voice == "Unknown")
if(copytext(message, 1, 2) != "*")
var/list/temp_message = text2list(message, " ")
var/list/pick_list = list()
for(var/i = 1, i <= temp_message.len, i++)
pick_list += i
for(var/i=1, i <= abs(temp_message.len/3), i++)
var/H = pick(pick_list)
if(findtext(temp_message[H], "*") || findtext(temp_message[H], ";") || findtext(temp_message[H], ":")) continue
temp_message[H] = ninjaspeak(temp_message[H])
pick_list -= H
message = list2text(temp_message, " ")
message = replacetext(message, "o", "?")
message = replacetext(message, "p", "?")
message = replacetext(message, "l", "?")
message = replacetext(message, "s", "?")
message = replacetext(message, "u", "?")
message = replacetext(message, "b", "?")
return message
/obj/item/clothing/mask/gas/clown_hat
name = "clown wig and mask"
@@ -29,20 +29,6 @@
flags = NOSLIP
armor = list(melee = 80, bullet = 60, laser = 50, energy = 50, bomb = 50, bio = 30, rad = 30)
/obj/item/clothing/shoes/space_ninja
name = "ninja shoes"
desc = "A pair of running shoes. Excellent for running and even better for smashing skulls."
icon_state = "s-ninja"
item_state = "secshoes"
permeability_coefficient = 0.01
flags = NOSLIP
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
strip_delay = 120
cold_protection = FEET
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
heat_protection = FEET
max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
/obj/item/clothing/shoes/sandal
desc = "A pair of rather plain, wooden sandals."
name = "sandals"
+54 -8
View File
@@ -1,6 +1,6 @@
//Regular (engineering) hardsuits
//Baseline hardsuits
/obj/item/clothing/head/helmet/space/hardsuit
name = "engineering hardsuit helmet"
name = "hardsuit helmet"
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding."
icon_state = "hardsuit0-engineering"
item_state = "eng_helm"
@@ -11,6 +11,7 @@
action_button_name = "Toggle Helmet Light"
flags = HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
/obj/item/clothing/head/helmet/space/hardsuit/attack_self(mob/user)
if(!isturf(user.loc))
user << "You cannot turn the light on while in this [user.loc]" //To prevent some lighting anomalities.
@@ -35,7 +36,7 @@
/obj/item/clothing/suit/space/hardsuit
name = "engineering hardsuit"
name = "hardsuit"
desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding."
icon_state = "hardsuit-engineering"
item_state = "eng_hardsuit"
@@ -45,9 +46,42 @@
var/obj/item/clothing/head/helmet/space/hardsuit/helmet
action_button_name = "Toggle Helmet"
var/helmettype = /obj/item/clothing/head/helmet/space/hardsuit
var/obj/item/weapon/tank/jetpack/suit/jetpack = null
/obj/item/clothing/suit/space/hardsuit/verb/Jetpack()
set name = "Toggle Inbuilt Jetpack"
set category = "Object"
jetpack.toggle()
/obj/item/clothing/suit/space/hardsuit/verb/Jetpack_Rockets()
set name = "Toggle Inbuilt Jetpack Stabilization"
set category = "Object"
jetpack.toggle_rockets()
//Engineering
/obj/item/clothing/head/helmet/space/hardsuit/engine
name = "engineering hardsuit helmet"
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding."
icon_state = "hardsuit0-engineering"
item_state = "eng_helm"
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
item_color = "engineering"
/obj/item/clothing/suit/space/hardsuit/engine
name = "engineering hardsuit"
desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding."
icon_state = "hardsuit-engineering"
item_state = "eng_hardsuit"
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine
/obj/item/clothing/suit/space/hardsuit/engine/New()
jetpack = new /obj/item/weapon/tank/jetpack/suit(src)
..()
//Atmospherics
/obj/item/clothing/head/helmet/space/hardsuit/atmos
/obj/item/clothing/head/helmet/space/hardsuit/engine/atmos
name = "atmospherics hardsuit helmet"
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has thermal shielding."
icon_state = "hardsuit0-atmospherics"
@@ -57,6 +91,8 @@
heat_protection = HEAD //Uncomment to enable firesuit protection
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
/obj/item/clothing/suit/space/hardsuit/engine/atmos
/obj/item/clothing/suit/space/hardsuit/atmos
name = "atmospherics hardsuit"
desc = "A special suit that protects against hazardous, low pressure environments. Has thermal shielding."
@@ -65,11 +101,11 @@
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0)
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/atmos
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/atmos
//Chief Engineer's hardsuit
/obj/item/clothing/head/helmet/space/hardsuit/elite
/obj/item/clothing/head/helmet/space/hardsuit/engine/elite
name = "advanced hardsuit helmet"
desc = "An advanced helmet designed for work in a hazardous, low pressure environment. Shines with a high polish."
icon_state = "hardsuit0-white"
@@ -79,7 +115,8 @@
heat_protection = HEAD //Uncomment to enable firesuit protection
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
/obj/item/clothing/suit/space/hardsuit/elite
/obj/item/clothing/suit/space/hardsuit/engine/elite
icon_state = "hardsuit-white"
name = "advanced hardsuit"
desc = "An advanced suit that protects against hazardous, low pressure environments. Shines with a high polish."
@@ -87,7 +124,7 @@
armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90)
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/elite
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/elite
//Mining hardsuit
@@ -100,6 +137,7 @@
armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50)
brightness_on = 7
/obj/item/clothing/suit/space/hardsuit/mining
icon_state = "hardsuit-mining"
name = "mining hardsuit"
@@ -198,6 +236,9 @@
..()
flags ^= NODROP
/obj/item/clothing/suit/space/hardsuit/syndi/New()
jetpack = new /obj/item/weapon/tank/jetpack/suit(src)
..()
//The Owl Hardsuit
/obj/item/clothing/head/helmet/space/hardsuit/syndi/owl
@@ -208,6 +249,7 @@
item_state = "s_helmet"
item_color = "owl"
/obj/item/clothing/suit/space/hardsuit/syndi/owl
name = "owl hardsuit"
desc = "A dual-mode advanced hardsuit designed for any crime-fighting situation. It is in travel mode."
@@ -231,6 +273,7 @@
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
unacidable = 1
/obj/item/clothing/suit/space/hardsuit/wizard
icon_state = "hardsuit-wiz"
name = "gem-encrusted hardsuit"
@@ -258,6 +301,7 @@
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50)
/obj/item/clothing/suit/space/hardsuit/medical
icon_state = "hardsuit-medical"
name = "medical hardsuit"
@@ -278,6 +322,7 @@
item_color = "sec"
armor = list(melee = 30, bullet = 15, laser = 30,energy = 10, bomb = 10, bio = 100, rad = 50)
/obj/item/clothing/suit/space/hardsuit/security
icon_state = "hardsuit-sec"
name = "security hardsuit"
@@ -294,6 +339,7 @@
item_color = "hos"
armor = list(melee = 45, bullet = 25, laser = 30,energy = 10, bomb = 25, bio = 100, rad = 50)
/obj/item/clothing/suit/space/hardsuit/security/hos
icon_state = "hardsuit-hos"
name = "head of security's hardsuit"
@@ -125,51 +125,58 @@
item_color = "ert_commander"
armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100)
strip_delay = 130
flags = HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE | THICKMATERIAL
flags = HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
brightness_on = 7
/obj/item/clothing/suit/space/hardsuit/ert
name = "emergency response team suit"
desc = "Standard issue command suit for the ERT."
icon_state = "ert_command"
item_state = "ert_command"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100)
slowdown = 0
strip_delay = 130
//ERT Security
/obj/item/clothing/head/helmet/space/hardsuit/ert/sec
desc = "Standard issue security helmet for the ERT."
icon_state = "hardsuit0-ert_security"
item_state = "hardsuit0-ert_security"
item_color = "ert_security"
/obj/item/clothing/suit/space/hardsuit/ert/sec
desc = "Standard issue security suit for the ERT."
icon_state = "ert_security"
item_state = "ert_security"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/sec
//ERT Engineering
/obj/item/clothing/head/helmet/space/hardsuit/ert/engi
desc = "Standard issue engineer helmet for the ERT."
icon_state = "hardsuit0-ert_engineer"
item_state = "hardsuit0-ert_engineer"
item_color = "ert_engineer"
/obj/item/clothing/suit/space/hardsuit/ert/engi
desc = "Standard issue engineer suit for the ERT."
icon_state = "ert_engineer"
item_state = "ert_engineer"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/engi
//ERT Medical
/obj/item/clothing/head/helmet/space/hardsuit/ert/med
desc = "Standard issue medical helmet for the ERT."
icon_state = "hardsuit0-ert_medical"
item_state = "hardsuit0-ert_medical"
item_color = "ert_medical"
/obj/item/clothing/suit/space/ert
name = "emergency response team suit"
desc = "Standard issue command suit for the ERT."
icon_state = "ert_command"
item_state = "ert_command"
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100)
slowdown = 0
strip_delay = 130
/obj/item/clothing/suit/space/ert/sec
desc = "Standard issue security suit for the ERT."
icon_state = "ert_security"
item_state = "ert_security"
/obj/item/clothing/suit/space/ert/engi
desc = "Standard issue engineer suit for the ERT."
icon_state = "ert_engineer"
item_state = "ert_engineer"
/obj/item/clothing/suit/space/ert/med
/obj/item/clothing/suit/space/hardsuit/ert/med
desc = "Standard issue medical suit for the ERT."
icon_state = "ert_medical"
item_state = "ert_medical"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/med
/obj/item/clothing/suit/space/eva
name = "EVA suit"
-65
View File
@@ -1,65 +0,0 @@
/obj/item/clothing/head/helmet/space/space_ninja
desc = "What may appear to be a simple black garment is in fact a highly sophisticated nano-weave helmet. Standard issue ninja gear."
name = "ninja hood"
icon_state = "s-ninja"
item_state = "s-ninja_mask"
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 25)
strip_delay = 12
unacidable = 1
/obj/item/clothing/suit/space/space_ninja
name = "ninja suit"
desc = "A unique, vaccum-proof suit of nano-enhanced armor designed specifically for Spider Clan assassins."
icon_state = "s-ninja"
item_state = "s-ninja_suit"
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/stock_parts/cell)
slowdown = 0
unacidable = 1
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
strip_delay = 12
//Important parts of the suit.
var/mob/living/carbon/affecting = null//The wearer.
var/obj/item/weapon/stock_parts/cell/cell//Starts out with a high-capacity cell using New().
var/datum/effect/effect/system/spark_spread/spark_system//To create sparks.
var/reagent_list[] = list("omnizine","salbutamol","spaceacillin","charcoal","nutriment","radium","potass_iodide")//The reagents ids which are added to the suit at New().
var/stored_research[]//For stealing station research.
var/obj/item/weapon/disk/tech_disk/t_disk//To copy design onto disk.
//Other articles of ninja gear worn together, used to easily reference them after initializing.
var/obj/item/clothing/head/helmet/space/space_ninja/n_hood
var/obj/item/clothing/shoes/space_ninja/n_shoes
var/obj/item/clothing/gloves/space_ninja/n_gloves
//Main function variables.
var/s_initialized = 0//Suit starts off.
var/s_coold = 0//If the suit is on cooldown. Can be used to attach different cooldowns to abilities. Ticks down every second based on suit ntick().
var/s_cost = 5.0//Base energy cost each ntick.
var/s_acost = 25.0//Additional cost for additional powers active.
var/k_cost = 200.0//Kamikaze energy cost each ntick.
var/k_damage = 1.0//Brute damage potentially done by Kamikaze each ntick.
var/s_delay = 40.0//How fast the suit does certain things, lower is faster. Can be overridden in specific procs. Also determines adverse probability.
var/a_transfer = 20.0//How much reagent is transferred when injecting.
var/r_maxamount = 80.0//How much reagent in total there is.
//Support function variables.
var/spideros = 0//Mode of SpiderOS. This can change so I won't bother listing the modes here (0 is hub). Check ninja_equipment.dm for how it all works.
var/s_active = 0//Stealth off.
var/s_busy = 0//Is the suit busy with a process? Like AI hacking. Used for safety functions.
var/kamikaze = 0//Kamikaze on or off.
var/k_unlock = 0//To unlock Kamikaze.
//Ability function variables.
var/s_bombs = 10.0//Number of starting ninja smoke bombs.
var/a_boost = 3.0//Number of adrenaline boosters.
//Onboard AI related variables.
var/obj/item/device/aicard/NAI //Integrated intellicard.
var/obj/item/device/paicard/pai//A slot for a pAI device
var/obj/effect/overlay/hologram//Is the AI hologram on or off? Visible only to the wearer of the suit. This works by attaching an image to a blank overlay.
var/s_control = 1//If user in control of the suit.
+1 -2
View File
@@ -91,10 +91,9 @@
item_state = "armor_reflec"
blood_overlay_type = "armor"
armor = list(melee = 10, bullet = 10, laser = 80, energy = 50, bomb = 0, bio = 0, rad = 0)
reflect_chance = 40
var/hit_reflect_chance = 40
/obj/item/clothing/suit/armor/laserproof/IsReflect(var/def_zone)
var/hit_reflect_chance = reflect_chance
if(!(def_zone in list("chest", "groin"))) //If not shot where ablative is covering you, you don't get the reflection bonus!
hit_reflect_chance = 0
if (prob(hit_reflect_chance))
+10 -1
View File
@@ -187,6 +187,15 @@
item_state = "ponchoshame"
flags = NODROP
/obj/item/clothing/suit/whitedress
name = "white dress"
desc = "A fancy white dress."
icon_state = "white_dress"
item_state = "w_suit"
body_parts_covered = CHEST|GROIN|LEGS|FEET
flags_inv = HIDEJUMPSUIT|HIDESHOES
/*
* Misc
*/
@@ -306,4 +315,4 @@
name = "mining winter coat"
icon_state = "coatminer"
allowed = list(/obj/item/weapon/pickaxe,/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter)
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
+4 -1
View File
@@ -80,6 +80,9 @@
/obj/item/clothing/suit/space/hardsuit/New()
MakeHelmet()
if(!jetpack)
verbs -= /obj/item/clothing/suit/space/hardsuit/verb/Jetpack
verbs -= /obj/item/clothing/suit/space/hardsuit/verb/Jetpack_Rockets
..()
/obj/item/clothing/suit/space/hardsuit/proc/MakeHelmet()
@@ -136,4 +139,4 @@
else
H << "You disengage the helmet on the hardsuit."
playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1)
RemoveHelmet()
RemoveHelmet()
+8 -1
View File
@@ -455,7 +455,7 @@
item_state = "plaid_red"
item_color = "plaid_red"
fitted = FEMALE_UNIFORM_TOP
can_adjust = 0
can_adjust = 1
/obj/item/clothing/under/plaid_skirt/blue
name = "blue plaid skirt"
@@ -470,3 +470,10 @@
icon_state = "plaid_purple"
item_state = "plaid_purple"
item_color = "plaid_purple"
/obj/item/clothing/under/jester
name = "jester suit"
desc = "A jolly dress, well suited to entertain your master, nuncle."
icon_state = "jester"
item_color = "jester"
can_adjust = 0
+10
View File
@@ -277,3 +277,13 @@
name = "striped blue scarf"
icon_state = "stripedbluescarf"
item_color = "stripedbluescarf"
/obj/item/clothing/tie/petcollar //don't really wear this though please c'mon seriously guys
name = "pet collar"
icon_state = "petcollar"
item_color = "petcollar"
var/tagname = null
/obj/item/clothing/tie/petcollar/attack_self(mob/user as mob)
tagname = copytext(sanitize(input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot") as null|text),1,MAX_NAME_LEN)
name = "[initial(name)] - [tagname]"
+41 -3
View File
@@ -5,7 +5,7 @@
var/tools[] = list() //type paths of items needed but not consumed
var/time = 30 //time in deciseconds
var/parts[] = list() //type paths of items that will be placed in the result
var/chem_catalists[] = list() //like tools but for reagents
var/chem_catalysts[] = list() //like tools but for reagents
/datum/table_recipe/IED
@@ -49,7 +49,7 @@
name = "Secbot"
result = /obj/machinery/bot/secbot
reqs = list(/obj/item/device/assembly/signaler = 1,
/obj/item/clothing/head/helmet = 1,
/obj/item/clothing/head/helmet/sec = 1,
/obj/item/weapon/melee/baton = 1,
/obj/item/device/assembly/prox_sensor = 1,
/obj/item/robot_parts/r_arm = 1)
@@ -87,7 +87,9 @@
result = /obj/item/weapon/flamethrower
reqs = list(/obj/item/weapon/weldingtool = 1,
/obj/item/device/assembly/igniter = 1,
/obj/item/stack/rods = 2)
/obj/item/stack/rods = 1)
parts = list(/obj/item/device/assembly/igniter = 1,
/obj/item/weapon/weldingtool = 1)
tools = list(/obj/item/weapon/screwdriver)
time = 20
@@ -127,6 +129,42 @@
tools = list(/obj/item/weapon/screwdriver)
time = 5
/datum/table_recipe/ionslug
name = "Ion Scatter Shell"
result = /obj/item/ammo_casing/shotgun/ion
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/obj/item/weapon/stock_parts/micro_laser/ultra = 1,
/obj/item/weapon/stock_parts/subspace/crystal = 1)
tools = list(/obj/item/weapon/screwdriver)
time = 5
/datum/table_recipe/improvisedslug
name = "Improvised Shotgun Shell"
result = /obj/item/ammo_casing/shotgun/improvised
reqs = list(/obj/item/weapon/grenade/chem_grenade = 1,
/obj/item/stack/sheet/metal = 1,
/obj/item/stack/cable_coil = 1,
/datum/reagent/fuel = 10)
tools = list(/obj/item/weapon/screwdriver)
time = 5
/datum/table_recipe/improvisedslugoverload
name = "Overload Improvised Shell"
result = /obj/item/ammo_casing/shotgun/improvised/overload
reqs = list(/obj/item/ammo_casing/shotgun/improvised = 1,
/datum/reagent/blackpowder = 5)
tools = list(/obj/item/weapon/screwdriver)
time = 5
/datum/table_recipe/laserslug
name = "Laser Slug Shell"
result = /obj/item/ammo_casing/shotgun/laserslug
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/obj/item/weapon/stock_parts/capacitor/adv = 1,
/obj/item/weapon/stock_parts/micro_laser/high = 1)
tools = list(/obj/item/weapon/screwdriver)
time = 5
/datum/table_recipe/ishotgun
name = "Improvised Shotgun"
result = /obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised
+65 -6
View File
@@ -12,16 +12,34 @@
check_table()
main_loop:
for(var/A in R.reqs)
var/needed_amount = R.reqs[A]
for(var/B in table_contents)
if(ispath(B, A))
if(table_contents[B] >= R.reqs[A])
continue main_loop
else
needed_amount -= table_contents[B]
if(needed_amount <= 0)
continue main_loop
else
continue
return 0
for(var/A in R.chem_catalists)
if(table_contents[A] < R.chem_catalists[A])
for(var/A in R.chem_catalysts)
if(table_contents[A] < R.chem_catalysts[A])
return 0
return 1
/obj/structure/table/proc/partial_check_contents(datum/table_recipe/R)
check_table()
var/required_amount = max(round(R.reqs.len/2), 1)
var/amount = 0
for(var/A in R.reqs)
for(var/B in table_contents)
if(ispath(B, A))
amount += 1
if(amount >= required_amount)
return 1
/obj/structure/table/proc/check_table()
table_contents = list()
for(var/obj/item/I in loc)
@@ -65,6 +83,9 @@
if(!check_contents(R) || !check_tools(user, R))
return 0
var/atom/movable/I = new R.result (loc)
if(istype(I, /obj/item/weapon/reagent_containers/food/snacks))
var/obj/item/weapon/reagent_containers/food/snacks/S = I
S.create_reagents(S.volume)
var/list/parts = del_reqs(R, I)
for(var/A in parts)
if(istype(A, /obj/item))
@@ -104,15 +125,18 @@
item_loop:
for(var/B in table_contents)
if(ispath(B, A))
while(amt > 0)
var/item_amount = table_contents[B]
while(item_amount > 0)
I = locate(B) in loc
Deletion.Add(I)
I.loc = null //remove it from the table loc so that we don't locate the same item every time (will be relocated inside the crafted item in construct_item())
amt--
item_amount--
if(reagenttransfer && istype(I,/obj/item/weapon/reagent_containers))
var/obj/item/weapon/reagent_containers/RC = I
RC.reagents.trans_to(resultobject, RC.reagents.total_volume)
break item_loop
if(amt <= 0)
break item_loop
else
var/datum/reagent/RG = new A
reagent_loop:
@@ -164,11 +188,46 @@
dat += "Crafting in progress...</div>"
else
for(var/datum/table_recipe/R in table_recipes)
var/name_text = ""
var/req_text = ""
var/tool_text = ""
var/catalist_text = ""
if(check_contents(R))
dat += "<A href='?src=\ref[src];make=\ref[R]'>[R.name]</A><BR>"
name_text ="<A href='?src=\ref[src];make=\ref[R]'>[R.name]</A>"
else if(partial_check_contents(R))
name_text = "<span class='linkOff'>[R.name]</span>"
if(name_text)
for(var/A in R.reqs)
if(ispath(A, /obj))
var/obj/O = new A
req_text += " [R.reqs[A]] [O.name]"
qdel(O)
if(ispath(A, /datum/reagent))
var/datum/reagent/RE = new A
req_text += " [R.reqs[A]] [RE.name]"
qdel(RE)
if(R.chem_catalysts.len)
catalist_text += ", Catalysts:"
for(var/C in R.chem_catalysts)
if(ispath(C, /datum/reagent))
var/datum/reagent/RE = new C
catalist_text += " [R.chem_catalysts[C]] [RE.name]"
qdel(RE)
if(R.tools.len)
tool_text += ", Tools:"
for(var/O in R.tools)
if(ispath(O, /obj))
var/obj/T = new O
tool_text += " [R.tools[O]] [T.name]"
qdel(T)
dat += "[name_text][req_text][tool_text][catalist_text]<BR>"
dat += "</div>"
var/datum/browser/popup = new(user, "table", "Table", 300, 300)
var/datum/browser/popup = new(user, "table", "Table", 500, 500)
popup.set_content(dat)
popup.open()
return
+1 -1
View File
@@ -5,7 +5,7 @@
/obj/item/device/detective_scanner
name = "forensic scanner"
desc = "Used to remotely scan objects and biomass for DNA and fingerprints. Can print a report of the findings."
icon_state = "forensic1"
icon_state = "forensicnew"
w_class = 3.0
item_state = "electronic"
flags = CONDUCT | NOBLUDGEON
+1 -2
View File
@@ -44,8 +44,7 @@
var/list/flashers = list()
for(var/mob/living/carbon/human/M in viewers(TO, null))
if(M:eyecheck() <= 0)
flick("e_flash", M.flash) // flash dose faggots
if(M.flash_eyes())
flashers += M
var/y_distance = TO.y - FROM.y
+1 -1
View File
@@ -30,7 +30,7 @@
if(newAnomaly.loc)
explosion(get_turf(newAnomaly), -1,0,3, flame_range = 4)
var/mob/living/carbon/slime/S = new/mob/living/carbon/slime(get_turf(newAnomaly))
var/mob/living/simple_animal/slime/S = new/mob/living/simple_animal/slime(get_turf(newAnomaly))
S.colour = pick("red", "orange")
qdel(newAnomaly)
+1 -1
View File
@@ -13,7 +13,7 @@
var/max_occurrences = 20 //The maximum number of times this event can occur (naturally), it can still be forced.
//By setting this to 0 you can effectively disable an event.
var/holidayID //string which should match the events.holiday variable if you wish this event to be holiday-specific
var/holidayID = "" //string which should be in the SSevents.holidays list if you wish this event to be holiday-specific
//anything with a (non-null) holidayID which does not match holiday, cannot run.
var/wizardevent = 0
+1 -1
View File
@@ -2,7 +2,7 @@
/datum/round_event_control/fridaythethirteen
name = "Friday the 13th"
holidayID = "Friday the 13th"
holidayID = FRIDAY_13TH
typepath = /datum/round_event/fridaythethirteen
weight = -1
max_occurrences = 1
+4 -4
View File
@@ -1,6 +1,6 @@
/datum/round_event_control/spooky
name = "2 SPOOKY! (Halloween)"
holidayID = "Halloween"
holidayID = HALLOWEEN
typepath = /datum/round_event/spooky
weight = -1 //forces it to be called, regardless of weight
max_occurrences = 1
@@ -17,7 +17,7 @@
else
hardset_dna(H, null, null, null, null, /datum/species/zombie)
for(var/mob/living/simple_animal/corgi/Ian/Ian in mob_list)
for(var/mob/living/simple_animal/pet/corgi/Ian/Ian in mob_list)
Ian.place_on_head(new /obj/item/weapon/bedsheet(Ian))
/datum/round_event/spooky/announce()
@@ -27,7 +27,7 @@
/datum/round_event_control/carp_migration/eyeballs
name = "Eyeball Migration"
typepath = /datum/round_event/carp_migration/eyeballs
holidayID = "Halloween"
holidayID = HALLOWEEN
weight = 25
earliest_start = 0
@@ -40,7 +40,7 @@
/datum/round_event_control/meteor_wave/spooky
name = "Pumpkin Wave"
typepath = /datum/round_event/meteor_wave/spooky
holidayID = "Halloween"
holidayID = HALLOWEEN
weight = 20
max_occurrences = 2
+5 -5
View File
@@ -1,6 +1,6 @@
/datum/round_event_control/treevenge
name = "Treevenge (Christmas)"
holidayID = "Xmas"
holidayID = CHRISTMAS
typepath = /datum/round_event/treevenge
max_occurrences = 1
weight = 20
@@ -17,7 +17,7 @@
//this is an example of a possible round-start event
/datum/round_event_control/presents
name = "Presents under Trees (Christmas)"
holidayID = "Xmas"
holidayID = CHRISTMAS
typepath = /datum/round_event/presents
weight = -1 //forces it to be called, regardless of weight
max_occurrences = 1
@@ -29,7 +29,7 @@
for(var/turf/simulated/floor/T in orange(1,xmas))
for(var/i=1,i<=rand(1,5),i++)
new /obj/item/weapon/a_gift(T)
for(var/mob/living/simple_animal/corgi/Ian/Ian in mob_list)
for(var/mob/living/simple_animal/pet/corgi/Ian/Ian in mob_list)
Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat(Ian))
for(var/obj/machinery/computer/security/telescreen/entertainment/Monitor in machines)
Monitor.icon_state = "entertainment_xmas"
@@ -81,7 +81,7 @@
/datum/round_event_control/santa
name = "Santa is coming to town! (Christmas)"
holidayID = "Xmas"
holidayID = CHRISTMAS
typepath = /datum/round_event/santa
weight = 150
max_occurrences = 1
@@ -148,4 +148,4 @@
telespell.clothes_req = 0 //santa robes aren't actually magical.
santa.mind.spell_list += telespell //does the station have chimneys? WHO KNOWS!
santa << "<span class='userdanger'>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>"
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>"
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -37,4 +37,4 @@
smoke.set_up(R, rand(1, 2), 0, vent, 0, silent = 1)
playsound(vent.loc, 'sound/effects/smoke.ogg', 50, 1, -3)
smoke.start()
R.delete() //GC the reagents
qdel(R)
@@ -1,6 +1,6 @@
/datum/round_event_control/wizard/deprevolt //stationwide!
name = "Departmental Uprising"
weight = 2
weight = 0 //An order that requires order in a round of chaos was maybe not the best idea. Requiescat in pace departmental uprising August 2014 - March 2015
typepath = /datum/round_event/wizard/deprevolt/
max_occurrences = 1
earliest_start = 0
+1 -1
View File
@@ -14,7 +14,7 @@
if(!candidates) return //Sad Trombone
var/client/C = pick(candidates)
new /obj/effect/effect/harmless_smoke(W.loc)
PoolOrNew(/obj/effect/effect/harmless_smoke, W.loc)
var/mob/living/carbon/human/I = new /mob/living/carbon/human(W.loc)
I.real_name = W.real_name
+10
View File
@@ -5,6 +5,11 @@
max_occurrences = 1
earliest_start = 0
/datum/round_event_control/wizard/summonguns/New()
if(config.no_summon_guns)
weight = 0
..()
/datum/round_event/wizard/summonguns/start()
rightandwrong(0,,10)
@@ -15,5 +20,10 @@
max_occurrences = 1
earliest_start = 0
/datum/round_event_control/wizard/summonmagic/New()
if(config.no_summon_magic)
weight = 0
..()
/datum/round_event/wizard/summonmagic/start()
rightandwrong(1,,10)
@@ -92,8 +92,8 @@
target.visible_message("<span class='danger'>[user] has hit [target][head_attack_message] with a bottle of [src.name]!</span>", \
"<span class='userdanger'>[user] has hit [target][head_attack_message] with a bottle of [src.name]!</span>")
else
user.visible_message("<span class='danger'>[target] hits himself with a bottle of [src.name][head_attack_message]!</span>", \
"<span class='userdanger'>[target] hits himself with a bottle of [src.name][head_attack_message]!</span>")
user.visible_message("<span class='danger'>[target] hits \himself with a bottle of [src.name][head_attack_message]!</span>", \
"<span class='userdanger'>[target] hits \himself with a bottle of [src.name][head_attack_message]!</span>")
//Attack logs
add_logs(user, target, "attacked", object="bottle")
+11 -8
View File
@@ -15,6 +15,7 @@
/obj/item/weapon/reagent_containers/food/snacks/customizable
bitesize = 4
w_class = 3
volume = 60
var/ingMax = 12
var/list/ingredients = list()
@@ -67,9 +68,8 @@
return
name = "[customname] [initial(name)]"
else . = ..()
return
/obj/item/weapon/reagent_containers/food/snacks/customizable/proc/update_name(obj/item/weapon/reagent_containers/food/snacks/S)
for(var/obj/item/I in ingredients)
@@ -109,12 +109,14 @@
I.pixel_x = rand(-1,1)
I.pixel_y = rand(-1,1)
if(INGREDIENTS_STACK)
I.pixel_y = ingredients.len
I.pixel_x = rand(-1,1)
I.pixel_y = 2 * ingredients.len - 1
if(INGREDIENTS_STACKPLUSTOP)
I.pixel_y = ingredients.len
I.pixel_x = rand(-1,1)
I.pixel_y = 2 * ingredients.len - 1
overlays.Cut(ingredients.len)
var/image/TOP = new(icon, "[icon_state]_top")
TOP.pixel_y = ingredients.len + 4
TOP.pixel_y = 2 * ingredients.len + 3
overlays += I
overlays += TOP
return
@@ -127,7 +129,8 @@
overlays += I
/obj/item/weapon/reagent_containers/food/snacks/customizable/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/slice)
/obj/item/weapon/reagent_containers/food/snacks/customizable/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/slice, reagents_per_slice)
..()
slice.name = "[customname] [initial(slice.name)]"
slice.filling_color = filling_color
slice.update_overlays(src)
@@ -233,12 +236,12 @@
BS.reagents.trans_to(src, BS.reagents.total_volume)
ingMax = ingredients.len //can't add more ingredients after that
var/image/TOP = new(icon, "[BS.icon_state]")
TOP.pixel_y = ingredients.len + 4
TOP.pixel_y = 2 * ingredients.len + 3
overlays += TOP
if(istype(BS, /obj/item/weapon/reagent_containers/food/snacks/breadslice/custom))
var/image/O = new(icon, "[initial(BS.icon_state)]_filling")
O.color = BS.filling_color
O.pixel_y = ingredients.len + 4
O.pixel_y = 2 * ingredients.len + 3
overlays += O
qdel(BS)
return
+19 -6
View File
@@ -17,6 +17,7 @@
var/filling_color = "#FFFFFF" //color to use when added to custom food.
var/custom_food_type = null //for food customizing. path of the custom food to create
var/junkiness = 0 //for junk food. used to lower human satiety.
var/list/bonus_reagents = list() //the amount of reagents (usually nutriment and vitamin) added to crafted/cooked snacks, on top of the ingredients reagents.
//Placeholder for effect that trigger on eating that aren't tied to reagents.
@@ -50,7 +51,7 @@
M.unEquip(src) //so icons update :[
qdel(src)
return 0
if(istype(M, /mob/living/carbon))
if(iscarbon(M))
if(!canconsume(M, user))
return 0
@@ -78,7 +79,7 @@
M << "<span class='notice'>You cannot force any more of \the [src] to go down your throat.</span>"
return 0
else
if(! (isslime(M) || isbrain(M)) ) //If you're feeding it to someone else.
if(!isbrain(M)) //If you're feeding it to someone else.
if(wrapped)
return 0
if(fullness <= (600 * (1 + M.overeatduration / 1000)))
@@ -154,6 +155,12 @@
if(slice(sharpness, W, user))
return 1
//Called when you finish tablecrafting a snack.
/obj/item/weapon/reagent_containers/food/snacks/CheckParts()
if(bonus_reagents.len)
for(var/r_id in bonus_reagents)
var/amount = bonus_reagents[r_id]
reagents.add_reagent(r_id, amount)
/obj/item/weapon/reagent_containers/food/snacks/proc/slice(var/accuracy, obj/item/weapon/W, mob/user)
if((slices_num <= 0 || !slices_num) || !slice_path) //is the food sliceable?
@@ -186,11 +193,12 @@
var/reagents_per_slice = reagents.total_volume/slices_num
for(var/i=1 to (slices_num-slices_lost))
var/obj/item/weapon/reagent_containers/food/snacks/slice = new slice_path (loc)
initialize_slice(slice)
reagents.trans_to(slice,reagents_per_slice)
initialize_slice(slice, reagents_per_slice)
qdel(src)
/obj/item/weapon/reagent_containers/food/snacks/proc/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/slice)
/obj/item/weapon/reagent_containers/food/snacks/proc/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/slice, reagents_per_slice)
slice.create_reagents(slice.volume)
reagents.trans_to(slice,reagents_per_slice)
return
/obj/item/weapon/reagent_containers/food/snacks/proc/update_overlays(obj/item/weapon/reagent_containers/food/snacks/S)
@@ -204,9 +212,14 @@
overlays += I
// initialize_cooked_food() is called when microwaving the food
/obj/item/weapon/reagent_containers/food/snacks/proc/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S)
/obj/item/weapon/reagent_containers/food/snacks/proc/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency = 1)
S.create_reagents(S.volume)
if(reagents)
reagents.trans_to(S, reagents.total_volume)
if(S.bonus_reagents.len)
for(var/r_id in S.bonus_reagents)
var/amount = S.bonus_reagents[r_id] * cooking_efficiency
S.reagents.add_reagent(r_id, amount)
/obj/item/weapon/reagent_containers/food/snacks/Destroy()
if(contents)
@@ -8,9 +8,8 @@
icon = 'icons/obj/food_ingredients.dmi'
icon_state = "dough"
cooked_type = /obj/item/weapon/reagent_containers/food/snacks/store/bread/plain
list_reagents = list("nutriment" = 3)
list_reagents = list("nutriment" = 6)
w_class = 3
flags = OPENCONTAINER
// Dough + rolling pin = flat dough
@@ -35,9 +34,8 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/doughslice
slices_num = 3
cooked_type = /obj/item/weapon/reagent_containers/food/snacks/pizzabread
list_reagents = list("nutriment" = 3)
list_reagents = list("nutriment" = 6)
w_class = 3
flags = OPENCONTAINER
/obj/item/weapon/reagent_containers/food/snacks/pizzabread
name = "pizza bread"
@@ -56,7 +54,6 @@
icon_state = "doughslice"
cooked_type = /obj/item/weapon/reagent_containers/food/snacks/bun
filling_color = "#CD853F"
flags = OPENCONTAINER
/obj/item/weapon/reagent_containers/food/snacks/bun
@@ -74,7 +71,7 @@
icon = 'icons/obj/food_ingredients.dmi'
icon_state = "cakebatter"
cooked_type = /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain
list_reagents = list("nutriment" = 3)
list_reagents = list("nutriment" = 9)
w_class = 3
// Cake batter + rolling pin = pie dough
@@ -97,7 +94,7 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/rawpastrybase
slices_num = 3
cooked_type = /obj/item/weapon/reagent_containers/food/snacks/pie/plain
list_reagents = list("nutriment" = 3)
list_reagents = list("nutriment" = 9)
w_class = 3
/obj/item/weapon/reagent_containers/food/snacks/rawpastrybase
+12 -8
View File
@@ -10,7 +10,8 @@
slices_num = 3
filling_color = "#FF0000"
/obj/item/weapon/reagent_containers/food/snacks/meat/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/rawcutlet/slice)
/obj/item/weapon/reagent_containers/food/snacks/meat/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/rawcutlet/slice, reagents_per_slice)
..()
var/image/I = new(icon, "rawcutlet_coloration")
I.color = filling_color
slice.overlays += I
@@ -18,7 +19,7 @@
slice.name = "raw [name] cutlet"
slice.meat_type = name
/obj/item/weapon/reagent_containers/food/snacks/meat/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S)
/obj/item/weapon/reagent_containers/food/snacks/meat/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency)
..()
S.name = "[name] steak"
@@ -32,7 +33,7 @@
cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meatsteak/plain/human
slice_path = /obj/item/weapon/reagent_containers/food/snacks/rawcutlet/plain/human
/obj/item/weapon/reagent_containers/food/snacks/meat/human/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/rawcutlet/plain/human/slice)
/obj/item/weapon/reagent_containers/food/snacks/meat/human/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/rawcutlet/plain/human/slice, reagents_per_slice)
..()
if(subjectname)
slice.subjectname = subjectname
@@ -41,7 +42,7 @@
slice.subjectjob = subjectjob
slice.name = "raw [subjectjob] cutlet"
/obj/item/weapon/reagent_containers/food/snacks/meat/human/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S)
/obj/item/weapon/reagent_containers/food/snacks/meat/human/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency)
..()
if(subjectname)
S.name = "[subjectname] meatsteak"
@@ -170,7 +171,8 @@
name = "steak"
desc = "A piece of hot spicy meat."
icon_state = "meatsteak"
list_reagents = list("nutriment" = 2, "vitamin" = 1)
list_reagents = list("nutriment" = 5)
bonus_reagents = list("nutriment" = 2, "vitamin" = 1)
trash = /obj/item/trash/plate
filling_color = "#B22222"
@@ -198,10 +200,11 @@
icon_state = "rawcutlet"
cooked_type = /obj/item/weapon/reagent_containers/food/snacks/cutlet/plain
bitesize = 2
list_reagents = list("nutriment" = 1)
filling_color = "#B22222"
var/meat_type = "meat"
/obj/item/weapon/reagent_containers/food/snacks/rawcutlet/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S)
/obj/item/weapon/reagent_containers/food/snacks/rawcutlet/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency)
..()
S.name = "[meat_type] cutlet"
@@ -213,7 +216,7 @@
var/subjectname = ""
var/subjectjob = null
/obj/item/weapon/reagent_containers/food/snacks/rawcutlet/plain/human/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S)
/obj/item/weapon/reagent_containers/food/snacks/rawcutlet/plain/human/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency)
..()
if(subjectname)
S.name = "[subjectname] [initial(S.name)]"
@@ -236,7 +239,8 @@
desc = "A cooked meat cutlet."
icon_state = "cutlet"
bitesize = 2
list_reagents = list("nutriment" = 1, "vitamin" = 1)
list_reagents = list("nutriment" = 2)
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
filling_color = "#B22222"
/obj/item/weapon/reagent_containers/food/snacks/cutlet/plain
+21 -8
View File
@@ -13,7 +13,8 @@
name = "bread"
desc = "Some plain old Earthen bread."
icon_state = "bread"
list_reagents = list("nutriment" = 7)
bonus_reagents = list("nutriment" = 7)
list_reagents = list("nutriment" = 10)
custom_food_type = /obj/item/weapon/reagent_containers/food/snacks/customizable/bread
slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/plain
@@ -27,7 +28,8 @@
desc = "The culinary base of every self-respecting eloquen/tg/entleman."
icon_state = "meatbread"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/meat
list_reagents = list("nutriment" = 5, "vitamin" = 10)
bonus_reagents = list("nutriment" = 5, "vitamin" = 10)
list_reagents = list("nutriment" = 30, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/breadslice/meat
name = "meatbread slice"
@@ -39,33 +41,38 @@
desc = "The culinary base of every self-respecting eloquen/tg/entleman. Extra Heretical."
icon_state = "xenomeatbread"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/xenomeat
list_reagents = list("nutriment" = 5, "vitamin" = 10)
bonus_reagents = list("nutriment" = 5, "vitamin" = 10)
list_reagents = list("nutriment" = 30, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/breadslice/xenomeat
name = "xenomeatbread slice"
desc = "A slice of delicious meatbread. Extra Heretical."
icon_state = "xenobreadslice"
filling_color = "#32CD32"
list_reagents = list("nutriment" = 6, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/store/bread/spidermeat
name = "spider meat loaf"
desc = "Reassuringly green meatloaf made from spider meat."
icon_state = "spidermeatbread"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/spidermeat
list_reagents = list("nutriment" = 5, "vitamin" = 10)
bonus_reagents = list("nutriment" = 5, "vitamin" = 10)
list_reagents = list("nutriment" = 30, "toxin" = 15, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/breadslice/spidermeat
name = "spider meat bread slice"
desc = "A slice of meatloaf made from an animal that most likely still wants you dead."
icon_state = "xenobreadslice"
filling_color = "#7CFC00"
list_reagents = list("nutriment" = 6, "toxin" = 3, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/store/bread/banana
name = "banana-nut bread"
desc = "A heavenly and filling treat."
icon_state = "bananabread"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/banana
list_reagents = list("nutriment" = 5, "banana" = 20)
bonus_reagents = list("nutriment" = 5, "banana" = 20)
list_reagents = list("nutriment" = 20, "banana" = 20)
/obj/item/weapon/reagent_containers/food/snacks/breadslice/banana
@@ -73,32 +80,37 @@
desc = "A slice of delicious banana bread."
icon_state = "bananabreadslice"
filling_color = "#FFD700"
list_reagents = list("nutriment" = 4, "banana" = 4)
/obj/item/weapon/reagent_containers/food/snacks/store/bread/tofu
name = "Tofubread"
desc = "Like meatbread but for vegetarians. Not guaranteed to give superpowers."
icon_state = "tofubread"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/tofu
list_reagents = list("nutriment" = 5, "vitamin" = 10)
bonus_reagents = list("nutriment" = 5, "vitamin" = 10)
list_reagents = list("nutriment" = 20, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/breadslice/tofu
name = "tofubread slice"
desc = "A slice of delicious tofubread."
icon_state = "tofubreadslice"
filling_color = "#FF8C00"
list_reagents = list("nutriment" = 4, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/store/bread/creamcheese
name = "cream cheese bread"
desc = "Yum yum yum!"
icon_state = "creamcheesebread"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/creamcheese
list_reagents = list("nutriment" = 5, "vitamin" = 5)
bonus_reagents = list("nutriment" = 5, "vitamin" = 5)
list_reagents = list("nutriment" = 20, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/breadslice/creamcheese
name = "cream cheese bread slice"
desc = "A slice of yum!"
icon_state = "creamcheesebreadslice"
filling_color = "#FF8C00"
list_reagents = list("nutriment" = 4, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/breadslice/custom
name = "bread slice"
@@ -109,6 +121,7 @@
name = "baguette"
desc = "Bon appetit!"
icon_state = "baguette"
list_reagents = list("nutriment" = 2, "vitamin" = 2)
bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
list_reagents = list("nutriment" = 6, "vitamin" = 1)
bitesize = 3
w_class = 3
+38 -24
View File
@@ -2,134 +2,145 @@
/obj/item/weapon/reagent_containers/food/snacks/burger
filling_color = "#CD853F"
icon_state = "hburger"
bitesize = 3
list_reagents = list("nutriment" = 6, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/burger/plain
name = "burger"
desc = "The cornerstone of every nutritious breakfast."
list_reagents = list("vitamin" = 1)
bitesize = 3
bonus_reagents = list("vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/burger/human
var/hname = ""
var/job = null
name = "-burger"
desc = "A bloody burger."
list_reagents = list("vitamin" = 4)
bonus_reagents = list("vitamin" = 4)
/obj/item/weapon/reagent_containers/food/snacks/burger/appendix
name = "appendix burger"
desc = "Tastes like appendicitis."
list_reagents = list("nutriment" = 6, "vitamin" = 6)
bonus_reagents = list("nutriment" = 6, "vitamin" = 6)
icon_state = "appendixburger"
/obj/item/weapon/reagent_containers/food/snacks/burger/fish
name = "fillet -o- carp sandwich"
desc = "Almost like a carp is yelling somewhere... Give me back that fillet -o- carp, give me that carp."
icon_state = "fishburger"
list_reagents = list("nutriment" = 2, "vitamin" = 3)
bonus_reagents = list("nutriment" = 2, "vitamin" = 3)
/obj/item/weapon/reagent_containers/food/snacks/burger/tofu
name = "tofu burger"
desc = "What.. is that meat?"
icon_state = "tofuburger"
list_reagents = list("nutriment" = 2, "vitamin" = 2)
bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/burger/roburger
name = "roburger"
desc = "The lettuce is the only organic component. Beep."
icon_state = "roburger"
list_reagents = list("nutriment" = 2, "nanomachines" = 2, "vitamin" = 5)
bonus_reagents = list("nutriment" = 2, "nanomachines" = 2, "vitamin" = 5)
list_reagents = list("nutriment" = 6, "nanomachines" = 5, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/burger/roburgerbig
name = "roburger"
desc = "This massive patty looks like poison. Beep."
icon_state = "roburger"
volume = 120
list_reagents = list("nutriment" = 5, "nanomachines" = 70, "vitamin" = 10)
bonus_reagents = list("nutriment" = 5, "nanomachines" = 70, "vitamin" = 10)
list_reagents = list("nutriment" = 6, "nanomachines" = 70, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/burger/xeno
name = "xenoburger"
desc = "Smells caustic. Tastes like heresy."
icon_state = "xburger"
list_reagents = list("nutriment" = 2, "vitamin" = 6)
bonus_reagents = list("nutriment" = 2, "vitamin" = 6)
/obj/item/weapon/reagent_containers/food/snacks/burger/bearger
name = "bearger"
desc = "Best served rawr."
icon_state = "bearger"
bonus_reagents = list("nutriment" = 3, "vitamin" = 6)
/obj/item/weapon/reagent_containers/food/snacks/burger/clown
name = "clown burger"
desc = "This tastes funny..."
icon_state = "clownburger"
list_reagents = list("nutriment" = 4, "vitamin" = 6, "banana" = 6)
bonus_reagents = list("nutriment" = 4, "vitamin" = 6, "banana" = 6)
/obj/item/weapon/reagent_containers/food/snacks/burger/mime
name = "mime burger"
desc = "Its taste defies language."
icon_state = "mimeburger"
list_reagents = list("nutriment" = 4, "vitamin" = 6, "nothing" = 6)
bonus_reagents = list("nutriment" = 4, "vitamin" = 6, "nothing" = 6)
/obj/item/weapon/reagent_containers/food/snacks/burger/brain
name = "brainburger"
desc = "A strange looking burger. It looks almost sentient."
icon_state = "brainburger"
list_reagents = list("nutriment" = 6, "mannitol" = 6, "vitamin" = 5)
bonus_reagents = list("nutriment" = 6, "mannitol" = 6, "vitamin" = 5)
list_reagents = list("nutriment" = 6, "mannitol" = 5, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/burger/ghost
name = "ghost burger"
desc = "Too Spooky!"
alpha = 125
list_reagents = list("nutriment" = 5, "vitamin" = 12)
bonus_reagents = list("nutriment" = 5, "vitamin" = 12)
/obj/item/weapon/reagent_containers/food/snacks/burger/red
name = "red burger"
desc = "Perfect for hiding the fact it's burnt to a crisp."
icon_state = "cburger"
color = "#DA0000FF"
list_reagents = list("redcrayonpowder" = 10, "vitamin" = 5)
bonus_reagents = list("redcrayonpowder" = 10, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/burger/orange
name = "orange burger"
desc = "Contains 0% juice."
icon_state = "cburger"
color = "#FF9300FF"
list_reagents = list("orangecrayonpowder" = 10, "vitamin" = 5)
bonus_reagents = list("orangecrayonpowder" = 10, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/burger/yellow
name = "yellow burger"
desc = "Bright to the last bite."
icon_state = "cburger"
color = "#FFF200FF"
list_reagents = list("yellowcrayonpowder" = 10, "vitamin" = 5)
bonus_reagents = list("yellowcrayonpowder" = 10, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/burger/green
name = "green burger"
desc = "It's not tainted meat, it's painted meat!"
icon_state = "cburger"
color = "#A8E61DFF"
list_reagents = list("greencrayonpowder" = 10, "vitamin" = 5)
bonus_reagents = list("greencrayonpowder" = 10, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/burger/blue
name = "blue burger"
desc = "Is this blue rare?"
icon_state = "cburger"
color = "#00B7EFFF"
list_reagents = list("bluecrayonpowder" = 10, "vitamin" = 5)
bonus_reagents = list("bluecrayonpowder" = 10, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/burger/purple
name = "purple burger"
desc = "Regal and low class at the same time."
icon_state = "cburger"
color = "#DA00FFFF"
list_reagents = list("purplecrayonpowder" = 10, "vitamin" = 5)
bonus_reagents = list("purplecrayonpowder" = 10, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/burger/spell
name = "spell burger"
desc = "This is absolutely Ei Nath."
icon_state = "spellburger"
list_reagents = list("nutriment" = 6, "vitamin" = 10)
bonus_reagents = list("nutriment" = 6, "vitamin" = 10)
/obj/item/weapon/reagent_containers/food/snacks/burger/bigbite
name = "big bite burger"
desc = "Forget the Big Mac. THIS is the future!"
icon_state = "bigbiteburger"
list_reagents = list("vitamin" = 6)
bonus_reagents = list("vitamin" = 6)
list_reagents = list("nutriment" = 10, "vitamin" = 2)
w_class = 3
/obj/item/weapon/reagent_containers/food/snacks/burger/jelly
@@ -138,15 +149,18 @@
icon_state = "jellyburger"
/obj/item/weapon/reagent_containers/food/snacks/burger/jelly/slime
list_reagents = list("slimejelly" = 5, "vitamin" = 5)
bonus_reagents = list("slimejelly" = 5, "vitamin" = 5)
list_reagents = list("nutriment" = 6, "slimejelly" = 5, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/burger/jelly/cherry
list_reagents = list("cherryjelly" = 5, "vitamin" = 5)
bonus_reagents = list("cherryjelly" = 5, "vitamin" = 5)
list_reagents = list("nutriment" = 6, "cherryjelly" = 5, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/burger/superbite
name = "super bite burger"
desc = "This is a mountain of a burger. FOOD!"
icon_state = "superbiteburger"
list_reagents = list("vitamin" = 10)
bonus_reagents = list("vitamin" = 10)
list_reagents = list("nutriment" = 40, "vitamin" = 5)
w_class = 3
volume = 80
+19 -12
View File
@@ -3,17 +3,18 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/plain
slices_num = 5
bitesize = 3
list_reagents = list("nutriment" = 20, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/cakeslice
trash = /obj/item/trash/plate
bitesize = 3
list_reagents = list("nutriment" = 4, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/store/cake/plain
name = "vanilla cake"
desc = "A plain cake, not a lie."
icon_state = "plaincake"
custom_food_type = /obj/item/weapon/reagent_containers/food/snacks/customizable/cake
list_reagents = list("nutriment" = 10, "vitamin" = 2)
bonus_reagents = list("nutriment" = 10, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/cakeslice/plain
name = "vanilla cake slice"
@@ -27,13 +28,15 @@
icon_state = "carrotcake"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/carrot
slices_num = 5
list_reagents = list("nutriment" = 3, "oculine" = 5, "vitamin" = 10)
bonus_reagents = list("nutriment" = 3, "oculine" = 5, "vitamin" = 10)
list_reagents = list("nutriment" = 20, "oculine" = 10, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/cakeslice/carrot
name = "carrot cake slice"
desc = "Carrotty slice of Carrot Cake, carrots are good for your eyes! Also not a lie."
icon_state = "carrotcake_slice"
filling_color = "#FFA500"
list_reagents = list("nutriment" = 4, "oculine" = 2, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/store/cake/brain
@@ -42,7 +45,8 @@
icon_state = "braincake"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/brain
slices_num = 5
list_reagents = list("nutriment" = 5, "mannitol" = 10, "vitamin" = 10)
bonus_reagents = list("nutriment" = 5, "mannitol" = 10, "vitamin" = 10)
list_reagents = list("nutriment" = 20, "mannitol" = 10, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/cakeslice/brain
@@ -50,6 +54,7 @@
desc = "Lemme tell you something about prions. THEY'RE DELICIOUS."
icon_state = "braincakeslice"
filling_color = "#FF69B4"
list_reagents = list("nutriment" = 4, "mannitol" = 2, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/store/cake/cheese
name = "cheese cake"
@@ -57,7 +62,7 @@
icon_state = "cheesecake"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/cheese
slices_num = 5
list_reagents = list("vitamin" = 10)
bonus_reagents = list("vitamin" = 10)
/obj/item/weapon/reagent_containers/food/snacks/cakeslice/cheese
@@ -73,7 +78,7 @@
icon_state = "orangecake"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/orange
slices_num = 5
list_reagents = list("nutriment" = 3, "vitamin" = 10)
bonus_reagents = list("nutriment" = 3, "vitamin" = 10)
/obj/item/weapon/reagent_containers/food/snacks/cakeslice/orange
name = "orange cake slice"
@@ -87,7 +92,7 @@
icon_state = "limecake"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/lime
slices_num = 5
list_reagents = list("nutriment" = 3, "vitamin" = 10)
bonus_reagents = list("nutriment" = 3, "vitamin" = 10)
/obj/item/weapon/reagent_containers/food/snacks/cakeslice/lime
name = "lime cake slice"
@@ -102,7 +107,7 @@
icon_state = "lemoncake"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/lemon
slices_num = 5
list_reagents = list("nutriment" = 3, "vitamin" = 10)
bonus_reagents = list("nutriment" = 3, "vitamin" = 10)
/obj/item/weapon/reagent_containers/food/snacks/cakeslice/lemon
@@ -118,7 +123,7 @@
icon_state = "chocolatecake"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/chocolate
slices_num = 5
list_reagents = list("nutriment" = 3, "vitamin" = 10)
bonus_reagents = list("nutriment" = 3, "vitamin" = 10)
/obj/item/weapon/reagent_containers/food/snacks/cakeslice/chocolate
@@ -134,13 +139,15 @@
icon_state = "birthdaycake"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/birthday
slices_num = 5
list_reagents = list("nutriment" = 7, "sprinkles" = 10, "vitamin" = 5)
bonus_reagents = list("nutriment" = 7, "sprinkles" = 10, "vitamin" = 5)
list_reagents = list("nutriment" = 20, "sprinkles" = 10, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/cakeslice/birthday
name = "birthday cake slice"
desc = "A slice of your birthday."
icon_state = "birthdaycakeslice"
filling_color = "#DC143C"
list_reagents = list("nutriment" = 4, "sprinkles" = 2, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/store/cake/apple
@@ -149,7 +156,7 @@
icon_state = "applecake"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/apple
slices_num = 5
list_reagents = list("nutriment" = 3, "vitamin" = 10)
bonus_reagents = list("nutriment" = 3, "vitamin" = 10)
/obj/item/weapon/reagent_containers/food/snacks/cakeslice/apple
name = "apple cake slice"
@@ -168,7 +175,7 @@
icon_state = "slimecake"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/slimecake
slices_num = 5
list_reagents = list("nutriment" = 1, "vitamin" = 3)
bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
/obj/item/weapon/reagent_containers/food/snacks/cakeslice/slimecake
name = "Slime cake slice"
+11 -6
View File
@@ -5,7 +5,8 @@
name = "chocolate egg"
desc = "Such, sweet, fattening food."
icon_state = "chocolateegg"
list_reagents = list("nutriment" = 1, "vitamin" = 1)
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
list_reagents = list("nutriment" = 4, "sugar" = 2, "cocoa" = 2)
filling_color = "#A0522D"
/obj/item/weapon/reagent_containers/food/snacks/egg
@@ -73,23 +74,26 @@
name = "fried egg"
desc = "A fried egg, with a touch of salt and pepper."
icon_state = "friedegg"
list_reagents = list("nutriment" = 1, "vitamin" = 1)
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
bitesize = 1
filling_color = "#FFFFF0"
list_reagents = list("nutriment" = 3)
/obj/item/weapon/reagent_containers/food/snacks/boiledegg
name = "boiled egg"
desc = "A hard boiled egg."
icon_state = "egg"
list_reagents = list("nutriment" = 1, "vitamin" = 1)
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
filling_color = "#FFFFF0"
list_reagents = list("nutriment" = 2, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/omelette //FUCK THIS
name = "omelette du fromage"
desc = "That's all you can say!"
icon_state = "omelette"
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 1, "vitamin" = 2)
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
list_reagents = list("nutriment" = 8, "vitamin" = 1)
bitesize = 1
w_class = 3
@@ -113,6 +117,7 @@
name = "eggs benedict"
desc = "There is only one egg on this, how rude."
icon_state = "benedict"
list_reagents = list("vitamin" = 4)
bonus_reagents = list("vitamin" = 4)
trash = /obj/item/trash/plate
w_class = 3
w_class = 3
list_reagents = list("nutriment" = 6, "vitamin" = 4)
+36 -15
View File
@@ -8,15 +8,16 @@
desc = "A grifftastic sandwich that burns your tongue and then leaves it numb!"
icon_state = "cubancarp"
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 1, "vitamin" = 4)
bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
bitesize = 3
filling_color = "#CD853F"
list_reagents = list("nutriment" = 6, "capsaicin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/carpmeat
name = "carp fillet"
desc = "A fillet of spess carp meat."
icon_state = "fishfillet"
list_reagents = list("nutriment" = 2, "carpotoxin" = 2, "vitamin" = 2)
list_reagents = list("nutriment" = 3, "carpotoxin" = 2, "vitamin" = 2)
bitesize = 6
filling_color = "#FA8072"
@@ -32,7 +33,8 @@
name = "fish fingers"
desc = "A finger of fish."
icon_state = "fishfingers"
list_reagents = list("nutriment" = 1, "vitamin" = 2)
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
list_reagents = list("nutriment" = 4)
bitesize = 1
filling_color = "#CD853F"
@@ -40,7 +42,8 @@
name = "fish and chips"
desc = "I do say so myself chap."
icon_state = "fishandchips"
list_reagents = list("nutriment" = 1, "vitamin" = 2)
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
list_reagents = list("nutriment" = 6)
filling_color = "#FA8072"
////////////////////////////////////////////MEATS AND ALIKE////////////////////////////////////////////
@@ -65,7 +68,16 @@
desc = "Now you can feel like a real tourist vacationing in Ireland."
icon_state = "cornedbeef"
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 1, "vitamin" = 4)
bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
list_reagents = list("nutriment" = 5)
/obj/item/weapon/reagent_containers/food/snacks/bearsteak
name = "Filet migrawr"
desc = "Because eating bear wasn't manly enough."
icon_state = "bearsteak"
trash = /obj/item/trash/plate
bonus_reagents = list("nutriment" = 2, "vitamin" = 6)
list_reagents = list("nutriment" = 2, "vitamin" = 5, "manlydorf" = 5)
/obj/item/weapon/reagent_containers/food/snacks/faggot
name = "faggot"
@@ -79,6 +91,8 @@
desc = "A piece of mixed, long meat."
icon_state = "sausage"
filling_color = "#CD5C5C"
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
list_reagents = list("nutriment" = 6, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/sausage/New()
..()
@@ -89,27 +103,29 @@
desc = "A savory dish of alien wing wang in soy."
icon_state = "wingfangchu"
trash = /obj/item/weapon/reagent_containers/glass/bowl
list_reagents = list("nutriment" = 1, "vitamin" = 2)
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
list_reagents = list("nutriment" = 6, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/kebab
trash = /obj/item/stack/rods
icon_state = "kebab"
w_class = 3
list_reagents = list("nutriment" = 8)
/obj/item/weapon/reagent_containers/food/snacks/kebab/human
name = "human-kebab"
desc = "A human meat, on a stick."
list_reagents = list("nutriment" = 1, "vitamin" = 6)
bonus_reagents = list("nutriment" = 1, "vitamin" = 6)
/obj/item/weapon/reagent_containers/food/snacks/kebab/monkey
name = "meat-kebab"
desc = "Delicious meat, on a stick."
list_reagents = list("nutriment" = 1, "vitamin" = 2)
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/kebab/tofu
name = "tofu-kebab"
desc = "Vegan meat, on a stick."
list_reagents = list("nutriment" = 1)
bonus_reagents = list("nutriment" = 1)
/obj/item/weapon/reagent_containers/food/snacks/monkeycube
name = "monkey cube"
@@ -153,16 +169,18 @@
name = "enchiladas"
desc = "Viva La Mexico!"
icon_state = "enchiladas"
list_reagents = list("nutriment" = 1, "vitamin" = 2)
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
bitesize = 4
filling_color = "#FFA07A"
list_reagents = list("nutriment" = 8, "capsaicin" = 6)
/obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat
name = "stewed soy meat"
desc = "Even non-vegetarians will LOVE this!"
icon_state = "stewedsoymeat"
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 1)
bonus_reagents = list("nutriment" = 1)
list_reagents = list("nutriment" = 8)
filling_color = "#D2691E"
/obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat/New()
@@ -174,7 +192,8 @@
desc = "A giant spider's leg that's still twitching after being cooked. Gross!"
icon_state = "spiderlegcooked"
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 1, "capsaicin" = 2, "vitamin" = 2)
bonus_reagents = list("nutriment" = 1, "capsaicin" = 2, "vitamin" = 2)
list_reagents = list("nutriment" = 3, "capsaicin" = 2)
filling_color = "#000000"
/obj/item/weapon/reagent_containers/food/snacks/spidereggsham
@@ -182,7 +201,8 @@
desc = "Would you eat them on a train? Would you eat them on a plane? Would you eat them on a state of the art corporate deathtrap floating through space?"
icon_state = "spidereggsham"
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 1, "vitamin" = 3)
bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
list_reagents = list("nutriment" = 6)
bitesize = 4
filling_color = "#7FFF00"
@@ -190,5 +210,6 @@
name = "carp sashimi"
desc = "Celebrate surviving attack from hostile alien lifeforms by hospitalising yourself."
icon_state = "sashimi"
list_reagents = list("nutriment" = 1, "capsaicin" = 4, "vitamin" = 4)
filling_color = "#FA8072"
bonus_reagents = list("nutriment" = 1, "capsaicin" = 4, "vitamin" = 4)
list_reagents = list("nutriment" = 6, "capsaicin" = 5)
filling_color = "#FA8072"
+17 -8
View File
@@ -15,6 +15,7 @@
desc = "A wedge of delicious Cheddar. The cheese wheel it was cut from can't have gone far."
icon_state = "cheesewedge"
filling_color = "#FFD700"
list_reagents = list("nutriment" = 3, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/watermelonslice
name = "watermelon slice"
@@ -78,7 +79,8 @@
name = "loaded baked potato"
desc = "Totally baked."
icon_state = "loadedbakedpotato"
list_reagents = list("nutriment" = 1, "vitamin" = 2)
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
list_reagents = list("nutriment" = 6)
filling_color = "#D2B48C"
/obj/item/weapon/reagent_containers/food/snacks/fries
@@ -102,7 +104,8 @@
desc = "Fries. Covered in cheese. Duh."
icon_state = "cheesyfries"
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 1, "vitamin" = 2)
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
list_reagents = list("nutriment" = 6)
filling_color = "#FFD700"
/obj/item/weapon/reagent_containers/food/snacks/badrecipe
@@ -125,7 +128,8 @@
desc = "An apple coated in sugary sweetness."
icon_state = "candiedapple"
bitesize = 3
list_reagents = list("nutriment" = 2, "sugar" = 3)
bonus_reagents = list("nutriment" = 2, "sugar" = 3)
list_reagents = list("nutriment" = 3, "sugar" = 2)
filling_color = "#FF4500"
/obj/item/weapon/reagent_containers/food/snacks/mint
@@ -141,14 +145,16 @@
name = "egg wrap"
desc = "The precursor to Pigs in a Blanket."
icon_state = "wrap"
list_reagents = list("nutriment" = 1, "vitamin" = 3)
bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
list_reagents = list("nutriment" = 5)
filling_color = "#F0E68C"
/obj/item/weapon/reagent_containers/food/snacks/beans
name = "tin of beans"
desc = "Musical fruit in a slightly less musical container."
icon_state = "beans"
list_reagents = list("nutriment" = 1, "vitamin" = 1)
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
list_reagents = list("nutriment" = 10)
filling_color = "#B22222"
/obj/item/weapon/reagent_containers/food/snacks/spidereggs
@@ -162,14 +168,16 @@
name = "chocolate coin"
desc = "A completely edible but nonflippable festive coin."
icon_state = "chococoin"
list_reagents = list("nutriment" = 1, "sugar" = 1)
bonus_reagents = list("nutriment" = 1, "sugar" = 1)
list_reagents = list("nutriment" = 3, "cocoa" = 1)
filling_color = "#A0522D"
/obj/item/weapon/reagent_containers/food/snacks/chocoorange
name = "chocolate orange"
desc = "A festive chocolate orange"
icon_state = "chocoorange"
list_reagents = list("nutriment" = 1, "sugar" = 1)
bonus_reagents = list("nutriment" = 1, "sugar" = 1)
list_reagents = list("nutriment" = 3, "sugar" = 1)
filling_color = "#A0522D"
/obj/item/weapon/reagent_containers/food/snacks/eggplantparm
@@ -177,5 +185,6 @@
desc = "The only good recipe for eggplant."
icon_state = "eggplantparm"
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 1, "vitamin" = 3)
bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
list_reagents = list("nutriment" = 6, "vitamin" = 2)
filling_color = "#BA55D3"
+46 -18
View File
@@ -7,8 +7,10 @@
desc = "Goes great with Robust Coffee."
icon_state = "donut1"
bitesize = 5
list_reagents = list("sugar" = 1)
bonus_reagents = list("sugar" = 1)
list_reagents = list("nutriment" = 3, "sugar" = 2)
var/extra_reagent = null
filling_color = "#D2691E"
/obj/item/weapon/reagent_containers/food/snacks/donut/New()
..()
@@ -16,6 +18,8 @@
icon_state = "donut2"
name = "frosted donut"
reagents.add_reagent("sprinkles", 2)
bonus_reagents = list("sprinkles" = 2, "sugar" = 1)
filling_color = "#FF69B4"
/obj/item/weapon/reagent_containers/food/snacks/donut/chaos
name = "chaos donut"
@@ -26,25 +30,31 @@
..()
extra_reagent = pick("nutriment", "capsaicin", "frostoil", "krokodil", "plasma", "cocoa", "slimejelly", "banana", "berryjuice", "omnizine")
reagents.add_reagent("[extra_reagent]", 3)
bonus_reagents = list("[extra_reagent]" = 3, "sugar" = 1)
if(prob(30))
icon_state = "donut2"
name = "frosted chaos donut"
reagents.add_reagent("sprinkles", 2)
bonus_reagents = list("sprinkles" = 2, "[extra_reagent]" = 3, "sugar" = 1)
filling_color = "#FF69B4"
/obj/item/weapon/reagent_containers/food/snacks/donut/jelly
name = "jelly donut"
desc = "You jelly?"
icon_state = "jdonut1"
list_reagents = list("sugar" = 1, "vitamin" = 1)
bonus_reagents = list("sugar" = 1, "vitamin" = 1)
extra_reagent = "berryjuice"
/obj/item/weapon/reagent_containers/food/snacks/donut/jelly/New()
..()
reagents.add_reagent("[extra_reagent]", 5)
if(extra_reagent)
reagents.add_reagent("[extra_reagent]", 3)
if(prob(30))
icon_state = "jdonut2"
name = "frosted jelly Donut"
reagents.add_reagent("sprinkles", 2)
bonus_reagents = list("sprinkles" = 2, "sugar" = 1)
filling_color = "#FF69B4"
/obj/item/weapon/reagent_containers/food/snacks/donut/jelly/slimejelly
name = "jelly donut"
@@ -64,7 +74,9 @@
name = "muffin"
desc = "A delicious and spongy little cake."
icon_state = "muffin"
list_reagents = list("vitamin" = 1)
bonus_reagents = list("vitamin" = 1)
list_reagents = list("nutriment" = 6)
filling_color = "#F4A460"
/obj/item/weapon/reagent_containers/food/snacks/muffin/berry
name = "berry muffin"
@@ -82,7 +94,9 @@
desc = "A legendary egg custard that makes friends out of enemies. Probably too hot for a cat to eat."
icon_state = "chawanmushi"
trash = /obj/item/weapon/reagent_containers/glass/bowl
list_reagents = list("vitamin" = 1)
bonus_reagents = list("vitamin" = 1)
list_reagents = list("nutriment" = 5)
filling_color = "#FFE4E1"
////////////////////////////////////////////WAFFLES////////////////////////////////////////////
@@ -91,7 +105,8 @@
desc = "Mmm, waffles."
icon_state = "waffles"
trash = /obj/item/trash/waffles
list_reagents = list("vitamin" = 1)
bonus_reagents = list("vitamin" = 1)
list_reagents = list("nutriment" = 8, "vitamin" = 1)
filling_color = "#D2691E"
/obj/item/weapon/reagent_containers/food/snacks/soylentgreen
@@ -99,7 +114,8 @@
desc = "Not made of people. Honest." //Totally people.
icon_state = "soylent_green"
trash = /obj/item/trash/waffles
list_reagents = list("vitamin" = 1)
bonus_reagents = list("vitamin" = 1)
list_reagents = list("nutriment" = 10, "vitamin" = 1)
filling_color = "#9ACD32"
/obj/item/weapon/reagent_containers/food/snacks/soylenviridians
@@ -107,7 +123,8 @@
desc = "Not made of people. Honest." //Actually honest for once.
icon_state = "soylent_yellow"
trash = /obj/item/trash/waffles
list_reagents = list("vitamin" = 1)
bonus_reagents = list("vitamin" = 1)
list_reagents = list("nutriment" = 10, "vitamin" = 1)
filling_color = "#9ACD32"
/obj/item/weapon/reagent_containers/food/snacks/rofflewaffles
@@ -116,7 +133,8 @@
icon_state = "rofflewaffles"
trash = /obj/item/trash/waffles
bitesize = 4
list_reagents = list("vitamin" = 2)
bonus_reagents = list("vitamin" = 2)
list_reagents = list("nutriment" = 8, "mushroomhallucinogen" = 2, "vitamin" = 2)
filling_color = "#00BFFF"
////////////////////////////////////////////OTHER////////////////////////////////////////////
@@ -126,7 +144,7 @@
desc = "COOKIE!!!"
icon_state = "COOKIE!!!"
bitesize = 1
list_reagents = list("nutriment" = 1)
bonus_reagents = list("nutriment" = 1)
filling_color = "#F0E68C"
/obj/item/weapon/reagent_containers/food/snacks/donkpocket
@@ -140,27 +158,31 @@
/obj/item/weapon/reagent_containers/food/snacks/donkpocket/warm
name = "\improper Warm Donk-pocket"
desc = "The heated food of choice for the seasoned traitor."
list_reagents = list("omnizine" = 4)
bonus_reagents = list("omnizine" = 3)
list_reagents = list("nutriment" = 4, "omnizine" = 3)
/obj/item/weapon/reagent_containers/food/snacks/fortunecookie
name = "fortune cookie"
desc = "A true prophecy in each cookie!"
icon_state = "fortune_cookie"
list_reagents = list("nutriment" = 2)
bonus_reagents = list("nutriment" = 2)
list_reagents = list("nutriment" = 3)
filling_color = "#F4A460"
/obj/item/weapon/reagent_containers/food/snacks/poppypretzel
name = "poppy pretzel"
desc = "It's all twisted up!"
icon_state = "poppypretzel"
list_reagents = list("nutriment" = 1, "vitamin" = 2)
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
list_reagents = list("nutriment" = 5)
filling_color = "#F0E68C"
/obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit
name = "plump helmet biscuit"
desc = "This is a finely-prepared plump helmet biscuit. The ingredients are exceptionally minced plump helmet, and well-minced dwarven wheat flour."
icon_state = "phelmbiscuit"
list_reagents = list("nutriment" = 1, "vitamin" = 1)
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
list_reagents = list("nutriment" = 5)
filling_color = "#F0E68C"
/obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit/New()
@@ -169,12 +191,14 @@
name = "exceptional plump helmet biscuit"
desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!"
reagents.add_reagent("omnizine", 5)
bonus_reagents = list("omnizine" = 5, "nutriment" = 1, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/cracker
name = "cracker"
desc = "It's a salted cracker."
icon_state = "cracker"
bitesize = 1
bonus_reagents = list("nutriment" = 1)
list_reagents = list("nutriment" = 1)
filling_color = "#F0E68C"
@@ -183,26 +207,30 @@
desc = "Fresh footlong ready to go down on."
icon_state = "hotdog"
bitesize = 3
list_reagents = list("nutriment" = 1, "vitamin" = 3)
bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
list_reagents = list("nutriment" = 6, "ketchup" = 3, "vitamin" = 3)
filling_color = "#8B0000"
/obj/item/weapon/reagent_containers/food/snacks/meatbun
name = "meat bun"
desc = "Has the potential to not be Dog."
icon_state = "meatbun"
list_reagents = list("nutriment" = 1, "vitamin" = 2)
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
list_reagents = list("nutriment" = 6, "vitamin" = 2)
filling_color = "#8B0000"
/obj/item/weapon/reagent_containers/food/snacks/sugarcookie
name = "sugar cookie"
desc = "Just like your little sister used to make."
icon_state = "sugarcookie"
list_reagents = list("nutriment" = 1, "sugar" = 3)
bonus_reagents = list("nutriment" = 1, "sugar" = 3)
list_reagents = list("nutriment" = 3, "sugar" = 3)
filling_color = "#CD853F"
/obj/item/weapon/reagent_containers/food/snacks/chococornet
name = "chocolate cornet"
desc = "Which side's the head, the fat end or the thin end?"
icon_state = "chococornet"
list_reagents = list("nutriment" = 1, "vitamin" = 1)
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
list_reagents = list("nutriment" = 5, "vitamin" = 1)
filling_color = "#FFE4C4"
+25 -14
View File
@@ -3,20 +3,22 @@
trash = /obj/item/trash/plate
bitesize = 3
w_class = 3
list_reagents = list("nutriment" = 10, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/pie/plain
name = "plain pie"
desc = "A simple pie, still delicious."
icon_state = "pie"
custom_food_type = /obj/item/weapon/reagent_containers/food/snacks/customizable/pie
list_reagents = list("nutriment" = 8, "vitamin" = 1)
bonus_reagents = list("nutriment" = 8, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/pie/cream
name = "banana cream pie"
desc = "Just like back home, on clown planet! HONK!"
icon_state = "pie"
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 2, "vitamin" = 2)
bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
list_reagents = list("nutriment" = 6, "banana" = 5, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/pie/cream/throw_impact(atom/hit_atom)
..()
@@ -29,22 +31,28 @@
name = "berry clafoutis"
desc = "No black birds, this is a good sign."
icon_state = "berryclafoutis"
list_reagents = list("nutriment" = 1, "vitamin" = 2)
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
list_reagents = list("nutriment" = 10, "berryjuice" = 5, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/pie/bearypie
name = "beary pie"
desc = "No brown bears, this is a good sign."
icon_state = "bearypie"
bonus_reagents = list("nutriment" = 2, "vitamin" = 3)
list_reagents = list("nutriment" = 2, "vitamin" = 3)
/obj/item/weapon/reagent_containers/food/snacks/pie/meatpie
name = "meat-pie"
icon_state = "meatpie"
desc = "An old barber recipe, very delicious!"
list_reagents = list("nutriment" = 1, "vitamin" = 5)
bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/pie/tofupie
name = "tofu-pie"
icon_state = "meatpie"
desc = "A delicious tofu pie."
list_reagents = list("nutriment" = 1, "vitamin" = 2)
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/pie/amanita_pie
@@ -52,14 +60,15 @@
desc = "Sweet and tasty poison pie."
icon_state = "amanita_pie"
bitesize = 4
list_reagents = list("nutriment" = 1, "vitamin" = 4)
bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
list_reagents = list("nutriment" = 6, "amatoxin" = 3, "mushroomhallucinogen" = 1, "vitamin" = 4)
/obj/item/weapon/reagent_containers/food/snacks/pie/plump_pie
name = "plump pie"
desc = "I bet you love stuff made out of plump helmets!"
icon_state = "plump_pie"
list_reagents = list("nutriment" = 1, "vitamin" = 4)
bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
/obj/item/weapon/reagent_containers/food/snacks/pie/plump_pie/New()
..()
@@ -67,6 +76,7 @@
name = "exceptional plump pie"
desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!"
reagents.add_reagent("omnizine", 5)
bonus_reagents = list("nutriment" = 1, "omnizine" = 5, "vitamin" = 4)
/obj/item/weapon/reagent_containers/food/snacks/pie/xemeatpie
@@ -74,15 +84,14 @@
icon_state = "xenomeatpie"
desc = "A delicious meatpie. Probably heretical."
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 1, "vitamin" = 5)
bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/pie/applepie
name = "apple pie"
desc = "A pie containing sweet sweet love...or apple."
icon_state = "applepie"
list_reagents = list("nutriment" = 1, "vitamin" = 3)
bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
@@ -90,7 +99,7 @@
name = "cherry pie"
desc = "Taste so good, make a grown man cry."
icon_state = "cherrypie"
list_reagents = list("nutriment" = 1, "vitamin" = 2)
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/pumpkinpie
@@ -99,16 +108,18 @@
icon_state = "pumpkinpie"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice
slices_num = 5
list_reagents = list("nutriment" = 1, "vitamin" = 5)
bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice
name = "pumpkin pie slice"
desc = "A slice of pumpkin pie, with whipped cream on top. Perfection."
icon_state = "pumpkinpieslice"
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/pie/appletart
name = "golden apple streusel tart"
desc = "A tasty dessert that won't make it through a metal detector."
icon_state = "gappletart"
list_reagents = list("nutriment" = 1, "vitamin" = 4)
bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
list_reagents = list("nutriment" = 8, "gold" = 5, "vitamin" = 4)
+11 -14
View File
@@ -5,15 +5,17 @@
w_class = 3
slices_num = 6
/obj/item/weapon/reagent_containers/food/snacks/pizzaslice
list_reagents = list("nutriment" = 5)
/obj/item/weapon/reagent_containers/food/snacks/pizza/margherita
name = "margherita"
desc = "The most cheezy pizza in galaxy."
icon_state = "pizzamargherita"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/margherita
slices_num = 6
list_reagents = list("nutriment" = 5, "vitamin" = 5)
bonus_reagents = list("nutriment" = 5, "vitamin" = 5)
list_reagents = list("nutriment" = 30, "tomatojuice" = 6, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/margherita
name = "margherita slice"
@@ -27,7 +29,8 @@
icon_state = "meatpizza"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/meatpizza
slices_num = 6
list_reagents = list("nutriment" = 5, "vitamin" = 8)
bonus_reagents = list("nutriment" = 5, "vitamin" = 8)
list_reagents = list("nutriment" = 30, "tomatojuice" = 6, "vitamin" = 8)
/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/meatpizza
name = "meatpizza slice"
@@ -41,7 +44,8 @@
icon_state = "mushroompizza"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroompizza
slices_num = 6
list_reagents = list("nutriment" = 5, "vitamin" = 5)
bonus_reagents = list("nutriment" = 5, "vitamin" = 5)
list_reagents = list("nutriment" = 30, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroompizza
name = "mushroom pizza slice"
@@ -55,7 +59,8 @@
icon_state = "vegetablepizza"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/vegetablepizza
slices_num = 6
list_reagents = list("nutriment" = 5, "vitamin" = 5)
bonus_reagents = list("nutriment" = 5, "vitamin" = 5)
list_reagents = list("nutriment" = 25, "tomatojuice" = 6, "oculine" = 12, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/vegetablepizza
name = "vegetable pizza slice"
@@ -226,28 +231,20 @@
/obj/item/pizzabox/margherita/New()
pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/margherita(src)
pizza.reagents.add_reagent("nutriment", 25)
pizza.reagents.add_reagent("tomatojuice", 6)
boxtag = "Margherita Deluxe"
update_icon()
/obj/item/pizzabox/vegetable/New()
pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/vegetablepizza(src)
pizza.reagents.add_reagent("nutriment", 20)
pizza.reagents.add_reagent("tomatojuice", 6)
pizza.reagents.add_reagent("oculine", 12)
boxtag = "Gourmet Vegatable"
update_icon()
/obj/item/pizzabox/mushroom/New()
pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/mushroompizza(src)
pizza.reagents.add_reagent("nutriment", 25)
boxtag = "Mushroom Special"
update_icon()
/obj/item/pizzabox/meat/New()
pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/meatpizza(src)
pizza.reagents.add_reagent("nutriment", 25)
pizza.reagents.add_reagent("tomatojuice", 6)
boxtag = "Meatlover's Supreme"
update_icon()
@@ -13,16 +13,19 @@
name = "\improper Aesir salad"
desc = "Probably too incredible for mortal men to fully enjoy."
icon_state = "aesirsalad"
list_reagents = list("omnizine" = 8, "vitamin" = 6)
bonus_reagents = list("omnizine" = 2, "vitamin" = 6)
list_reagents = list("nutriment" = 8, "omnizine" = 8, "vitamin" = 6)
/obj/item/weapon/reagent_containers/food/snacks/salad/herbsalad
name = "herb salad"
desc = "A tasty salad with apples on top."
icon_state = "herbsalad"
list_reagents = list("vitamin" = 4)
bonus_reagents = list("vitamin" = 4)
list_reagents = list("nutriment" = 8, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/salad/validsalad
name = "valid salad"
desc = "It's just an herb salad with meatballs and fried potato slices. Nothing suspicious about it."
icon_state = "validsalad"
list_reagents = list("doctorsdelight" = 5, "vitamin" = 4)
bonus_reagents = list("doctorsdelight" = 5, "vitamin" = 4)
list_reagents = list("nutriment" = 8, "doctorsdelight" = 5, "vitamin" = 2)
@@ -4,7 +4,8 @@
desc = "A grand creation of meat, cheese, bread, and several leaves of lettuce! Arthur Dent would be proud."
icon_state = "sandwich"
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 1, "vitamin" = 1)
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
list_reagents = list("nutriment" = 6, "vitamin" = 1)
cooked_type = /obj/item/weapon/reagent_containers/food/snacks/toastedsandwich
/obj/item/weapon/reagent_containers/food/snacks/toastedsandwich
@@ -12,14 +13,16 @@
desc = "Now if you only had a pepper bar."
icon_state = "toastedsandwich"
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 1, "carbon" = 2)
bonus_reagents = list("nutriment" = 1, "carbon" = 2)
list_reagents = list("nutriment" = 6, "carbon" = 2)
/obj/item/weapon/reagent_containers/food/snacks/grilledcheese
name = "grilled cheese sandwich"
desc = "Goes great with Tomato soup!"
icon_state = "toastedsandwich"
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 1, "vitamin" = 1)
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
list_reagents = list("nutriment" = 7, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich
name = "jelly sandwich"
@@ -29,23 +32,27 @@
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/slime
list_reagents = list("slimejelly" = 5, "vitamin" = 2)
bonus_reagents = list("slimejelly" = 5, "vitamin" = 2)
list_reagents = list("nutriment" = 2, "slimejelly" = 5, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry
list_reagents = list("cherryjelly" = 5, "vitamin" = 2)
bonus_reagents = list("cherryjelly" = 5, "vitamin" = 2)
list_reagents = list("nutriment" = 2, "cherryjelly" = 5, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich
name = "icecream sandwich"
desc = "Portable Ice-cream in it's own packaging."
icon_state = "icecreamsandwich"
list_reagents = list("nutriment" = 1, "ice" = 2)
bonus_reagents = list("nutriment" = 1, "ice" = 2)
list_reagents = list("nutriment" = 2, "ice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/notasandwich
name = "not-a-sandwich"
desc = "Something seems to be wrong with this, you can't quite figure what. Maybe it's his moustache."
icon_state = "notasandwich"
trash = /obj/item/trash/plate
list_reagents = list("vitamin" = 6)
bonus_reagents = list("vitamin" = 6)
list_reagents = list("nutriment" = 6, "vitamin" = 6)
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast
name = "jellied toast"
@@ -55,13 +62,16 @@
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry
list_reagents = list("cherryjelly" = 5, "vitamin" = 2)
bonus_reagents = list("cherryjelly" = 5, "vitamin" = 2)
list_reagents = list("nutriment" = 1, "cherryjelly" = 5, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/slime
list_reagents = list("slimejelly" = 5, "vitamin" = 2)
bonus_reagents = list("slimejelly" = 5, "vitamin" = 2)
list_reagents = list("nutriment" = 1, "slimejelly" = 5, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/twobread
name = "two bread"
desc = "This seems awfully bitter."
icon_state = "twobread"
list_reagents = list("nutriment" = 1, "vitamin" = 2)
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
list_reagents = list("nutriment" = 2, "vitamin" = 2)
+34 -21
View File
@@ -2,6 +2,7 @@
w_class = 3
trash = /obj/item/weapon/reagent_containers/glass/bowl
bitesize = 5
list_reagents = list("nutriment" = 8, "water" = 5, "vitamin" = 4)
/obj/item/weapon/reagent_containers/food/snacks/soup/New()
..()
@@ -11,7 +12,7 @@
name = "wish soup"
desc = "I wish this was soup."
icon_state = "wishsoup"
list_reagents = list("water" = 1)
list_reagents = list("water" = 10)
/obj/item/weapon/reagent_containers/food/snacks/soup/wish/New()
..()
@@ -19,98 +20,107 @@
desc = "A wish come true!"
reagents.add_reagent("nutriment", 9)
reagents.add_reagent("vitamin", 1)
else
reagents.add_reagent("water", 10)
bonus_reagents = list("nutriment" = 9, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/soup/meatball
name = "meatball soup"
desc = "You've got balls kid, BALLS!"
icon_state = "meatballsoup"
list_reagents = list("nutriment" = 1, "vitamin" = 5)
bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/soup/slime
name = "slime soup"
desc = "If no water is available, you may substitute tears."
icon_state = "slimesoup"
list_reagents = list("nutriment" = 1, "slimejelly" = 5, "vitamin" = 5)
bonus_reagents = list("nutriment" = 1, "slimejelly" = 5, "vitamin" = 5)
list_reagents = list("nutriment" = 5, "slimejelly" = 5, "water" = 5, "vitamin" = 4)
/obj/item/weapon/reagent_containers/food/snacks/soup/blood
name = "tomato soup"
desc = "Smells like copper."
icon_state = "tomatosoup"
list_reagents = list("nutriment" = 1, "vitamin" = 6)
bonus_reagents = list("nutriment" = 1, "vitamin" = 6)
list_reagents = list("nutriment" = 2, "blood" = 10, "water" = 5, "vitamin" = 4)
/obj/item/weapon/reagent_containers/food/snacks/soup/clownstears
name = "clown's tears"
desc = "Not very funny."
icon_state = "clownstears"
list_reagents = list("nutriment" = 1, "banana" = 5, "vitamin" = 8)
bonus_reagents = list("nutriment" = 1, "banana" = 5, "vitamin" = 8)
list_reagents = list("nutriment" = 4, "banana" = 5, "water" = 5, "vitamin" = 8)
/obj/item/weapon/reagent_containers/food/snacks/soup/vegetable
name = "vegetable soup"
desc = "A true vegan meal."
icon_state = "vegetablesoup"
list_reagents = list("nutriment" = 1, "vitamin" = 4)
bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
/obj/item/weapon/reagent_containers/food/snacks/soup/nettle
name = "nettle soup"
desc = "To think, the botanist would've beat you to death with one of these."
icon_state = "nettlesoup"
list_reagents = list("nutriment" = 1, "omnizine" = 5, "vitamin" = 5)
bonus_reagents = list("nutriment" = 1, "omnizine" = 5, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/soup/mystery
name = "mystery soup"
desc = "The mystery is, why aren't you eating it?"
icon_state = "mysterysoup"
list_reagents = list("nutriment" = 1, "tomatojuice" = 2)
var/extra_reagent = null
list_reagents = list("nutriment" = 6)
/obj/item/weapon/reagent_containers/food/snacks/soup/mystery/New()
..()
extra_reagent = pick("capsaicin", "frostoil", "omnizine", "banana", "blood", "slimejelly", "toxin", "banana", "carbon", "oculine")
reagents.add_reagent("[extra_reagent]", 5)
bonus_reagents = list("[extra_reagent]" = 5, "nutriment" = 6)
/obj/item/weapon/reagent_containers/food/snacks/soup/hotchili
name = "hot chili"
desc = "A five alarm Texan Chili!"
icon_state = "hotchili"
list_reagents = list("nutriment" = 1, "tomatojuice" = 2, "vitamin" = 2)
bonus_reagents = list("nutriment" = 1, "tomatojuice" = 2, "vitamin" = 2)
list_reagents = list("nutriment" = 5, "capsaicin" = 1, "tomatojuice" = 2, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/soup/coldchili
name = "cold chili"
desc = "This slush is barely a liquid!"
icon_state = "coldchili"
list_reagents = list("nutriment" = 1, "tomatojuice" = 2, "vitamin" = 2)
bonus_reagents = list("nutriment" = 1, "tomatojuice" = 2, "vitamin" = 2)
list_reagents = list("nutriment" = 5, "frostoil" = 1, "tomatojuice" = 2, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/soup/monkeysdelight
name = "monkey's delight"
desc = "A delicious soup with dumplings and hunks of monkey meat simmered to perfection, in a broth that tastes faintly of bananas."
icon_state = "monkeysdelight"
list_reagents = list("nutriment" = 1, "vitamin" = 5)
bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
list_reagents = list("nutriment" = 10, "banana" = 5, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/soup/tomato
name = "tomato soup"
desc = "Drinking this feels like being a vampire! A tomato vampire..."
icon_state = "tomatosoup"
list_reagents = list("nutriment" = 1, "tomatojuice" = 10, "vitamin" = 3)
bonus_reagents = list("nutriment" = 1, "tomatojuice" = 10, "vitamin" = 3)
list_reagents = list("nutriment" = 5, "tomatojuice" = 10, "vitamin" = 3)
/obj/item/weapon/reagent_containers/food/snacks/soup/milo
name = "milosoup"
desc = "The universes best soup! Yum!!!"
icon_state = "milosoup"
list_reagents = list("nutriment" = 1, "vitamin" = 3)
bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
/obj/item/weapon/reagent_containers/food/snacks/soup/mushroom
name = "chantrelle soup"
desc = "A delicious and hearty mushroom soup."
icon_state = "mushroomsoup"
list_reagents = list("nutriment" = 1, "vitamin" = 5)
bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
list_reagents = list("nutriment" = 8, "vitamin" = 4)
/obj/item/weapon/reagent_containers/food/snacks/soup/beet
name = "beet soup"
desc = "Wait, how do you spell it again..?"
icon_state = "beetsoup"
list_reagents = list("nutriment" = 1, "vitamin" = 5)
bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
list_reagents = list("nutriment" = 8, "vitamin" = 4)
/obj/item/weapon/reagent_containers/food/snacks/soup/beet/New()
..()
@@ -122,18 +132,21 @@
desc = "Jello gelatin, from Alfred Hubbard's cookbook."
icon_state = "spacylibertyduff"
bitesize = 3
list_reagents = list("nutriment" = 1, "vitamin" = 5)
bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
list_reagents = list("nutriment" = 6, "mushroomhallucinogen" = 6)
/obj/item/weapon/reagent_containers/food/snacks/soup/amanitajelly
name = "amanita jelly"
desc = "Looks curiously toxic."
icon_state = "amanitajelly"
bitesize = 3
list_reagents = list("nutriment" = 1, "vitamin" = 5)
bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
list_reagents = list("nutriment" = 6, "mushroomhallucinogen" = 3, "amatoxin" = 6)
/obj/item/weapon/reagent_containers/food/snacks/soup/stew
name = "stew"
desc = "A nice and warm stew. Healthy and strong."
icon_state = "stew"
list_reagents = list("nutriment" = 1, "tomatojuice" = 5, "vitamin" = 5)
bonus_reagents = list("nutriment" = 1, "tomatojuice" = 5, "vitamin" = 5)
list_reagents = list("nutriment" = 10, "oculine" = 5, "tomatojuice" = 5, "vitamin" = 5)
bitesize = 7
@@ -12,7 +12,8 @@
desc = "A plain dish of noodles, this needs more ingredients."
icon_state = "spaghettiboiled"
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 2)
bonus_reagents = list("nutriment" = 2)
list_reagents = list("nutriment" = 2, "vitamin" = 1)
custom_food_type = /obj/item/weapon/reagent_containers/food/snacks/customizable/pasta
filling_color = "#F0E68C"
@@ -22,7 +23,8 @@
icon_state = "pastatomato"
trash = /obj/item/trash/plate
bitesize = 4
list_reagents = list("nutriment" = 1, "vitamin" = 4)
bonus_reagents = list("nutriment" = 1, "tomatojuice" = 10, "vitamin" = 4)
list_reagents = list("nutriment" = 6, "tomatojuice" = 10, "vitamin" = 4)
filling_color = "#DC143C"
/obj/item/weapon/reagent_containers/food/snacks/copypasta
@@ -31,7 +33,8 @@
icon_state = "copypasta"
trash = /obj/item/trash/plate
bitesize = 4
list_reagents = list("nutriment" = 1, "vitamin" = 4)
bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
list_reagents = list("nutriment" = 12, "tomatojuice" = 20, "vitamin" = 8)
filling_color = "#DC143C"
/obj/item/weapon/reagent_containers/food/snacks/meatballspaghetti
@@ -39,7 +42,8 @@
desc = "Now that's a nic'e meatball!"
icon_state = "meatballspaghetti"
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 1, "vitamin" = 4)
bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
list_reagents = list("nutriment" = 8, "vitamin" = 4)
filling_color = "#F0E68C"
/obj/item/weapon/reagent_containers/food/snacks/spesslaw
@@ -47,5 +51,6 @@
desc = "A lawyers favourite."
icon_state = "spesslaw"
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 1, "vitamin" = 6)
bonus_reagents = list("nutriment" = 1, "vitamin" = 6)
list_reagents = list("nutriment" = 8, "vitamin" = 6)
filling_color = "#F0E68C"
@@ -245,7 +245,7 @@
for(var/obj/item/weapon/reagent_containers/food/snacks/F in contents)
if(F.cooked_type)
var/obj/item/weapon/reagent_containers/food/snacks/S = new F.cooked_type (get_turf(src))
F.initialize_cooked_food(S)
F.initialize_cooked_food(S, efficiency)
else
new /obj/item/weapon/reagent_containers/food/snacks/badrecipe(src)
if(dirty < 100)
@@ -53,7 +53,7 @@
/datum/food_processor_process/mob/slime/process(loc, what)
var/mob/living/carbon/slime/S = what
var/mob/living/simple_animal/slime/S = what
var/C = S.cores
if(S.stat != DEAD)
S.loc = loc
@@ -64,7 +64,7 @@
feedback_add_details("slime_core_harvested","[replacetext(S.colour," ","_")]")
..()
/datum/food_processor_process/mob/slime/input = /mob/living/carbon/slime
/datum/food_processor_process/mob/slime/input = /mob/living/simple_animal/slime
/datum/food_processor_process/mob/slime/output = null
/datum/food_processor_process/mob/monkey/process(loc, what)
@@ -111,43 +111,6 @@
required_reagents = list("capsaicin" = 1, "hot_ramen" = 6)
result_amount = 6
/datum/chemical_reaction/cakebatter
name = "Cake Batter"
id = "cakebatter"
result = null
required_reagents = list("milk" = 5)
result_amount = 1
required_container = /obj/item/weapon/reagent_containers/food/snacks/dough
mix_message = "The dough forms a cake batter."
/datum/chemical_reaction/cakebatter/on_reaction(var/datum/reagents/holder)
var/obj/item/weapon/reagent_containers/food/snacks/S = new /obj/item/weapon/reagent_containers/food/snacks/cakebatter
S.loc = get_turf(holder.my_atom)
if(holder && holder.my_atom)
qdel(holder.my_atom)
/datum/chemical_reaction/piedough
name = "Pie Dough"
id = "piedough"
result = null
required_reagents = list("milk" = 5)
result_amount = 1
required_container = /obj/item/weapon/reagent_containers/food/snacks/flatdough
mix_message = "The dough forms a pie dough."
/datum/chemical_reaction/piedough/on_reaction(var/datum/reagents/holder)
var/obj/item/weapon/reagent_containers/food/snacks/S = new /obj/item/weapon/reagent_containers/food/snacks/piedough
S.loc = get_turf(holder.my_atom)
if(holder && holder.my_atom)
qdel(holder.my_atom)
/datum/chemical_reaction/cakebatter/alt
id = "cakebatteralt"
required_reagents = list("soymilk" = 5)
/datum/chemical_reaction/piedough/alt
id = "piedoughalt"
required_reagents = list("soymilk" = 5)
/datum/chemical_reaction/imitationcarpmeat
name = "Imitation Carpmeat"
@@ -164,22 +127,33 @@
if(holder && holder.my_atom)
qdel(holder.my_atom)
/datum/chemical_reaction/rawpastrybase
name = "Raw Pastry Base"
id = "rawpastrybase"
/datum/chemical_reaction/dough
name = "Dough"
id = "dough"
result = null
required_reagents = list("milk" = 5)
required_reagents = list("water" = 10, "flour" = 15)
result_amount = 1
required_container = /obj/item/weapon/reagent_containers/food/snacks/doughslice
mix_message = "The doughslice forms a raw pastry base"
mix_message = "The ingredients form a dough."
/datum/chemical_reaction/rawpastrybase/on_reaction(var/datum/reagents/holder)
var/obj/item/weapon/reagent_containers/food/snacks/S = new /obj/item/weapon/reagent_containers/food/snacks/rawpastrybase
S.loc = get_turf(holder.my_atom)
if(holder && holder.my_atom)
qdel(holder.my_atom)
/datum/chemical_reaction/dough/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/dough(location)
/datum/chemical_reaction/rawpastrybase/alt
id = "rawpastrybasealt"
required_reagents = list("soymilk" = 5)
/datum/chemical_reaction/cakebatter
name = "Cake Batter"
id = "cakebatter"
result = null
required_reagents = list("eggyolk" = 15, "flour" = 15, "sugar" = 5)
result_amount = 1
mix_message = "The ingredients form a cake batter."
/datum/chemical_reaction/cakebatter/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/cakebatter(location)
/datum/chemical_reaction/cakebatter/vegan
id = "vegancakebatter"
required_reagents = list("soymilk" = 15, "flour" = 15, "sugar" = 5)
@@ -45,6 +45,14 @@
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/xeno
datum/table_recipe/bearger
name = "Bearger"
reqs = list(
/obj/item/weapon/reagent_containers/food/snacks/meatsteak/bear = 1,
/obj/item/weapon/reagent_containers/food/snacks/bun = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/bearger
/datum/table_recipe/fishburger
name = "Fish burger"
reqs = list(
@@ -1,53 +0,0 @@
// see code/module/crafting/table.dm
////////////////////////////////////////////////DOUGH////////////////////////////////////////////////
//these recipes can also be done with attackby.
/datum/table_recipe/cakebatter
name = "Cake Batter"
reqs = list(
/datum/reagent/consumable/milk = 5,
/obj/item/weapon/reagent_containers/food/snacks/dough = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/cakebatter
/datum/table_recipe/cakebatter/alt
reqs = list(
/datum/reagent/consumable/soymilk = 5,
/obj/item/weapon/reagent_containers/food/snacks/dough = 1
)
/datum/table_recipe/piedough
name = "Pie Dough"
reqs = list(
/datum/reagent/consumable/milk = 5,
/obj/item/weapon/reagent_containers/food/snacks/flatdough = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/piedough
/datum/table_recipe/piedough/alt
reqs = list(
/datum/reagent/consumable/soymilk = 5,
/obj/item/weapon/reagent_containers/food/snacks/flatdough = 1
)
/datum/table_recipe/rawpastrybase
name = "Raw Pastry Base"
reqs = list(
/datum/reagent/consumable/milk = 5,
/obj/item/weapon/reagent_containers/food/snacks/doughslice = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/rawpastrybase
/datum/table_recipe/rawpastrybase/alt
reqs = list(
/datum/reagent/consumable/soymilk = 5,
/obj/item/weapon/reagent_containers/food/snacks/doughslice = 1
)
@@ -87,6 +87,15 @@
)
result = /obj/item/weapon/reagent_containers/food/snacks/cornedbeef
/datum/table_recipe/bearsteak
name = "Filet migrawr"
reqs = list(
/datum/reagent/consumable/ethanol/manly_dorf = 5,
/obj/item/weapon/reagent_containers/food/snacks/meatsteak/bear = 1,
/obj/item/weapon/lighter/grayscale
)
result = /obj/item/weapon/reagent_containers/food/snacks/bearsteak
/datum/table_recipe/wingfangchu
name = "Wingfangchu"
reqs = list(
@@ -54,6 +54,15 @@
)
result = /obj/item/weapon/reagent_containers/food/snacks/pie/berryclafoutis
/datum/table_recipe/bearypie
name = "Beary Pie"
reqs = list(
/obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1,
/obj/item/weapon/reagent_containers/food/snacks/grown/berries = 1,
/obj/item/weapon/reagent_containers/food/snacks/meatsteak/bear = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/pie/bearypie
/datum/table_recipe/amanitapie
name = "Amanita pie"
reqs = list(
@@ -52,7 +52,7 @@
name = "Not a sandwich"
reqs = list(
/obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 2,
/obj/item/clothing/mask/fakemoustache
/obj/item/clothing/mask/fakemoustache = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/notasandwich
+235
View File
@@ -0,0 +1,235 @@
//Easter start
/datum/holiday/easter/greet()
return "Greetings! Have a Happy Easter and keep an eye out for Easter Bunnies!"
/datum/round_event_control/easter
name = "Easter Eggselence"
holidayID = EASTER
typepath = /datum/round_event/easter
weight = -1
max_occurrences = 1
earliest_start = 0
/datum/round_event/easter/announce()
priority_announce(pick("Hip-hop into Easter!","Find some Bunny's stash!","Today is National 'Hunt a Wabbit' Day.","Be kind, give Chocolate Eggs!"))
/datum/round_event_control/rabbitrelease
name = "Release the Rabbits!"
typepath = /datum/round_event/rabbitrelease
weight = 5
max_occurrences = 10
/datum/round_event/rabbitrelease/announce()
priority_announce("Unidentified furry objects detected coming aboard [station_name()]. Beware of Adorable-ness.", "Fluffy Alert", 'sound/AI/aliens.ogg')
/datum/round_event/rabbitrelease/start()
for(var/obj/effect/landmark/R in landmarks_list)
if(R.name != "blobspawn")
if(prob(35))
if(istype(R.loc,/turf/space))
new /mob/living/simple_animal/chicken/rabbit/space(R.loc)
else
new /mob/living/simple_animal/chicken/rabbit(R.loc)
/mob/living/simple_animal/chicken/rabbit
name = "\improper rabbit"
desc = "The hippiest hop around."
icon = 'icons/mob/Easter.dmi'
icon_state = "rabbit"
icon_living = "rabbit"
icon_dead = "rabbit_dead"
speak = list("Hop into Easter!","Come get your eggs!","Prizes for everyone!")
speak_emote = list("sniffles","twitches")
emote_hear = list("hops.")
emote_see = list("hops around","bounces up and down")
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
egg_type = /obj/item/weapon/reagent_containers/food/snacks/egg/loaded
food_type = /obj/item/weapon/reagent_containers/food/snacks/grown/carrot
meat_amount = 1
eggsleft = 10
eggsFertile = FALSE
icon_prefix = "rabbit"
feedMessages = list("It nibbles happily.","It noms happily.")
layMessage = list("hides an egg.","scampers around suspiciously.","begins making a huge racket.","begins shuffling.")
/mob/living/simple_animal/chicken/rabbit/space
icon_prefix = "s_rabbit"
icon_state = "s_rabbit"
icon_living = "s_rabbit"
icon_dead = "s_rabbit_dead"
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
maxbodytemp = 1500
unsuitable_atmos_damage = 0 //This damage is taken when atmos doesn't fit all the requirements above
//Easter Baskets
/obj/item/weapon/storage/bag/easterbasket
name = "Easter Basket"
icon = 'icons/mob/Easter.dmi'
icon_state = "basket"
can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/egg,/obj/item/weapon/reagent_containers/food/snacks/chocolateegg,/obj/item/weapon/reagent_containers/food/snacks/boiledegg)
/obj/item/weapon/storage/bag/easterbasket/proc/countEggs()
overlays.Cut()
overlays += image("icon" = icon, "icon_state" = "basket-grass", "layer" = -1)
overlays += image("icon" = icon, "icon_state" = "basket-egg[contents.len <= 5 ? contents.len : 5]", "layer" = -1)
/obj/item/weapon/storage/bag/easterbasket/remove_from_storage(obj/item/W as obj, atom/new_location)
..()
countEggs()
/obj/item/weapon/storage/bag/easterbasket/handle_item_insertion(obj/item/I, prevent_warning = 0)
..()
countEggs()
//Bunny Suit
/obj/item/clothing/head/bunnyhead
name = "Easter Bunny Head"
icon_state = "bunnyhead"
item_state = "bunnyhead"
desc = "Considerably more cute than 'Frank'"
slowdown = -1
flags = BLOCKHAIR
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
/obj/item/clothing/suit/bunnysuit
name = "Easter Bunny Suit"
desc = "Hop Hop Hop!"
icon_state = "bunnysuit"
item_state = "bunnysuit"
slowdown = -1
body_parts_covered = CHEST|GROIN|LEGS|ARMS
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
//Egg prizes and egg spawns!
/obj/item/weapon/reagent_containers/food/snacks/egg
var/containsPrize = FALSE
/obj/item/weapon/reagent_containers/food/snacks/egg/loaded
containsPrize = TRUE
/obj/item/weapon/reagent_containers/food/snacks/egg/loaded/New()
..()
var/color = pick("blue","green","mime","orange","purple","rainbow","red","yellow")
icon_state = "egg-[color]"
item_color = "[color]"
/obj/item/weapon/reagent_containers/food/snacks/egg/proc/dispensePrize(var/turf/where)
var/won = pick(/obj/item/clothing/head/bunnyhead,
/obj/item/clothing/suit/bunnysuit,
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot,
/obj/item/weapon/reagent_containers/food/snacks/chocolateegg,
/obj/item/toy/balloon,
/obj/item/toy/gun,
/obj/item/toy/sword,
/obj/item/toy/foamblade,
/obj/item/toy/prize/ripley,
/obj/item/toy/prize/honk,
/obj/item/toy/carpplushie,
/obj/item/toy/redbutton,
/obj/item/clothing/head/collectable/rabbitears)
new won(where)
new/obj/item/weapon/reagent_containers/food/snacks/chocolateegg(where)
/obj/item/weapon/reagent_containers/food/snacks/egg/attack_self(mob/user as mob)
..()
if(containsPrize)
user << "<span class='notice'>You unwrap the [src] and find a prize inside!</span>"
dispensePrize(get_turf(user))
containsPrize = FALSE
qdel(src)
/obj/effect/spawner/lootdrop/maintenance/New()
..()
loot += list(/obj/item/weapon/reagent_containers/food/snacks/egg/loaded = 15, /obj/item/weapon/storage/bag/easterbasket = 15)
//Easter Recipes + food
/obj/item/weapon/reagent_containers/food/snacks/hotcrossbun
bitesize = 2
name = "hot-cross bun"
desc = "The Cross represents the Assistants that died for your sins."
icon_state = "hotcrossbun"
/datum/table_recipe/hotcrossbun
name = "Hot-Cross Bun"
reqs = list(
/obj/item/weapon/reagent_containers/food/snacks/store/bread/plain = 1,
/datum/reagent/consumable/sugar = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/hotcrossbun
/obj/item/weapon/reagent_containers/food/snacks/store/cake/brioche
name = "brioche cake"
desc = "A ring of sweet, glazed buns."
icon_state = "briochecake"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/brioche
slices_num = 6
bonus_reagents = list("nutriment" = 10, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/cakeslice/brioche
name = "brioche cake slice"
desc = "Delicious sweet-bread. Who needs anything else?"
icon_state = "briochecake_slice"
filling_color = "#FFD700"
/datum/table_recipe/briochecake
name = "Brioche cake"
reqs = list(
/obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1,
/datum/reagent/consumable/sugar = 2
)
result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/brioche
/obj/item/weapon/reagent_containers/food/snacks/scotchegg
name = "scotch egg"
desc = "A boiled egg wrapped in a delicious, seasoned meatball."
icon_state = "scotchegg"
bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
bitesize = 3
filling_color = "#FFFFF0"
list_reagents = list("nutriment" = 6)
/datum/table_recipe/scotchegg
name = "Scotch egg"
reqs = list(
/datum/reagent/consumable/sodiumchloride = 1,
/datum/reagent/consumable/blackpepper = 1,
/obj/item/weapon/reagent_containers/food/snacks/boiledegg = 1,
/obj/item/weapon/reagent_containers/food/snacks/faggot = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/scotchegg
/obj/item/weapon/reagent_containers/food/snacks/soup/mammi
name = "Mämmi"
desc = "A bowl of mushy bread and milk. It reminds you, not too fondly, of a bowel movement."
icon_state = "mammi"
bonus_reagents = list("nutriment" = 3, "vitamin" = 1)
list_reagents = list("nutriment" = 8, "vitamin" = 1)
/datum/table_recipe/mammi
name = "Mämmi"
reqs = list(
/obj/item/weapon/reagent_containers/food/snacks/store/bread/plain = 1,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 1,
/datum/reagent/consumable/milk = 5
)
result = /obj/item/weapon/reagent_containers/food/snacks/soup/mammi
/obj/item/weapon/reagent_containers/food/snacks/chocolatebunny
name = "chocolate bunny"
desc = "Contains less than 10% real rabbit!"
icon_state = "chocolatebunny"
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
list_reagents = list("nutriment" = 4, "sugar" = 2, "cocoa" = 2)
filling_color = "#A0522D"
/datum/table_recipe/chocolatebunny
name = "Chocolate bunny"
reqs = list(
/datum/reagent/consumable/sugar = 2,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/chocolatebunny
+3 -2
View File
@@ -234,8 +234,6 @@
maxHealth = 1e6
health = 1e6
emote_see = list("silently stares")
heat_damage_per_tick = 0
cold_damage_per_tick = 0
unsuitable_atmos_damage = 0
var/timer
@@ -288,3 +286,6 @@
visible_message("<span class='userdanger'>[src] seems to be resisting the effect!</span>")
else
..()
/mob/living/simple_animal/hostile/retaliate/clown/insane/handle_temperature_damage()
return
+316
View File
@@ -0,0 +1,316 @@
/datum/holiday
var/name = "Bugsgiving"
//Right now, only holidays that take place on a certain day or within a time period are supported
//It would be nice to support things like "the second monday in march" or "the first sunday after the second sunday in june"
var/begin_day = 1
var/begin_month = 0
var/end_day = 0 // Default of 0 means the holiday lasts a single day
var/end_month = 0
// This proc gets run before the game starts when the holiday is activated. Do festive shit here.
/datum/holiday/proc/celebrate()
// When the round starts, this proc is ran to get a text message to display to everyone to wish them a happy holiday
/datum/holiday/proc/greet()
return "Have a happy [name]!"
// Returns special prefixes for the station name on certain days. You wind up with names like "Christmas Object Epsilon". See new_station_name()
/datum/holiday/proc/getStationPrefix()
//get the first word of the Holiday and use that
var/i = findtext(name," ",1,0)
return copytext(name,1,i)
// Return 1 if this holidy should be celebrated today
/datum/holiday/proc/shouldCelebrate(dd, mm, yy)
if(!end_day)
end_day = begin_day
if(!end_month)
end_month = begin_month
if(end_month > begin_month) //holiday spans multiple months in one year
if(mm == end_month) //in final month
if(dd <= end_day)
return 1
else if(mm == begin_month)//in first month
if(dd >= begin_day)
return 1
else if(mm in begin_month to end_month) //holiday spans 3+ months and we're in the middle, day doesn't matter at all
return 1
else if(end_month == begin_month) // starts and stops in same month, simplest case
if(mm == begin_month && (dd in begin_day to end_day))
return 1
else // starts in one year, ends in the next
if(mm >= begin_month && dd >= begin_day) // Holiday ends next year
return 1
if(mm <= end_month && dd <= end_day) // Holiday started last year
return 1
return 0
// The actual holidays
/datum/holiday/new_year
name = NEW_YEAR
begin_day = 30 // 1 day early
begin_month = DECEMBER
end_day = 5 //4 days extra
end_month = JANUARY
/datum/holiday/groundhog
name = "Groundhog Day"
begin_day = 2
begin_month = FEBRUARY
/datum/holiday/valentines
name = VALENTINES
begin_day = 9 //6 days early
begin_month = FEBRUARY
end_day = 15 //1 day extra
/datum/holiday/random_kindness
name = "Random Acts of Kindness Day"
begin_day = 17
begin_month = FEBRUARY
/datum/holiday/random_kindness/greet()
return "Go do some random acts of kindness for a stranger!" //haha yeah right
/datum/holiday/pi
name = "Pi Day"
begin_day = 14
begin_month = MARCH
/datum/holiday/no_this_is_patrick
name = "St. Patrick's Day"
begin_day = 17
begin_month = MARCH
/datum/holiday/april_fools
name = APRIL_FOOLS
begin_day = 1
begin_month = APRIL
end_day = 8 //7 days extra so everyone can enjoy the festivities
/datum/holiday/fourtwenty
name = "Four-Twenty"
begin_day = 20
begin_month = APRIL
/datum/holiday/earth
name = "Earth Day"
begin_day = 22
begin_month = APRIL
/datum/holiday/labor
name = "Labor Day"
begin_day = 1
begin_month = MAY
/datum/holiday/firefighter
name = "Firefighter's Day"
begin_day = 4
begin_month = MAY
// No holidays in June :'(
/datum/holiday/doctor
name = "Doctor's Day"
begin_day = 1
begin_month = JULY
/datum/holiday/UFO
name = "UFO Day"
begin_day = 2
begin_month = JULY
/datum/holiday/writer
name = "Writer's Day"
begin_day = 8
begin_month = JULY
/datum/holiday/friendship
name = "Friendship Day"
begin_day = 30
begin_month = JULY
/datum/holiday/friendship/greet()
return "Have a magical [name]!"
/datum/holiday/beer
name = "Beer Day"
begin_day = 5
begin_month = AUGUST
/datum/holiday/pirate
name = "Talk-Like-a-Pirate Day"
begin_day = 19
begin_month = SEPTEMBER
/datum/holiday/pirate/greet()
return "Ye be talkin' like a pirate today or else ye'r walkin' tha plank, matey!"
/datum/holiday/questions
name = "Stupid-Questions Day"
begin_day = 28
begin_month = SEPTEMBER
/datum/holiday/questions/greet()
return "Are you having a happy [name]?"
/datum/holiday/animal
name = "Animal's Day"
begin_day = 4
begin_month = OCTOBER
/datum/holiday/smile
name = "Smiling Day"
begin_day = 7
begin_month = OCTOBER
/datum/holiday/boss
name = "Boss' Day"
begin_day = 16
begin_month = OCTOBER
/datum/holiday/halloween
name = HALLOWEEN
begin_day = 24 //7 days early
begin_month = OCTOBER
end_day = 7 //7 days extra
end_month = NOVEMBER
/datum/holiday/halloween/greet()
return "Have a spooky Halloween!"
/datum/holiday/vegan
name = "Vegan Day"
begin_day = 1
begin_month = NOVEMBER
/datum/holiday/kindness
name = "Kindness Day"
begin_day = 13
begin_month = NOVEMBER
/datum/holiday/flowers
name = "Flowers Day"
begin_day = 19
begin_month = NOVEMBER
/datum/holiday/hello
name = "Saying-'Hello' Day"
begin_day = 21
begin_month = NOVEMBER
/datum/holiday/hello/greet()
return "[pick(list("Aloha", "Bonjour", "Hello", "Hi", "Greetings", "Salutations", "Bienvenidos", "Hola", "Howdy"))]! " + ..()
/datum/holiday/human_rights
name = "Human-Rights Day"
begin_day = 10
begin_month = DECEMBER
/datum/holiday/monkey
name = "Monkey Day"
begin_day = 14
begin_month = DECEMBER
/datum/holiday/xmas
name = CHRISTMAS
begin_day = 18 //7 days early
begin_month = DECEMBER
end_day = 8 //14 days extra, christmas is important
end_month = JANUARY
/datum/holiday/xmas/greet()
return "Have a merry Christmas!"
/datum/holiday/boxing
name = "Boxing Day"
begin_day = 26
begin_month = DECEMBER
/datum/holiday/friday_thirteenth
name = "Friday the 13th"
/datum/holiday/friday_thirteenth/shouldCelebrate(dd, mm, yy)
if(dd == 13)
if(time2text(world.timeofday, "DDD") == "Fri")
return 1
return 0
/datum/holiday/friday_thirteenth/getStationPrefix()
return pick("Mike","Friday","Evil","Myers","Murder","Deathly","Stabby")
/datum/holiday/easter
name = EASTER
var/const/days_early = 1 //to make editing the holiday easier
var/const/days_extra = 6
/datum/holiday/easter/shouldCelebrate(dd, mm, yy)
// Easter's celebration day is as snowflakey as Uhangi's code
if(!begin_month)
var/yy_string = "[yy]"
// year = days after March 22that Easter falls on that year.
// For 2015 Easter is on April 5th, so 2015 = 14 since the 5th is 14 days past the 22nd
// If it's 2040 and this is still in use, invent a time machine and teach me a better way to do this. Also tell us about HL3.
var/list/easters = list(
"15" = 14,\
"16" = 6,\
"17" = 25,\
"18" = 10,\
"19" = 30,\
"20" = 22,\
"21" = 13,\
"22" = 26,\
"23" = 18,\
"24" = 9,\
"25" = 29,\
"26" = 14,\
"27" = 6,\
"28" = 25,\
"29" = 10,\
"30" = 30,\
"31" = 23,\
"32" = 6,\
"33" = 26,\
"34" = 18,\
"35" = 3,\
"36" = 22,\
"37" = 14,\
"38" = 34,\
"39" = 19,\
"40" = 9,\
)
begin_day = easters[yy_string]
if(begin_day <= 9)
begin_day += 22
begin_month = MARCH
else
begin_day -= 9
begin_month = APRIL
end_day = begin_day + days_extra
end_month = begin_month
if(end_day >= 32 && end_month == MARCH) //begins in march, ends in april
end_day -= 31
end_month++
if(end_day >= 31 && end_month == APRIL) //begins in april, ends in june
end_day -= 30
end_month++
begin_day -= days_early
if(begin_day <= 0)
if(begin_month == APRIL)
begin_day += 31
begin_month-- //begins in march, ends in april
// world << "Easter calculates to be on [begin_day] of [begin_month] ([days_early] early) to [end_day] of [end_month] ([days_extra] extra) for 20[yy]"
return ..()
+12 -3
View File
@@ -148,7 +148,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/poppy/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 20), 1))
reagents.add_reagent("hotline", 3 + round((potency / 10), 1))
reagents.add_reagent("salglu_solution", 1 + round((potency / 20), 1))
bitesize = 1 + round(reagents.total_volume / 3, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/poppy/lily
@@ -619,6 +619,7 @@
name = "mimana"
desc = "It's an excellent prop for a mime."
icon_state = "mimana"
trash = /obj/item/weapon/grown/bananapeel/mimanapeel
filling_color = "#FFFFEE"
/obj/item/weapon/reagent_containers/food/snacks/grown/mimana/add_juice()
@@ -650,7 +651,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/icepepper
seed = /obj/item/seeds/icepepperseed
name = "ice-pepper"
name = "ice pepper"
desc = "It's a mutant strain of chili"
icon_state = "icepepper"
filling_color = "#0000CD"
@@ -665,7 +666,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/icepepper/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
. = ..()
if (istype(O, /obj/item/device/analyzer/plant_analyzer))
user << "<span class='info'>- Frostoil: <i>[reagents.get_reagent_amount("frostoil")]%</i></span>"
user << "<span class='info'>- Frost Oil: <i>[reagents.get_reagent_amount("frostoil")]%</i></span>"
/obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili
@@ -969,6 +970,9 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
GT.amount = GT.max_amount
else
GT.amount = grassAmt
for(var/obj/item/stack/tile/grass/GR in user.loc)
if(GR != GT && GR.amount < GR.max_amount)
GR.attackby(GT, user) //we try to transfer all old unfinished stacks to the new stack we created.
grassAmt -= GT.max_amount
qdel(src)
return
@@ -991,6 +995,9 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
CT.amount = CT.max_amount
else
CT.amount = carpetAmt
for(var/obj/item/stack/tile/carpet/CA in user.loc)
if(CA != CT && CA.amount < CA.max_amount)
CA.attackby(CT, user) //we try to transfer all old unfinished stacks to the new stack we created.
carpetAmt -= CT.max_amount
qdel(src)
return
@@ -1024,6 +1031,8 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
reagents.add_reagent("oculine", 3+round(potency / 5, 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom
name = "mushroom"
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/reishi
seed = /obj/item/seeds/reishimycelium
+22 -19
View File
@@ -4,7 +4,7 @@
/obj/item/weapon/grown // Grown weapons
name = "grown_weapon"
icon = 'icons/obj/weapons.dmi'
icon = 'icons/obj/hydroponics/harvest.dmi'
var/seed = null
var/plantname = ""
var/product //a type path
@@ -45,7 +45,6 @@
seed = /obj/item/seeds/towermycelium
name = "tower-cap log"
desc = "It's better than bad, it's good!"
icon = 'icons/obj/hydroponics/harvest.dmi'
icon_state = "logs"
force = 5
throwforce = 5
@@ -55,6 +54,8 @@
plant_type = 2
origin_tech = "materials=1"
attack_verb = list("bashed", "battered", "bludgeoned", "whacked")
var/plank_type = /obj/item/stack/sheet/mineral/wood
var/plank_name = "wooden planks"
var/list/accepted = list(/obj/item/weapon/reagent_containers/food/snacks/grown/tobacco,
/obj/item/weapon/reagent_containers/food/snacks/grown/tobacco/space,
/obj/item/weapon/reagent_containers/food/snacks/grown/tea/aspera,
@@ -67,19 +68,16 @@
/obj/item/weapon/grown/log/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || (istype(W, /obj/item/weapon/twohanded/fireaxe) && W:wielded) || istype(W, /obj/item/weapon/melee/energy))
user.show_message("<span class='notice'>You make planks out of \the [src]!</span>", 1)
for(var/i = 0,i < 2,i++)
var/obj/item/stack/sheet/mineral/wood/NG = new (user.loc)
for (var/obj/item/stack/sheet/mineral/wood/G in user.loc)
if(G == NG)
continue
if(G.amount >= G.max_amount)
continue
G.amount += round(potency / 25)
G.attackby(NG, user)
usr << "You add the newly-formed wood to the stack. It now contains [NG.amount] planks."
user.show_message("<span class='notice'>You make [plank_name] out of \the [src]!</span>", 1)
var/obj/item/stack/plank = new plank_type(user.loc, 1 + round(potency / 25))
var/old_plank_amount = plank.amount
for(var/obj/item/stack/ST in user.loc)
if(ST != plank && istype(ST, plank_type) && ST.amount < ST.max_amount)
ST.attackby(plank, user) //we try to transfer all old unfinished stacks to the new stack we created.
if(plank.amount > old_plank_amount)
user << "You add the newly-formed [plank_name] to the stack. It now contains [plank.amount] [plank_name]."
qdel(src)
return
if(is_type_in_list(W,accepted))
var/obj/item/weapon/reagent_containers/food/snacks/grown/leaf = W
if(leaf.dry)
@@ -93,11 +91,19 @@
else
usr << "<span class ='warning'> You must dry this first.</span>"
/obj/item/weapon/grown/log/steel
seed = /obj/item/seeds/steelmycelium
name = "steel-cap log"
desc = "It's made of metal."
icon_state = "steellogs"
accepted = list()
plank_type = /obj/item/stack/rods
plank_name = "rods"
/obj/item/weapon/grown/sunflower // FLOWER POWER!
seed = /obj/item/seeds/sunflowerseed
name = "sunflower"
desc = "It's beautiful! A certain person might beat you to death if you trample these."
icon = 'icons/obj/hydroponics/harvest.dmi'
icon_state = "sunflower"
damtype = "fire"
force = 0
@@ -116,7 +122,6 @@
seed = /obj/item/seeds/novaflowerseed
name = "novaflower"
desc = "These beautiful flowers have a crisp smokey scent, like a summer bonfire."
icon = 'icons/obj/hydroponics/harvest.dmi'
icon_state = "novaflower"
damtype = "fire"
force = 0
@@ -217,7 +222,7 @@
/obj/item/weapon/grown/nettle/death
seed = /obj/item/seeds/deathnettleseed
name = "deathnettle"
desc = "The <span class='danger'>glowing</span> \black nettle incites <span class='userdanger'>rage</span>\black in you just from looking at it!"
desc = "The <span class='danger'>glowing</span> \black nettle incites <span class='boldannounce'>rage</span>\black in you just from looking at it!"
icon_state = "deathnettle"
force = 30
throwforce = 15
@@ -288,7 +293,6 @@
/obj/item/weapon/grown/corncob
name = "corn cob"
desc = "A reminder of meals gone by."
icon = 'icons/obj/hydroponics/harvest.dmi'
icon_state = "corncob"
item_state = "corncob"
w_class = 1.0
@@ -308,7 +312,6 @@
/obj/item/weapon/grown/snapcorn
name = "snap corn"
desc = "A cob with snap pops"
icon = 'icons/obj/hydroponics/harvest.dmi'
icon_state = "snapcorn"
item_state = "corncob"
w_class = 1.0
+3 -1
View File
@@ -845,7 +845,9 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob, p
podman.ckey = ckey_holder
podman.gender = blood_gender
podman.faction |= factions
hardset_dna(podman,null,null,podman.real_name,blood_type,/datum/species/plant/pod)//Discard SE's and UI's, podman cloning is inaccurate, and always make them a podman
if(!mutant_color)
mutant_color = "#59CE00"
hardset_dna(podman,null,null,podman.real_name,blood_type,/datum/species/plant/pod,mutant_color)//Discard SE's and UI's, podman cloning is inaccurate, and always make them a podman
podman.set_cloned_appearance()
else //else, one packet of seeds. maybe two
+9 -7
View File
@@ -90,6 +90,7 @@
var/datum/mind/mind = null
var/blood_gender = null
var/blood_type = null
var/mutant_color = null
var/factions = null
var/contains_sample = 0
@@ -103,6 +104,7 @@
realName = bloodSample.data["real_name"]
blood_gender = bloodSample.data["gender"]
blood_type = bloodSample.data["blood_type"]
mutant_color = bloodSample.data["mutant_color"]
factions = bloodSample.data["factions"]
W.reagents.clear_reagents()
user << "You inject the contents of the syringe into the seeds."
@@ -475,11 +477,11 @@
growthstages = 4
/obj/item/seeds/icepepperseed
name = "pack of ice-pepper seeds"
desc = "These seeds grow into ice-pepper plants."
name = "pack of ice pepper seeds"
desc = "These seeds grow into ice pepper plants."
icon_state = "seed-icepepper"
species = "chiliice"
plantname = "Ice-Pepper Plants"
plantname = "Ice Pepper Plants"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/icepepper
lifespan = 25
endurance = 15
@@ -548,7 +550,7 @@
desc = "These may, or may not, grow into oat."
icon_state = "seed-oat"
species = "oat"
plantname = "oat Stalks"
plantname = "Oat Stalks"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/oat
lifespan = 25
endurance = 15
@@ -565,7 +567,7 @@
desc = "These may, or may not, grow into rice."
icon_state = "seed-rice"
species = "rice"
plantname = "rice Stalks"
plantname = "Rice Stalks"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/rice
lifespan = 25
endurance = 15
@@ -719,11 +721,11 @@
/obj/item/seeds/steelmycelium
name = "pack of steel-cap mycelium"
desc = "This mycelium grows into metal rods."
desc = "This mycelium grows into steel logs."
icon_state = "mycelium-steelcap"
species = "steelcap"
plantname = "Steel Caps"
product = /obj/item/stack/rods
product = /obj/item/weapon/grown/log/steel
lifespan = 80
endurance = 50
maturation = 15
+3 -5
View File
@@ -162,6 +162,9 @@ var/global/list/datum/cachedbook/cachedbooks // List of our cached book datums
name = "book inventory management console"
var/arcanecheckout = 0
screenstate = 0 // 0 - Main Menu, 1 - Inventory, 2 - Checked Out, 3 - Check Out a Book
verb_say = "beeps"
verb_ask = "beeps"
verb_exclaim = "beeps"
var/buffer_book
var/buffer_mob
var/upload_category = "Fiction"
@@ -430,11 +433,6 @@ var/global/list/datum/cachedbook/cachedbooks // List of our cached book datums
src.updateUsrDialog()
return
/obj/machinery/computer/libraryconsole/bookmanagement/say_quote(text)
return "flashes, \"[text]\""
/*
* Library Scanner
*/
+5 -9
View File
@@ -171,6 +171,8 @@
if(out.amount >= 1)
inp.amount -= out.amount
unload_mineral(out)
if(inp.amount < 1)
stack_list -= text2path(href_list["release"])
else
usr << "<span class='warning'>Required access not found.</span>"
if(href_list["plasteel"])
@@ -239,6 +241,7 @@
new /datum/data/mining_equipment("Alien Toy", /obj/item/clothing/mask/facehugger/toy, 300),
new /datum/data/mining_equipment("Advanced Scanner", /obj/item/device/t_scanner/adv_mining_scanner, 400),
new /datum/data/mining_equipment("Mining Drone", /mob/living/simple_animal/hostile/mining_drone, 500),
new /datum/data/mining_equipment("GAR mesons", /obj/item/clothing/glasses/meson/gar, 500),
new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 750),
new /datum/data/mining_equipment("Resonator", /obj/item/weapon/resonator, 800),
new /datum/data/mining_equipment("Lazarus Injector", /obj/item/weapon/lazarus_injector, 1000),
@@ -579,14 +582,7 @@
mouse_opacity = 1
faction = list("neutral")
a_intent = "harm"
min_oxy = 0
max_oxy = 0
min_tox = 0
max_tox = 0
min_co2 = 0
max_co2 = 0
min_n2 = 0
max_n2 = 0
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
wander = 0
idle_vision_range = 5
@@ -628,7 +624,7 @@
return
..()
/mob/living/simple_animal/hostile/mining_drone/Die()
/mob/living/simple_animal/hostile/mining_drone/death()
..()
visible_message("<span class='danger'>[src] is destroyed!</span>")
new /obj/effect/decal/cleanable/robot_debris(src.loc)
+15 -10
View File
@@ -38,17 +38,22 @@
points = 1
refined_type = /obj/item/stack/sheet/glass
/obj/item/weapon/ore/glass/attack_self(mob/living/user as mob) //It's magic I ain't gonna explain how instant conversion with no tool works. -- Urist
/obj/item/weapon/ore/glass/attack_self(mob/living/user as mob)
user << "<span class='notice'>You use the sand to make sandstone.</span>"
for(var/i = 0,i < 1,i++)
var/obj/item/stack/sheet/mineral/sandstone/S = new (user.loc)
for (var/obj/item/weapon/ore/glass/G in user.loc)
if(S.amount < S.max_amount)
S.amount++
qdel(G)
else
i--
break
var/sandAmt = 1
for(var/obj/item/weapon/ore/glass/G in user.loc) // The sand on the floor
sandAmt += 1
qdel(G)
while(sandAmt > 0)
var/obj/item/stack/sheet/mineral/sandstone/SS = new /obj/item/stack/sheet/mineral/sandstone(user.loc)
if(sandAmt >= SS.max_amount)
SS.amount = SS.max_amount
else
SS.amount = sandAmt
for(var/obj/item/stack/sheet/mineral/sandstone/SA in user.loc)
if(SA != SS && SA.amount < SA.max_amount)
SA.attackby(SS, user) //we try to transfer all old unfinished stacks to the new stack we created.
sandAmt -= SS.max_amount
qdel(src)
return
+1 -1
View File
@@ -16,7 +16,7 @@
. = src.say_dead(message)
/mob/dead/observer/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq)
/mob/dead/observer/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans)
if(radio_freq)
var/atom/movable/virtualspeaker/V = speaker
speaker = V.source
+8 -8
View File
@@ -131,7 +131,7 @@
zone_sel.selecting = "chest"
if(prob(10)) //my x is augmented
//arms
if(prob(rand(FUZZY_CHANCE_LOW,FUZZY_CHANCE_HIGH)))
if(prob((FUZZY_CHANCE_LOW+FUZZY_CHANCE_HIGH)/2))
var/obj/item/organ/limb/r_arm/R = locate(/obj/item/organ/limb/r_arm) in organs
del(R)
organs += new /obj/item/organ/limb/robot/r_arm
@@ -140,7 +140,7 @@
del(L)
organs += new /obj/item/organ/limb/robot/l_arm
//legs
if(prob(rand(FUZZY_CHANCE_LOW,FUZZY_CHANCE_HIGH)))
if(prob((FUZZY_CHANCE_LOW+FUZZY_CHANCE_HIGH)/2))
var/obj/item/organ/limb/r_leg/R = locate(/obj/item/organ/limb/r_leg) in organs
del(R)
organs += new /obj/item/organ/limb/robot/r_leg
@@ -149,7 +149,7 @@
del(L)
organs += new /obj/item/organ/limb/robot/l_leg
//chest and head
if(prob(rand(FUZZY_CHANCE_LOW,FUZZY_CHANCE_HIGH)))
if(prob((FUZZY_CHANCE_LOW+FUZZY_CHANCE_HIGH)/2))
var/obj/item/organ/limb/chest/R = locate(/obj/item/organ/limb/chest) in organs
del(R)
organs += new /obj/item/organ/limb/robot/chest
@@ -341,14 +341,14 @@
//---------TOOLS
if(istype(TARGET, /obj/item/weapon))
var/obj/item/weapon/W = TARGET
if(W.force >= best_force || prob(rand(FUZZY_CHANCE_LOW,FUZZY_CHANCE_HIGH)))
if(W.force >= best_force || prob((FUZZY_CHANCE_LOW+FUZZY_CHANCE_HIGH)/2))
if(!l_hand || !r_hand)
take_to_slot(W)
else
insert_into_backpack()
//---------FASHION
if(istype(TARGET,/obj/item/clothing))
if(prob(rand(FUZZY_CHANCE_LOW,FUZZY_CHANCE_HIGH)))
if(prob((FUZZY_CHANCE_LOW+FUZZY_CHANCE_HIGH)/2))
if(!l_hand || !r_hand)
var/obj/item/clothing/C = TARGET
take_to_slot(C)
@@ -395,15 +395,15 @@
if(nearby.len > 4)
//i'm crowded, time to leave
TARGET = pick(target_filter(orange(MAX_RANGE_FIND,src)))
else if(prob(rand(FUZZY_CHANCE_LOW,FUZZY_CHANCE_HIGH)))
else if(prob((FUZZY_CHANCE_LOW+FUZZY_CHANCE_HIGH)/2))
//chance to chase an item
TARGET = locate(/obj/item) in orange(MIN_RANGE_FIND,src)
else if(prob(rand(FUZZY_CHANCE_LOW,FUZZY_CHANCE_HIGH)))
else if(prob((FUZZY_CHANCE_LOW+FUZZY_CHANCE_HIGH)/2))
//chance to leave
TARGET = locate(/obj/machinery/door) in orange(MIN_RANGE_FIND,src) // this is a sort of fix for the current pathing.
else
//else, target whatever, or go to our department
if(prob(rand(FUZZY_CHANCE_LOW,FUZZY_CHANCE_HIGH)))
if(prob((FUZZY_CHANCE_LOW+FUZZY_CHANCE_HIGH)/2))
TARGET = pick(target_filter(orange(MIN_RANGE_FIND,src)))
else
TARGET = pick(get_area_turfs(job2area(myjob)))
@@ -5,14 +5,14 @@
/mob/living/carbon/alien
name = "alien"
voice_name = "alien"
say_message = "hisses"
icon = 'icons/mob/alien.dmi'
gender = NEUTER
dna = null
faction = list("alien")
ventcrawler = 2
languages = ALIEN
nightvision = 1
verb_say = "hisses"
var/nightvision = 1
var/storedPlasma = 250
var/max_plasma = 500
@@ -50,7 +50,7 @@
/mob/living/carbon/alien/proc/getPlasma()
return storedPlasma
/mob/living/carbon/alien/eyecheck()
/mob/living/carbon/alien/check_eye_prot()
return 2
/mob/living/carbon/alien/getToxLoss()
@@ -185,7 +185,7 @@ Des: Gives the client of the alien an image on each infected mob.
if (client)
for (var/mob/living/C in mob_list)
if(C.status_flags & XENO_HOST)
var/obj/item/alien_embryo/A = locate() in C
var/obj/item/body_egg/alien_embryo/A = locate() in C
var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[A.stage]")
client.images += I
return
@@ -76,3 +76,11 @@ In all, this is a lot like the monkey code. /N
adjustBruteLoss(damage)
updatehealth()
/mob/living/carbon/alien/attack_slime(mob/living/simple_animal/slime/M as mob)
if(..()) //successful slime attack
var/damage = rand(5, 35)
if(M.is_adult)
damage = rand(10, 40)
adjustBruteLoss(damage)
add_logs(M, src, "attacked", admin=0)
updatehealth()
@@ -7,7 +7,6 @@
var/leap_on_click = 0
var/pounce_cooldown = 0
var/pounce_cooldown_time = 30
update_icon = 1
//This is fine right now, if we're adding organ specific damage this needs to be updated
/mob/living/carbon/alien/humanoid/New()
@@ -28,16 +27,6 @@
if(l_store) l_store.emp_act(severity)
..()
/mob/living/carbon/alien/humanoid/attack_slime(mob/living/carbon/slime/M as mob)
..()
var/damage = rand(5, 35)
if(M.is_adult)
damage = rand(10, 40)
adjustBruteLoss(damage)
add_logs(M, src, "attacked", admin=0)
updatehealth()
return
/mob/living/carbon/alien/humanoid/attack_hulk(mob/living/carbon/human/user)
if(user.a_intent == "harm")
..(user, 1)
@@ -74,7 +74,7 @@
icon = 'icons/mob/alienqueen.dmi'
icon_state = "queen_s"
pixel_x = -16
mob_size = 2
mob_size = MOB_SIZE_LARGE
/mob/living/carbon/alien/humanoid/queen/large/update_icons()
update_hud() //TODO: remove the need for this to be here
@@ -3,7 +3,7 @@
real_name = "alien larva"
icon_state = "larva0"
pass_flags = PASSTABLE | PASSMOB
mob_size = 0
mob_size = MOB_SIZE_SMALL
maxHealth = 25
health = 25
@@ -38,17 +38,6 @@
/mob/living/carbon/alien/larva/attack_ui(slot_id)
return
/mob/living/carbon/alien/larva/attack_slime(mob/living/carbon/slime/M as mob)
..()
var/damage = rand(5, 35)
if(M.is_adult)
damage = rand(20, 40)
adjustBruteLoss(damage)
add_logs(M, src, "attacked", admin=0)
updatehealth()
return
/mob/living/carbon/alien/larva/attack_hulk(mob/living/carbon/human/user)
if(user.a_intent == "harm")
..(user, 1)
+4 -40
View File
@@ -31,25 +31,21 @@
handle_breath_temperature(breath)
/mob/living/carbon/alien/handle_regular_status_updates()
/mob/living/carbon/alien/handle_status_effects()
..()
//natural reduction of movement delay due to stun.
if(move_delay_add > 0)
move_delay_add = max(0, move_delay_add - rand(1, 2))
return 1
/mob/living/carbon/alien/update_sight()
/mob/living/carbon/alien/handle_vision()
client.screen.Remove(global_hud.blurry, global_hud.druggy, global_hud.vimpaired, global_hud.darkMask)
if (stat == 2)
if(stat == DEAD)
sight |= SEE_TURFS
sight |= SEE_MOBS
sight |= SEE_OBJS
see_in_dark = 8
see_invisible = SEE_INVISIBLE_LEVEL_TWO
else if (stat != 2)
else
sight |= SEE_MOBS
sight &= ~SEE_TURFS
sight &= ~SEE_OBJS
@@ -62,40 +58,8 @@
if(see_override)
see_invisible = see_override
if ((blind && stat != 2))
if((eye_blind))
blind.layer = 18
else
blind.layer = 0
if (disabilities & NEARSIGHT)
client.screen += global_hud.vimpaired
if (eye_blurry)
client.screen += global_hud.blurry
if (druggy)
client.screen += global_hud.druggy
if (stat != 2)
if(machine)
if (!( machine.check_eye(src) ))
reset_view(null)
else
if(!client.adminobs)
reset_view(null)
/mob/living/carbon/alien/handle_hud_icons()
handle_hud_icons_health()
if(pullin)
if(pulling)
pullin.icon_state = "pull"
else
pullin.icon_state = "pull0"
return 1
@@ -2,50 +2,11 @@
// It functions almost identically (see code/datums/diseases/alien_embryo.dm)
var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds
/obj/item/alien_embryo
/obj/item/body_egg/alien_embryo
name = "alien embryo"
desc = "All slimy and yuck."
icon = 'icons/mob/alien.dmi'
icon_state = "larva0_dead"
var/mob/living/affected_mob
var/stage = 0
/obj/item/alien_embryo/New()
if(istype(loc, /mob/living))
affected_mob = loc
affected_mob.status_flags |= XENO_HOST
SSobj.processing |= src
if(istype(affected_mob,/mob/living/carbon))
var/mob/living/carbon/H = affected_mob
H.med_hud_set_status()
spawn(0)
AddInfectionImages(affected_mob)
else
qdel(src)
/obj/item/alien_embryo/Destroy()
if(affected_mob)
affected_mob.status_flags &= ~(XENO_HOST)
if(istype(affected_mob,/mob/living/carbon))
var/mob/living/carbon/H = affected_mob
H.med_hud_set_status()
spawn(0)
RemoveInfectionImages(affected_mob)
..()
/obj/item/alien_embryo/process()
if(!affected_mob) return
if(loc != affected_mob)
affected_mob.status_flags &= ~(XENO_HOST)
SSobj.processing.Remove(src)
if(istype(affected_mob,/mob/living/carbon))
var/mob/living/carbon/H = affected_mob
H.med_hud_set_status()
spawn(0)
RemoveInfectionImages(affected_mob)
affected_mob = null
return
/obj/item/body_egg/alien_embryo/egg_process()
if(stage < 5 && prob(3))
stage++
spawn(0)
@@ -87,7 +48,9 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds
if(prob(50))
AttemptGrow()
/obj/item/alien_embryo/proc/AttemptGrow(var/gib_on_success = 1)
/obj/item/body_egg/alien_embryo/proc/AttemptGrow(var/gib_on_success = 1)
var/list/candidates = get_candidates(BE_ALIEN, ALIEN_AFK_BRACKET)
var/client/C = null
@@ -123,7 +86,7 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds
Proc: RefreshInfectionImage()
Des: Removes the current icons located in the infected mob adds the current stage
----------------------------------------*/
/obj/item/alien_embryo/proc/RefreshInfectionImage()
/obj/item/body_egg/alien_embryo/RefreshInfectionImage()
RemoveInfectionImages()
AddInfectionImages()
@@ -131,7 +94,7 @@ Des: Removes the current icons located in the infected mob adds the current stag
Proc: AddInfectionImages(C)
Des: Adds the infection image to all aliens for this embryo
----------------------------------------*/
/obj/item/alien_embryo/proc/AddInfectionImages()
/obj/item/body_egg/alien_embryo/AddInfectionImages()
for(var/mob/living/carbon/alien/alien in player_list)
if(alien.client)
var/I = image('icons/mob/alien.dmi', loc = affected_mob, icon_state = "infected[stage]")
@@ -141,7 +104,7 @@ Des: Adds the infection image to all aliens for this embryo
Proc: RemoveInfectionImage(C)
Des: Removes all images from the mob infected by this embryo
----------------------------------------*/
/obj/item/alien_embryo/proc/RemoveInfectionImages()
/obj/item/body_egg/alien_embryo/RemoveInfectionImages()
for(var/mob/living/carbon/alien/alien in player_list)
if(alien.client)
for(var/image/I in alien.client.images)
@@ -48,11 +48,11 @@ var/const/MAX_ACTIVE_TIME = 400
return
switch(stat)
if(DEAD,UNCONSCIOUS)
user << "<span class='userdanger'>[src] is not moving.</span>"
user << "<span class='boldannounce'>[src] is not moving.</span>"
if(CONSCIOUS)
user << "<span class='userdanger'>[src] seems to be active!</span>"
user << "<span class='boldannounce'>[src] seems to be active!</span>"
if (sterile)
user << "<span class='userdanger'>It looks like the proboscis has been removed.</span>"
user << "<span class='boldannounce'>It looks like the proboscis has been removed.</span>"
/obj/item/clothing/mask/facehugger/attackby(var/obj/item/O,var/mob/m, params)
if(O.force)
@@ -115,7 +115,7 @@ var/const/MAX_ACTIVE_TIME = 400
if(loc == L) return 0
if(stat != CONSCIOUS) return 0
if(locate(/obj/item/alien_embryo) in L) return 0
if(locate(/obj/item/body_egg/alien_embryo) in L) return 0
if(!sterile) L.take_organ_damage(strength,0) //done here so that even borgs and humans in helmets take damage
L.visible_message("<span class='danger'>[src] leaps at [L]'s face!</span>", \
@@ -145,7 +145,7 @@ var/const/MAX_ACTIVE_TIME = 400
if(!sterile) L.Paralyse(MAX_IMPREGNATION_TIME/6) //something like 25 ticks = 20 seconds with the default settings
else if (iscorgi(M))
var/mob/living/simple_animal/corgi/C = M
var/mob/living/simple_animal/pet/corgi/C = M
loc = C
C.facehugger = src
@@ -174,11 +174,11 @@ var/const/MAX_ACTIVE_TIME = 400
icon_state = "[initial(icon_state)]_impregnated"
if(!target.getlimb(/obj/item/organ/limb/robot/chest) && !(target.status_flags & XENO_HOST))
new /obj/item/alien_embryo(target)
new /obj/item/body_egg/alien_embryo(target)
if(iscorgi(target))
var/mob/living/simple_animal/corgi/C = target
var/mob/living/simple_animal/pet/corgi/C = target
src.loc = get_turf(C)
C.facehugger = null
else
@@ -223,7 +223,7 @@ var/const/MAX_ACTIVE_TIME = 400
icon_state = "[initial(icon_state)]_dead"
stat = DEAD
src.visible_message("<span class='userdanger'>[src] curls up into a ball!</span>")
visible_message("<span class='danger'>[src] curls up into a ball!</span>")
return
@@ -1,8 +1,8 @@
/mob/living/carbon/brain/death(gibbed)
if(stat == DEAD) return
if(!gibbed && container && istype(container, /obj/item/device/mmi))//If not gibbed but in a container.
for(var/mob/O in viewers(container, null))
O.show_message(text("<span class='userdanger'>[]'s MMI flatlines!</span>", src), 1, "<span class='danger'>You hear something flatline.</span>", 2)
container.visible_message("<span class='danger'>[src]'s MMI flatlines!</span>", \
"<span class='danger'>You hear something flatline.</span>")
if(istype(src,/obj/item/organ/brain/alien))
container.icon_state = "mmi_alien_dead"
else
+7 -5
View File
@@ -64,10 +64,7 @@
death()
eye_blind = max(eye_blind, 1)
silent = 0
return 1
if(health < config.health_threshold_crit)
stat = UNCONSCIOUS
eye_blind = max(eye_blind, 1)
return
else
stat = CONSCIOUS
@@ -124,8 +121,13 @@
else
eye_blind = 0
return 1
return 1
/mob/living/carbon/brain/handle_disabilities()
return
/mob/living/carbon/brain/handle_status_effects()
return
/mob/living/carbon/brain/handle_regular_hud_updates()
+2 -2
View File
@@ -9,11 +9,11 @@
message = Gibberish(message, (emp_damage*6))//scrambles the message, gets worse when emp_damage is higher
..()
/mob/living/carbon/brain/radio(message, message_mode)
/mob/living/carbon/brain/radio(message, message_mode, list/spans)
if(message_mode && istype(container, /obj/item/device/mmi/radio_enabled))
var/obj/item/device/mmi/radio_enabled/R = container
if(R.radio)
R.radio.talk_into(src, message)
R.radio.talk_into(src, message, , spans)
return ITALICS | REDUCE_RANGE
/mob/living/carbon/brain/lingcheck()
+49 -51
View File
@@ -86,6 +86,8 @@
"<span class='userdanger'>You feel a powerful shock coursing through your body!</span>", \
"<span class='danger'>You hear a heavy electrical crack.</span>" \
)
if(prob(25) && heart_attack)
heart_attack = 0
jitteriness += 1000 //High numbers for violent convulsions
do_jitter_animation(jitteriness)
stuttering += 2
@@ -133,8 +135,6 @@
else
mode() // Activate held item
/mob/living/carbon/proc/help_shake_act(mob/living/carbon/M)
if(health >= 0)
@@ -154,8 +154,48 @@
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
/mob/living/carbon/flash_eyes(intensity = 1, override_blindness_check = 0)
var/damage = intensity - check_eye_prot()
if(..()) // we've been flashed
if(weakeyes)
Stun(2)
switch(damage)
if(1)
src << "<span class='warning'>Your eyes sting a little.</span>"
if(prob(40))
eye_stat += 1
if(2)
src << "<span class='warning'>Your eyes burn.</span>"
eye_stat += rand(2, 4)
else
src << "Your eyes itch and burn severely!</span>"
eye_stat += rand(12, 16)
if(eye_stat > 10)
eye_blind += damage
eye_blurry += damage * rand(3, 6)
if(eye_stat > 20)
if (prob(eye_stat - 20))
src << "<span class='warning'>Your eyes start to burn badly!</span>"
disabilities |= NEARSIGHT
else if(prob(eye_stat - 25))
src << "<span class='warning'>You can't see anything!</span>"
disabilities |= BLIND
else
src << "<span class='warning'>Your eyes are really starting to hurt. This can't be good for you!</span>"
return 1
else if(damage == 0) // just enough protection
if(prob(20))
src << "<span class='notice'>Something bright flashes in the corner of your vision!</span>"
/mob/living/carbon/proc/eyecheck()
var/obj/item/cybernetic_implant/eyes/EFP = locate() in src
if(EFP)
return EFP.flash_protect
return 0
/mob/living/carbon/proc/tintcheck()
@@ -254,55 +294,6 @@
/mob/living/carbon/proc/canBeHandcuffed()
return 0
/mob/living/carbon/unEquip(obj/item/I) //THIS PROC DID NOT CALL ..() AND THAT COST ME AN ENTIRE DAY OF DEBUGGING.
. = ..() //Sets the default return value to what the parent returns.
if(!. || !I) //We don't want to set anything to null if the parent returned 0.
return
if(I == back)
back = null
update_inv_back(0)
else if(I == wear_mask)
if(istype(src, /mob/living/carbon/human)) //If we don't do this hair won't be properly rebuilt.
return
wear_mask = null
update_inv_wear_mask(0)
else if(I == handcuffed)
handcuffed = null
if(buckled && buckled.buckle_requires_restraints)
buckled.unbuckle_mob()
update_inv_handcuffed(0)
else if(I == legcuffed)
legcuffed = null
update_inv_legcuffed(0)
/mob/living/carbon/proc/get_temperature(var/datum/gas_mixture/environment)
var/loc_temp = T0C
if(istype(loc, /obj/mecha))
var/obj/mecha/M = loc
loc_temp = M.return_temperature()
else if(istype(loc, /obj/structure/transit_tube_pod))
loc_temp = environment.temperature
else if(istype(get_turf(src), /turf/space))
var/turf/heat_turf = get_turf(src)
loc_temp = heat_turf.temperature
else if(istype(loc, /obj/machinery/atmospherics/unary/cryo_cell))
var/obj/machinery/atmospherics/unary/cryo_cell/C = loc
if(C.air_contents.total_moles() < 10)
loc_temp = environment.temperature
else
loc_temp = C.air_contents.temperature
else
loc_temp = environment.temperature
return loc_temp
/mob/living/carbon/show_inv(mob/user)
user.set_machine(src)
@@ -310,6 +301,7 @@
<HR>
<B><FONT size=3>[name]</FONT></B>
<HR>
<BR><B>Head:</B> <A href='?src=\ref[src];item=[slot_head]'> [(head && !(head.flags&ABSTRACT)) ? head : "Nothing"]</A>
<BR><B>Mask:</B> <A href='?src=\ref[src];item=[slot_wear_mask]'> [(wear_mask && !(wear_mask.flags&ABSTRACT)) ? wear_mask : "Nothing"]</A>
<BR><B>Left Hand:</B> <A href='?src=\ref[src];item=[slot_l_hand]'> [(l_hand && !(l_hand.flags&ABSTRACT)) ? l_hand : "Nothing"]</A>
<BR><B>Right Hand:</B> <A href='?src=\ref[src];item=[slot_r_hand]'> [(r_hand && !(r_hand.flags&ABSTRACT)) ? r_hand : "Nothing"]</A>"}
@@ -378,6 +370,12 @@ var/const/GALOSHES_DONT_HELP = 8
/mob/living/carbon/is_muzzled()
return(istype(src.wear_mask, /obj/item/clothing/mask/muzzle))
/mob/living/carbon/revive()
heart_attack = 0
..()
return
/mob/living/carbon/blob_act()
if (stat == DEAD)
return
@@ -13,9 +13,9 @@
/mob/living/carbon/attackby(obj/item/I, mob/user, params)
if(lying || isslime(src))
if(lying)
if(surgeries.len)
if(user.a_intent == "help")
if(user != src && user.a_intent == "help")
for(var/datum/surgery/S in surgeries)
if(S.next_step(user, src))
return 1
@@ -34,7 +34,7 @@
if(D.IsSpreadByTouch())
ContractDisease(D)
if(lying || isslime(src))
if(lying)
if(user.a_intent == "help")
if(surgeries.len)
for(var/datum/surgery/S in surgeries)
@@ -65,15 +65,27 @@
return 0
/mob/living/carbon/attack_slime(mob/living/carbon/slime/M)
if(..())
var/power = M.powerlevel + rand(0,3)
Weaken(power)
if (stuttering < power)
stuttering = power
Stun(power)
var/stunprob = M.powerlevel * 7 + 10
if (prob(stunprob) && M.powerlevel >= 8)
adjustFireLoss(M.powerlevel * rand(6,10))
updatehealth()
/mob/living/carbon/attack_slime(mob/living/simple_animal/slime/M)
if(..()) //successful slime attack
if(M.powerlevel > 0)
var/stunprob = M.powerlevel * 7 + 10 // 17 at level 1, 80 at level 10
if(prob(stunprob))
M.powerlevel -= 3
if(M.powerlevel < 0)
M.powerlevel = 0
visible_message("<span class='danger'>The [M.name] has shocked [src]!</span>", \
"<span class='userdanger'>The [M.name] has shocked [src]!</span>")
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
var/power = M.powerlevel + rand(0,3)
Weaken(power)
if(stuttering < power)
stuttering = power
Stun(power)
if (prob(stunprob) && M.powerlevel >= 8)
adjustFireLoss(M.powerlevel * rand(6,10))
updatehealth()
return 1

Some files were not shown because too many files have changed in this diff Show More