diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm index 2d72f5c452..4db15b0553 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/machinery/gateway.dm b/code/game/machinery/gateway.dm new file mode 100644 index 0000000000..ec76dad3fd --- /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/modules/mob/simple_animal/behemoth.dm b/code/modules/mob/simple_animal/behemoth.dm new file mode 100644 index 0000000000..5d3c6fcd9b --- /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/icons/obj/gate.dmi b/icons/obj/gate.dmi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/icons/obj/machines/gateway.dmi b/icons/obj/machines/gateway.dmi new file mode 100644 index 0000000000..06bf9f8f71 Binary files /dev/null and b/icons/obj/machines/gateway.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 7444f6b345..7d13256f46 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -455,6 +455,7 @@ #include "code\game\machinery\door_control.dm" #include "code\game\machinery\flasher.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" @@ -967,6 +968,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"