mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-28 23:58:07 +01:00
Merge remote-tracking branch 'upstream/master' into fasterspace
Conflicts: code/modules/mob/living/carbon/human/species.dm
This commit is contained in:
@@ -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)" : ""]")
|
||||
|
||||
@@ -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>"
|
||||
|
||||
@@ -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()
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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]")
|
||||
@@ -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)
|
||||
|
||||
@@ -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..."
|
||||
|
||||
|
||||
@@ -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!
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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()
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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)])"
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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.
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]"
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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 ..()
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user