diff --git a/baystation12.dme b/baystation12.dme index 997c6d0eaf9..d007fb1cced 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -489,6 +489,7 @@ #include "code\game\machinery\flasher.dm" #include "code\game\machinery\floodlight.dm" #include "code\game\machinery\Freezer.dm" +#include "code\game\machinery\gateway.dm" #include "code\game\machinery\hologram.dm" #include "code\game\machinery\hydroponics.dm" #include "code\game\machinery\igniter.dm" @@ -1035,6 +1036,7 @@ #include "code\modules\mob\organ\organ_external.dm" #include "code\modules\mob\organ\organ_internal.dm" #include "code\modules\mob\organ\pain.dm" +#include "code\modules\mob\simple_animal\behemoth.dm" #include "code\modules\mob\simple_animal\cat.dm" #include "code\modules\mob\simple_animal\constructs.dm" #include "code\modules\mob\simple_animal\corgi.dm" diff --git a/code/defines/obj/supplypacks.dm b/code/defines/obj/supplypacks.dm index 422e47a9db5..1dc066d1a42 100755 --- a/code/defines/obj/supplypacks.dm +++ b/code/defines/obj/supplypacks.dm @@ -795,34 +795,18 @@ ..() -/datum/supply_packs/poster - contains = list("/obj/item/weapon/contraband/poster",) //We randomly pick 5 items from this list through the constructor, look below - name = "Poster crate" +/datum/supply_packs/contraband + contains = list("/obj/item/weapon/contraband/poster","/obj/item/weapon/cigpacket/dromedaryco") //We randomly pick 5 items from this list through the constructor, look below + name = "Contraband crate" cost = 30 - containertype = "/obj/structure/closet/crate/poster" - containername = "Poster crate" + containertype = "/obj/structure/closet/crate/contraband" + containername = "Contraband crate" contraband = 1 - group = "Secure Storage" + group = "NanoTrasen Contraband Storage" /datum/supply_packs/poster/New() var/list/tempContains = list() for(var/i = 0,i<5,i++) tempContains += pick(contains) src.contains = tempContains - ..() - -/datum/supply_packs/cigarettes - contains = list("/obj/item/weapon/cigpacket/dromedaryco", - "/obj/item/weapon/cigpacket/dromedaryco", - "/obj/item/weapon/cigpacket/dromedaryco", - "/obj/item/weapon/cigpacket/dromedaryco", - "/obj/item/weapon/cigpacket/dromedaryco", - "/obj/item/weapon/cigpacket/dromedaryco",) - name = "DromedaryCo cigarettes crate" - cost = 15 - containertype = "/obj/structure/closet/crate/cigarettes" - containername = "DromedaryCo cigarettes crate" - contraband = 1 - group = "Secure Storage" - -//SUPPLY PACKS \ No newline at end of file + ..() \ No newline at end of file diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm index 47ac7dbdca6..d82b1377ab8 100644 --- a/code/game/gamemodes/wizard/rightandwrong.dm +++ b/code/game/gamemodes/wizard/rightandwrong.dm @@ -19,20 +19,20 @@ for(var/datum/objective/OBJ in H.mind.objectives) H << "Objective #[obj_count]: [OBJ.explanation_text]" obj_count++ - var/randomize = pick("taser","egun","laser","revolver","smg","decloner","deagle","gyrojet","pulse","silenced","cannon","shotgun","freeze","uzi","crossbow") + var/randomize = pick("taser","egun","laser","revolver","smg","nuclear","deagle","gyrojet","pulse","silenced","cannon","shotgun","mateba","uzi","crossbow") switch (randomize) if("taser") new /obj/item/weapon/gun/energy/taser(get_turf(H)) if("egun") - new /obj/item/weapon/gun/energy(get_turf(H)) + new /obj/item/weapon/gun/energy/gun(get_turf(H)) if("laser") new /obj/item/weapon/gun/energy/laser(get_turf(H)) if("revolver") new /obj/item/weapon/gun/projectile(get_turf(H)) if("smg") new /obj/item/weapon/gun/projectile/automatic/c20r(get_turf(H)) - if("decloner") - new /obj/item/weapon/gun/energy/decloner(get_turf(H)) + if("nuclear") + new /obj/item/weapon/gun/energy/gun/nuclear(get_turf(H)) if("deagle") new /obj/item/weapon/gun/projectile/deagle/camo(get_turf(H)) if("gyrojet") @@ -45,8 +45,8 @@ new /obj/item/weapon/gun/energy/lasercannon(get_turf(H)) if("shotgun") new /obj/item/weapon/gun/projectile/shotgun/pump/combat(get_turf(H)) - if("freeze") - new /obj/item/weapon/gun/energy/temperature(get_turf(H)) + if("mateba") + new /obj/item/weapon/gun/projectile/mateba(get_turf(H)) if("uzi") new /obj/item/weapon/gun/projectile/automatic/mini_uzi(get_turf(H)) if("crossbow") diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 934acd653db..8575ec73d57 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -238,13 +238,12 @@ access_heads, access_ai_upload, access_construction, access_robotics, access_mint, access_ce, access_RC_announce, access_keycard_auth, access_tcomsat) if("Research Director") - return list(access_medlab, access_rd, - access_heads, access_tox, - access_tox_storage, access_chemistry, access_teleporter, - access_research, access_robotics, access_xenobiology, access_RC_announce, - access_keycard_auth, access_tcomsat) - /*if("Virologist") - return list(access_medical, access_morgue, access_virology)*/ + return list(access_rd, access_heads, access_tox, + access_tox_storage, access_teleporter, access_medlab, + access_research, access_robotics, access_xenobiology, + access_RC_announce, access_keycard_auth, access_tcomsat) +// if("Virologist") +// return list(access_medical, access_morgue, access_virology) if("Chief Medical Officer") return list(access_medical, access_morgue, access_medlab, access_heads, access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, @@ -299,17 +298,17 @@ if(1) //security return list(access_security, access_brig, access_armory, access_forensics_lockers, access_court, access_hos) if(2) //medbay - return list(access_medical, access_medlab, access_morgue, access_chemistry, access_virology, access_cmo, access_surgery) + return list(access_medical, access_medlab, access_morgue, access_chemistry, access_virology, access_surgery, access_cmo) if(3) //research - return list(access_tox, access_tox_storage, access_rd, access_hydroponics, access_research, access_xenobiology) + return list(access_research, access_tox, access_tox_storage, access_xenobiology, access_rd) if(4) //engineering and maintenance - return list(access_engine, access_engine_equip, access_maint_tunnels, access_external_airlocks, access_emergency_storage, access_tech_storage, access_atmospherics, access_construction, access_robotics, access_ce) + return list(access_engine, access_engine_equip, access_maint_tunnels, access_external_airlocks, access_tech_storage, access_atmospherics, access_construction, access_robotics, access_ce) if(5) //command - return list(access_change_ids, access_ai_upload, access_teleporter, access_eva, access_heads, access_captain, access_all_personal_lockers, access_mint_vault, access_heads_vault, access_hop, access_RC_announce, access_keycard_auth, access_tcomsat) + return list(access_heads, access_change_ids, access_ai_upload, access_teleporter, access_eva, access_all_personal_lockers, access_heads_vault, access_RC_announce, access_keycard_auth, access_tcomsat, access_hop, access_captain) if(6) //station general - return list(access_chapel_office, access_kitchen,access_bar, access_janitor, access_crematorium, access_library, access_theatre, access_lawyer, access_clown, access_mime) + return list(access_kitchen,access_bar, access_hydroponics, access_janitor, access_chapel_office, access_crematorium, access_library, access_theatre, access_lawyer, access_clown, access_mime) if(7) //supply - return list(access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mailsorting, access_mint) + return list(access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_mining, access_mining_station) /proc/get_region_accesses_name(var/code) switch(code) @@ -340,29 +339,29 @@ if(access_security) return "Security" if(access_brig) - return "Brig" + return "Brig Cells" if(access_court) return "Courtroom" if(access_forensics_lockers) - return "Forensics" + return "Detective's Office" if(access_medical) return "Medical" if(access_medlab) - return "Med-Sci" + return "Genetics Lab" if(access_morgue) return "Morgue" if(access_tox) - return "Toxins Research" + return "Research Lab" if(access_tox_storage) return "Toxins Storage" if(access_chemistry) - return "Toxins Chemical Lab" + return "Chemistry Lab" if(access_rd) return "RD Private" if(access_bar) return "Bar" if(access_janitor) - return "Janitorial Equipment" + return "Custodial Closet" if(access_engine) return "Engineering" if(access_engine_equip) @@ -370,7 +369,7 @@ if(access_maint_tunnels) return "Maintenance" if(access_external_airlocks) - return "External Airlock" + return "External Airlocks" if(access_emergency_storage) return "Emergency Storage" if(access_change_ids) @@ -382,11 +381,11 @@ if(access_eva) return "EVA" if(access_heads) - return "Head's Quarters/Bridge" + return "Bridge" if(access_captain) return "Captain's Quarters" if(access_all_personal_lockers) - return "Personal Locker" + return "Personal Lockers" if(access_chapel_office) return "Chapel Office" if(access_tech_storage) @@ -398,7 +397,7 @@ if(access_armory) return "Armory" if(access_construction) - return "Construction Site" + return "Construction Areas" if(access_kitchen) return "Kitchen" if(access_hydroponics) @@ -440,9 +439,9 @@ if(access_heads_vault) return "Main Vault" if(access_mining_station) - return "Mining Station" + return "Mining Station EVA" if(access_xenobiology) - return "Xenobiology" + return "Xenobiology Lab" if(access_hop) return "HoP Private" if(access_hos) @@ -450,11 +449,11 @@ if(access_ce) return "CE Private" if(access_RC_announce) - return "RC announcements" + return "RC Announcements" if(access_keycard_auth) - return "Keycode auth. device" + return "Keycode Auth. Device" if(access_tcomsat) - return "Telecommunications Satellite" + return "Telecoms Satellite" /proc/get_centcom_access_desc(A) switch(A) @@ -478,10 +477,10 @@ return "Code Gold" /proc/get_all_jobs() - return list("Assistant", "Station Engineer", "Shaft Miner", "Detective", "Medical Doctor", "Captain", "Security Officer", "Warden", - "Geneticist", "Scientist", "Head of Security", "Head of Personnel", "Atmospheric Technician", - "Chaplain", "Bartender", "Chemist", "Janitor", "Chef", "Roboticist", "Quartermaster", - "Chief Engineer", "Research Director", "Botanist", "Librarian", "Lawyer", "Virologist", "Cargo Technician", "Chief Medical Officer") + return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Chef", "Botanist", "Quartermaster", "Cargo Technician", + "Shaft Miner", "Janitor", "Librarian", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer", + "Atmospheric Technician", "Roboticist", "Chief Medical Officer", "Medical Doctor", "Geneticist", + "Research Director", "Scientist", "Chemist", "Head of Security", "Warden", "Detective", "Security Officer") /proc/get_all_centcom_jobs() return list("VIP Guest","Custodian","Thunderdome Overseer","Intel Officer","Medical Officer","Death Commando","Research Officer","BlackOps Commander","Supreme Commander") diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index f96126e3e24..ed1667b6460 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -60,6 +60,32 @@ +//Chemist is a medical job damnit //YEAH FUCK YOU SCIENCE -Pete +/datum/job/chemist + title = "Chemist" + flag = CHEMIST + department_flag = MEDSCI + faction = "Station" + total_positions = 1 + spawn_positions = 1 + supervisors = "the chief medical officer" + selection_color = "#ffeef0" + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + if(H.backbag == 2) H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) + if(H.backbag == 3) H.equip_if_possible(new /obj/item/weapon/storage/backpack/satchel(H), H.slot_back) + if(H.backbag == 4) H.equip_if_possible(new /obj/item/weapon/storage/backpack/satchel_chem(H), H.slot_back) + H.equip_if_possible(new /obj/item/device/radio/headset/headset_medsci(H), H.slot_ears) + H.equip_if_possible(new /obj/item/clothing/under/rank/chemist(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/white(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/toxins(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/suit/storage/labcoat/chemist(H), H.slot_wear_suit) + return 1 + + + /datum/job/geneticist title = "Geneticist" flag = GENETICIST @@ -67,7 +93,7 @@ faction = "Station" total_positions = 1 spawn_positions = 1 - supervisors = "the chief medical officer and research director" + supervisors = "the chief medical officer" selection_color = "#ffeef0" diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index 243d9fee647..131a1526116 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -46,29 +46,4 @@ H.equip_if_possible(new /obj/item/clothing/suit/storage/labcoat/science(H), H.slot_wear_suit) H.equip_if_possible(new /obj/item/clothing/mask/gas(H), H.slot_wear_mask) H.equip_if_possible(new /obj/item/weapon/tank/oxygen(H), H.slot_l_hand) - return 1 - - -//Chemist is a medical job damnit -/datum/job/chemist - title = "Chemist" - flag = CHEMIST - department_flag = MEDSCI - faction = "Station" - total_positions = 1 - spawn_positions = 1 - supervisors = "the chief medical officer and the research director" - selection_color = "#ffeeff" - - - equip(var/mob/living/carbon/human/H) - if(!H) return 0 - if(H.backbag == 2) H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) - if(H.backbag == 3) H.equip_if_possible(new /obj/item/weapon/storage/backpack/satchel(H), H.slot_back) - if(H.backbag == 4) H.equip_if_possible(new /obj/item/weapon/storage/backpack/satchel_chem(H), H.slot_back) - H.equip_if_possible(new /obj/item/device/radio/headset/headset_medsci(H), H.slot_ears) - H.equip_if_possible(new /obj/item/clothing/under/rank/chemist(H), H.slot_w_uniform) - H.equip_if_possible(new /obj/item/clothing/shoes/white(H), H.slot_shoes) - H.equip_if_possible(new /obj/item/device/pda/toxins(H), H.slot_belt) - H.equip_if_possible(new /obj/item/clothing/suit/storage/labcoat/chemist(H), H.slot_wear_suit) - return 1 + return 1 \ No newline at end of file diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 3538777e955..a7df223b95a 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -419,6 +419,7 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }. if(15) new/obj/structure/door_assembly/door_assembly_eng/glass( src.loc ) //issue 301 -mysthic if(16) new/obj/structure/door_assembly/door_assembly_sec/glass( src.loc ) if(17) new/obj/structure/door_assembly/door_assembly_med/glass( src.loc ) + if(21) new/obj/structure/door_assembly/door_assembly_research( src.loc ) var/obj/item/weapon/airlock_electronics/ae if (!electronics) ae = new/obj/item/weapon/airlock_electronics( src.loc ) diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index 50bd35d0c9d..6e169231e65 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -86,7 +86,7 @@ if (href_list["style"]) style_name = input("Select the door's paint scheme.", "Door Style", style_name) in \ - list("General", "Command", "Security", "Engineering", "Medical", "Maintenance", "Airlock", "Freezer") + list("General", "Command", "Security", "Engineering", "Medical", "Maintenance", "Airlock", "Freezer", "Research") switch(style_name) if("General") @@ -105,6 +105,8 @@ style = /obj/structure/door_assembly/door_assembly_ext if("Freezer") style = /obj/structure/door_assembly/door_assembly_fre + if("Research") + style = /obj/structure/door_assembly/door_assembly_research attack_self(usr) diff --git a/code/game/machinery/gateway.dm b/code/game/machinery/gateway.dm new file mode 100644 index 00000000000..8248ee8ef04 --- /dev/null +++ b/code/game/machinery/gateway.dm @@ -0,0 +1,49 @@ +/obj/structure/gatewayplaceholder + density = 1 + anchored = 1 + icon = 'gateway.dmi' + +/obj/structure/gatewayplaceholder/one + name = "Gateway" + desc = "A gateway" + icon_state = "off1" + +/obj/structure/gatewayplaceholder/two + name = "Gateway" + desc = "A gateway" + icon_state = "off2" + +/obj/structure/gatewayplaceholder/three + name = "Gateway" + desc = "A gateway" + icon_state = "off3" + +/obj/structure/gatewayplaceholder/four + name = "Gateway" + desc = "A gateway" + icon_state = "off4" + +/obj/structure/gatewayplaceholder/five + name = "Gateway" + desc = "A gateway" + icon_state = "off5" + +/obj/structure/gatewayplaceholder/six + name = "Gateway" + desc = "A gateway" + icon_state = "off6" + +/obj/structure/gatewayplaceholder/seven + name = "Gateway" + desc = "A gateway" + icon_state = "off7" + +/obj/structure/gatewayplaceholder/eight + name = "Gateway" + desc = "A gateway" + icon_state = "off8" + +/obj/structure/gatewayplaceholder/nine + name = "Gateway" + desc = "A gateway" + icon_state = "off9" \ No newline at end of file diff --git a/code/game/objects/items/clothing.dm b/code/game/objects/items/clothing.dm index 47176cbca76..76bdf49d2c0 100644 --- a/code/game/objects/items/clothing.dm +++ b/code/game/objects/items/clothing.dm @@ -410,7 +410,6 @@ THERMAL GLASSES src.item_state = "ushankadown" user << "You lower the ear flaps on the ushanka." - /obj/item/clothing/glasses/thermal/emp_act(severity) if(istype(src.loc, /mob/living/carbon/human)) var/mob/living/carbon/human/M = src.loc @@ -429,18 +428,19 @@ THERMAL GLASSES /obj/item/clothing/head/helmet/space/rig/engspace_helmet/verb/toggle() set category = "Object" set name = "Toggle Helmet Visor" - if(src.up) - src.up = !src.up - src.see_face = !src.see_face - src.flags |= HEADCOVERSEYES - icon_state = "engspace_helmet" - usr << "You toggle the reflective tint on." - else - src.up = !src.up - src.see_face = !src.see_face - src.flags &= ~HEADCOVERSEYES - icon_state = "engspace_helmet_clear" - usr << "You toggle the reflective tint off." + if(usr.canmove && usr.stat != 2 && !usr.restrained()) + if(src.up) + src.up = !src.up + src.see_face = !src.see_face + src.flags |= HEADCOVERSEYES + icon_state = "engspace_helmet" + usr << "You toggle the reflective tint on." + else + src.up = !src.up + src.see_face = !src.see_face + src.flags &= ~HEADCOVERSEYES + icon_state = "engspace_helmet_clear" + usr << "You toggle the reflective tint off." usr.update_clothing() /obj/item/clothing/head/helmet/space/rig/cespace_helmet/attack_self() @@ -449,17 +449,38 @@ THERMAL GLASSES /obj/item/clothing/head/helmet/space/rig/cespace_helmet/verb/toggle() set category = "Object" set name = "Toggle Helmet Visor" - if(src.up) - src.up = !src.up - src.see_face = !src.see_face - src.flags |= HEADCOVERSEYES - icon_state = "cespace_helmet" - usr << "You toggle the reflective tint on." - else - src.up = !src.up - src.see_face = !src.see_face - src.flags &= ~HEADCOVERSEYES - icon_state = "cespace_helmet_clear" - usr << "You toggle the reflective tint off." + if(usr.canmove && usr.stat != 2 && !usr.restrained()) + if(src.up) + src.up = !src.up + src.see_face = !src.see_face + src.flags |= HEADCOVERSEYES + icon_state = "cespace_helmet" + usr << "You toggle the reflective tint on." + else + src.up = !src.up + src.see_face = !src.see_face + src.flags &= ~HEADCOVERSEYES + icon_state = "cespace_helmet_clear" + usr << "You toggle the reflective tint off." usr.update_clothing() +/obj/item/clothing/mask/breath/verb/toggle() + set name = "Adjust Mask" + set category = "Object" + if(usr.canmove && usr.stat != 2 && !usr.restrained()) + if(src.icon_state == "medical") + usr << "You can't seem to adjust this mask." + return + if(src.icon_state == "breath_low") + src.icon_state = "breath" + src.item_state = "breath" + src.flags |= SUITSPACE|HEADSPACE|MASKCOVERSMOUTH + protective_temperature = 420 + usr << "You are now breathing through your mask." + else if(src.icon_state == "breath") + src.icon_state = "breath_low" + src.item_state = "breath_low" + src.flags &= ~(SUITSPACE|HEADSPACE|MASKCOVERSMOUTH) + protective_temperature = 270 + usr << "Your mask is now hanging on your neck." + usr.update_clothing() \ No newline at end of file diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index 99ab5ee3738..b8883074a3e 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -192,6 +192,14 @@ item_state = "graycoat" color = "graycoat" +/obj/item/clothing/suit/storage/det_suit/fluff/leatherjack //atomicdog92: Seth Sealis + name = "leather jacket" + desc = "A black leather coat, popular amongst punks, greasers, and other galactic scum." + icon = 'custom_items.dmi' + icon_state = "leatherjack" + item_state = "leatherjack" + color = "leatherjack" + //////////// Uniforms //////////// /obj/item/clothing/under/fluff/jumpsuitdown //searif: Yuki Matsuda @@ -221,15 +229,15 @@ flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH w_class = 2 gas_transfer_coefficient = 0.90 -/* -/obj/item/clothing/mask/mara_kilpatrick_1 + +/obj/item/clothing/mask/mara_kilpatrick_1 //staghorn: Mara Kilpatrick name = "shamrock pendant" desc = "A silver and emerald shamrock pendant. It has the initials \"M.K.\" engraved on the back." icon = 'custom_items.dmi' icon_state = "mara_kilpatrick_1" flags = FPRINT|TABLEPASS w_class = 1 -*/ + //////////// Shoes //////////// /obj/item/clothing/shoes/fluff/leatherboots //serithi: Serithi Artalis diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 64dd06d7c23..49cb49d38b6 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -71,7 +71,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(key) var/mob/dead/observer/ghost = new(src) ghost.key = key - ghost.timeofdeath = timeofdeath + if(timeofdeath) + ghost.timeofdeath = timeofdeath verbs -= /mob/proc/ghost if (ghost.client) ghost.client.eye = ghost diff --git a/code/modules/mob/simple_animal/behemoth.dm b/code/modules/mob/simple_animal/behemoth.dm new file mode 100644 index 00000000000..0c252eea0e8 --- /dev/null +++ b/code/modules/mob/simple_animal/behemoth.dm @@ -0,0 +1,126 @@ +/mob/living/simple_animal/constructbehemoth + name = "Behemoth" + real_name = "Behemoth" + original_name = "Behemoth" + desc = "The pinnacle of occult technology, Behemoths are the ultimate weapon in the Cult of Nar-Sie's arsenal." + icon = 'mob.dmi' + icon_state = "behemoth" + icon_living = "behemoth" + icon_dead = "shade_dead" + maxHealth = 750 + health = 750 + speak_emote = list("rumbles") + emote_hear = list("wails","screeches") + response_help = "thinks better of touching" + response_disarm = "flails at" + response_harm = "harmlessly punches the" + harm_intent_damage = 0 + melee_damage_lower = 50 + melee_damage_upper = 50 + attacktext = "brutally crushes" + minbodytemp = 0 + maxbodytemp = 4000 + min_oxy = 0 + max_co2 = 0 + max_tox = 0 + speed = 5 + wall_smash = 1 + nopush = 1 + a_intent = "harm" + stop_automated_movement = 1 + canstun = 0 + canweaken = 0 + var/energy = 0 + var/max_energy = 1000 + + + Life() + ..() + if(stat == 2) + new /obj/item/weapon/ectoplasm (src.loc) + for(var/mob/M in viewers(src, null)) + if((M.client && !( M.blinded ))) + M.show_message("\red [src] collapses in a shattered heap ") + ghostize(0) + del src + return + +/mob/living/simple_animal/constructbehemoth/attackby(var/obj/item/O as obj, var/mob/user as mob) + if(O.force) + if(O.force >= 11) + health -= O.force + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("\red \b [src] has been attacked with the [O] by [user]. ") + else + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("\red \b The [O] bounces harmlessly off of [src]. ") + else + usr << "\red This weapon is ineffective, it does no damage." + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("\red [user] gently taps [src] with the [O]. ") + + +/mob/living/simple_animal/constructbehemoth/Bump(atom/movable/AM as mob|obj, yes) + + spawn( 0 ) + if ((!( yes ) || now_pushing)) + return + now_pushing = 1 + if(ismob(AM)) + var/mob/tmob = AM + if(tmob.nopush) + now_pushing = 0 + return + + tmob.LAssailant = src + now_pushing = 0 + ..() + if (!( istype(AM, /atom/movable) )) + return + if (!( now_pushing )) + now_pushing = 1 + if (!( AM.anchored )) + var/t = get_dir(src, AM) + if (istype(AM, /obj/structure/window)) + if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST) + for(var/obj/structure/window/win in get_step(AM,t)) + now_pushing = 0 + return + step(AM, t) + now_pushing = null + return + return + + +////////////////Powers////////////////// + + +/* +/client/proc/summon_cultist() + set category = "Behemoth" + set name = "Summon Cultist (300)" + set desc = "Teleport a cultist to your location" + if (istype(usr,/mob/living/simple_animal/constructbehemoth)) + + if(usr.energy<300) + usr << "\red You do not have enough power stored!" + return + + if(usr.stat) + return + + usr.energy -= 300 + var/list/mob/living/cultists = new + for(var/datum/mind/H in ticker.mode.cult) + if (istype(H.current,/mob/living)) + cultists+=H.current + var/mob/cultist = input("Choose the one who you want to summon", "Followers of Geometer") as null|anything in (cultists - usr) + if(!cultist) + return + if (cultist == usr) //just to be sure. + return + cultist.loc = usr.loc + usr.visible_message("/red [cultist] appears in a flash of red light as [usr] glows with power")*/ diff --git a/config/custom_items.txt b/config/custom_items.txt index abe54d2708a..a1b2ac3283e 100644 --- a/config/custom_items.txt +++ b/config/custom_items.txt @@ -1,4 +1,5 @@ asanadas: Book Berner: /obj/item/clothing/under/chameleon/psyche, /obj/item/clothing/glasses/meson/fluff/book_berner_1 +atomicdog92: Seth Sealis: /obj/item/clothing/suit/storage/det_suit/fluff/leatherjack chinsky: Victor Kaminski: /obj/item/fluff/victor_kaminsky_1 chinsky: Summer Springfield: /obj/item/weapon/camera_test/fluff/orange compactninja: Ysyr Rylias: /obj/item/weapon/reagent_containers/food/drinks/dry_ramen, /obj/item/weapon/reagent_containers/food/drinks/dry_ramen, /obj/item/weapon/reagent_containers/food/drinks/dry_ramen, /obj/item/weapon/reagent_containers/food/drinks/dry_ramen @@ -27,6 +28,7 @@ serithi: Serithi Artalis: /obj/item/clothing/glasses/fluff/serithi_artalis_1, /o silentthunder: Val McNeil: /obj/item/fluff/val_mcneil_1 spaceman96: Trenna Seber: /obj/item/weapon/pen/fluff/multi, /obj/item/clothing/suit/storage/labcoat/fluff/pink sparklysheep: Cado Keppel: /obj/item/weapon/fluff/cado_keppel_1 +staghorn: Mara Kilpatrick: /obj/item/clothing/mask/mara_kilpatrick_1 tastyfish: Cindy Robertson: /obj/item/weapon/wrapping_paper thebreadbocks: Steve Johnson: /obj/item/fluff/steve_johnson_1 themij: Taryn Kifer: /obj/item/clothing/head/helmet/greenbandana/fluff/taryn_kifer_1 diff --git a/html/changelog.html b/html/changelog.html index e3d0dfad9c1..751894234fa 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -53,6 +53,9 @@ should be listed in the changelog upon commit though. Thanks. -->