From 1a6803c7bb2c169a6480ffc92f894f977501508d Mon Sep 17 00:00:00 2001 From: Aurorablade Date: Thu, 27 Oct 2016 20:44:54 -0400 Subject: [PATCH] Comments done mostly...Slughter demon whispers runtimes. --- code/__HELPERS/unsorted.dm | 12 ++++- code/game/gamemodes/cult/cult.dm | 12 ++--- code/game/gamemodes/cult/cult_comms.dm | 4 +- code/game/gamemodes/cult/cult_datums.dm | 2 - code/game/gamemodes/cult/cult_items.dm | 12 ++--- code/game/gamemodes/cult/cult_structures.dm | 46 +++++++++++++----- code/game/gamemodes/cult/ritual.dm | 20 +++++++- code/game/gamemodes/cult/runes.dm | 36 ++++++++++++++ code/game/gamemodes/cult/talisman.dm | 13 +++-- .../miniantags/slaughter/slaughter.dm | 19 +++++--- code/game/gamemodes/setupgame.dm | 2 +- code/game/magic/Uristrunes.dm | 27 ++++------ code/game/turfs/simulated/walls_misc.dm | 3 +- code/modules/admin/admin_verbs.dm | 1 - .../mob/living/simple_animal/constructs.dm | 31 ------------ icons/mob/actions.dmi | Bin 81153 -> 81541 bytes 16 files changed, 144 insertions(+), 96 deletions(-) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index de091cb8584..f5aaad099c2 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1766,4 +1766,14 @@ var/global/list/g_fancy_list_of_types = null . += 4 sleep(world.tick_lag*4) //you might be thinking of adding more steps to this, or making it use a loop and a counter var - // not worth it. \ No newline at end of file + // not worth it. + + +/proc/make_bit_triplet() + var/list/num_sample = list(1, 2, 3, 4, 5, 6, 7, 8, 9) + var/result = 0 + for(var/i = 0, i < 3, i++) + var/num = pick(num_sample) + num_sample -= num + result += (1 << num) + return result \ No newline at end of file diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index a1614796fe8..6a92052eed5 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -41,9 +41,9 @@ var/global/list/all_cults = list() config_tag = "cult" restricted_jobs = list("Chaplain","AI", "Cyborg", "Internal Affairs Agent", "Security Officer", "Warden", "Detective", "Security Pod Pilot", "Head of Security", "Captain", "Head of Personnel", "Blueshield", "Nanotrasen Representative", "Magistrate", "Brig Physician", "Nanotrasen Navy Officer", "Special Operations Officer") protected_jobs = list() - required_players = 1//30 - required_enemies = 1//3 - recommended_enemies = 1//4 + required_players = 30 + required_enemies = 3 + recommended_enemies = 4 var/datum/mind/sacrifice_target = null var/finished = 0 @@ -198,7 +198,7 @@ var/global/list/all_cults = list() /datum/game_mode/proc/remove_cultist(datum/mind/cult_mind, show_message = 1) if(cult_mind in cult) cult -= cult_mind - to_chat(cult_mind.current, "\red An unfamiliar white light flashes through your mind, cleansing the taint of the dark-one and the memories of your time as his servant with it.") + to_chat(cult_mind.current, "An unfamiliar white light flashes through your mind, cleansing the taint of the dark-one and the memories of your time as his servant with it.") cult_mind.current.faction -= "cult" cult_mind.memory = "" cult_mind.special_role = null @@ -279,11 +279,11 @@ var/global/list/all_cults = list() if(!check_cult_victory()) feedback_set_details("round_end_result","win - cult win") feedback_set("round_end_result",acolytes_survived) - to_chat(world, "\red The cult wins! It has succeeded in serving its dark masters!") + to_chat(world, " The cult wins! It has succeeded in serving its dark masters!") else feedback_set_details("round_end_result","loss - staff stopped the cult") feedback_set("round_end_result",acolytes_survived) - to_chat(world, "\red The staff managed to stop the cult!") + to_chat(world, " The staff managed to stop the cult!") var/text = "Cultists escaped: [acolytes_survived]" diff --git a/code/game/gamemodes/cult/cult_comms.dm b/code/game/gamemodes/cult/cult_comms.dm index a1ce61ab941..b4b68652b96 100644 --- a/code/game/gamemodes/cult/cult_comms.dm +++ b/code/game/gamemodes/cult/cult_comms.dm @@ -2,7 +2,7 @@ name = "Communion" button_icon_state = "cult_comms" background_icon_state = "bg_cult" - check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_LYING + check_flags = AB_CHECK_STUNNED|AB_CHECK_LYING /datum/action/innate/cultcomm/IsAvailable() if(!iscultist(owner)) @@ -34,6 +34,6 @@ if(iscultist(M)) to_chat(M, my_message) else if(M in dead_mob_list) - to_chat(M, "(F) [my_message]") + to_chat(M, " (F) [my_message] ") log_say("[user.real_name]/[user.key] : [message]") \ No newline at end of file diff --git a/code/game/gamemodes/cult/cult_datums.dm b/code/game/gamemodes/cult/cult_datums.dm index 34ff3efe978..b08632f0359 100644 --- a/code/game/gamemodes/cult/cult_datums.dm +++ b/code/game/gamemodes/cult/cult_datums.dm @@ -3,7 +3,6 @@ /datum/cult_info var/name = "Cult of Nar'Sie" var/theme = "blood" - var/dam_type = BRUTE var/tome_icon = "tome" //God Entity var/entity_name = "Nar'Sie" @@ -50,7 +49,6 @@ /datum/cult_info/fire name = "Cult of Pyr'Kaeus" theme = "fire" - dam_type = BURN tome_icon = "firetome" entity_name = "Pyr'Kaeus" diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index a3843e3184a..ef71408755c 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -159,7 +159,7 @@ if(current_charges) owner.visible_message("\The [attack_text] is deflected in a burst of blood-red sparks!") current_charges-- - new /obj/effect/overlay/temp/cult/sparks(get_turf(owner)) + PoolOrNew( /obj/effect/overlay/temp/cult/sparks, get_turf(owner)) if(!current_charges) owner.visible_message("The runed shield around [owner] suddenly disappears!") owner.update_inv_wear_suit() @@ -174,7 +174,7 @@ flags_inv = HIDEJUMPSUIT allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS - armor = list(melee = -100, bullet = -100, laser = -100,energy = -100, bomb = -100, bio = -100, rad = -100) + armor = list(melee = -50, bullet = -50, laser = -100,energy = -50, bomb = -50, bio = -50, rad = -50) slowdown = -1 hoodtype = /obj/item/clothing/head/berserkerhood @@ -239,7 +239,7 @@ to_chat(user, "We have exhausted our ability to curse the shuttle.") return if(shuttle_master.emergency.mode == SHUTTLE_CALL) - var/cursetime = 1500 + var/cursetime = 1800 var/timer = shuttle_master.emergency.timeLeft(1) + cursetime shuttle_master.emergency.setTimer(timer) to_chat(user,"You shatter the orb! A dark essence spirals into the air, then disappears.") @@ -264,7 +264,7 @@ desc = "This relic teleports you forward a medium distance." icon = 'icons/obj/cult.dmi' icon_state ="shifter" - var/uses = 2 + var/uses = 4 /obj/item/device/cult_shift/examine(mob/user) ..() @@ -317,14 +317,14 @@ if(uses <= 0) icon_state ="shifter_drained" playsound(mobloc, "sparks", 50, 1) - new /obj/effect/overlay/temp/cult/phase/out(mobloc) + PoolOrNew(/obj/effect/overlay/temp/cult/phase/out, mobloc) var/atom/movable/pulled = handle_teleport_grab(destination, C) C.forceMove(destination) if(pulled) C.start_pulling(pulled) //forcemove resets pulls, so we need to re-pull - new /obj/effect/overlay/temp/cult/phase(destination) + PoolOrNew(/obj/effect/overlay/temp/cult/phase, destination) playsound(destination, 'sound/effects/phasein.ogg', 25, 1) playsound(destination, "sparks", 50, 1) diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index a8d5b5fea98..5bff39b99d4 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -14,8 +14,6 @@ playsound(src, death_sound, 50, 1) qdel(src) -/obj/structure/cult/attackby(obj/item/I, mob/user, params) - //Noncult As we may have this on maps /obj/structure/cult/talisman @@ -53,17 +51,14 @@ if(istype(I, /obj/item/weapon/tome) && iscultist(user)) anchored = !anchored to_chat(user, "You [anchored ? "":"un"]secure \the [src] [anchored ? "to":"from"] the floor.") + playsound(loc, 'sound/hallucinations/wail.ogg', 75, 1) if(!anchored) icon_state = "[initial(icon_state)]_off" else icon_state = initial(icon_state) + else + return ..() - ..() - if(I.force) - health = Clamp(health - I.force, 0, initial(health)) - user.changeNext_move(CLICK_CD_MELEE) - if(health <= 0) - destroy_structure() /obj/structure/cult/proc/getETA() var/time = (cooldowntime - world.time)/600 @@ -122,6 +117,9 @@ if(!iscarbon(G.affecting)) to_chat(user, "You may only dunk carbon-based creatures!") return 0 + if(G.affecting == LAVA_PROOF) + to_chat(user, "Is immune to the lava!") + return 0 if(G.affecting.stat == DEAD) to_chat(user, "[G.affecting] is dead!") return 0 @@ -164,6 +162,14 @@ to_chat(user, "You work the forge as dark knowledge guides your hands, creating [N]!") +var/list/blacklisted_pylon_turfs = typecacheof(list( + /turf/simulated/floor/engine/cult, + /turf/space, + /turf/unsimulated/floor/lava, + /turf/unsimulated/floor/chasm, + /turf/simulated/wall, + )) + /obj/structure/cult/cultpylon name = "pylon" desc = "A floating crystal that slowly heals those faithful to a cult." @@ -194,7 +200,7 @@ for(var/mob/living/L in range(5, src)) if(iscultist(L) || istype(L, /mob/living/simple_animal/shade) || istype(L, /mob/living/simple_animal/hostile/construct)) if(L.health != L.maxHealth) - new /obj/effect/overlay/temp/heal(get_turf(src), "#960000")//not working + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(src)), "#960000") if(ishuman(L)) L.adjustBruteLoss(-1, 0) L.adjustFireLoss(-1, 0) @@ -206,16 +212,30 @@ //CHECK_TICK if(last_corrupt <= world.time) var/list/validturfs = list() + var/list/cultturfs = list() for(var/T in circleviewturfs(src, 5)) - if(istype(T, /turf/simulated/floor/engine/cult) || istype(T, /turf/space) || istype(T, /turf/simulated/wall) || istype(T, /turf/simulated/shuttle)) + if(istype(T, /turf/simulated/floor/engine/cult)) + cultturfs |= T continue - validturfs |= T + if(is_type_in_typecache(T, blacklisted_pylon_turfs)) + continue + else + validturfs |= T + + last_corrupt = world.time + corrupt_delay + var/turf/T = safepick(validturfs) if(T) T.ChangeTurf(/turf/simulated/floor/engine/cult) - last_corrupt = world.time + corrupt_delay else - last_corrupt = world.time + corrupt_delay*2 + var/turf/simulated/floor/engine/cult/F = safepick(cultturfs) + if(F) + PoolOrNew(/obj/effect/overlay/temp/cult/turf/open/floor, F) + else + // Are we in space or something? No cult turfs or + // convertable turfs? + last_corrupt = world.time + corrupt_delay*2 + /obj/structure/cult/culttome diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index cc6bd1aeb7f..c2f54e3a36b 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -10,7 +10,7 @@ return /obj/effect/rune/proc/check_icon() - icon = get_uristrune_cult(invocation) + icon = get_rune_cult(invocation) /obj/item/weapon/tome name = "arcane tome" @@ -242,7 +242,7 @@ if(!("eldergod" in cult_mode.objectives) || !("slughter" in cult_mode.objectives)) to_chat(user, "[cult_mode.cultdat.entity_name]'s power does not wish to be unleashed!") return - var/confirm_final = alert(user, "This is the FINAL step to summon Nar-Sie, it is a long, painful ritual and the crew will be alerted to your presence", "Are you prepared for the final battle?", "My life for Nar-Sie!", "No") + var/confirm_final = alert(user, "This is the FINAL step to summon your dietys power, it is a long, painful ritual and the crew will be alerted to your presence", "Are you prepared for the final battle?", "My life for Nar-Sie!", "No") if(confirm_final == "No") to_chat(user, "You decide to prepare further before scribing the rune.") return @@ -255,6 +255,22 @@ N.icon_state = "shield-cult" N.health = 60 shields |= N + else//the game mode is not cult..but we ARE a cultist...ALL ON THE ADMINBUS + if(!canbypass == 1)//not an admin-tome, check things + var/confirm_final = alert(user, "This is the FINAL step to summon your dietys power, it is a long, painful ritual and the crew will be alerted to your presence", "Are you prepared for the final battle?", "My life for Nar-Sie!", "No") + if(confirm_final == "No") + to_chat(user, "You decide to prepare further before scribing the rune.") + return + command_announcement.Announce("Figments from an eldritch god are being summoned somwhere on the station from an unknown dimension. Disrupt the ritual at all costs!","Central Command Higher Dimensionsal Affairs", 'sound/AI/spanomalies.ogg') + for(var/B in spiral_range_turfs(1, user, 1)) + var/turf/T = B + var/obj/machinery/shield/N = new(T) + N.name = "Rune-Scriber's Shield" + N.desc = "A potent shield summoned by cultists to protect them while they prepare the final ritual" + N.icon_state = "shield-cult" + N.health = 60 + shields |= N + var/mob/living/carbon/human/H = user var/dam_zone = pick("head", "chest", "groin", "l_arm", "l_hand", "r_arm", "r_hand", "l_leg", "l_foot", "r_leg", "r_foot") var/obj/item/organ/external/affecting = H.get_organ(ran_zone(dam_zone)) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 7330dac293c..15ab7a74193 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -884,6 +884,42 @@ var/list/teleport_runes = list() qdel(src) explosion(T, -1, 0, 1, 5) +//Deals brute damage to all targets on the rune and heals the invoker for each target drained. +/obj/effect/rune/leeching + cultist_name = "Drain Life" + cultist_desc = "drains the life of all targets on the rune, restoring life to the user." + invocation = "Yu'gular faras desdae. Umathar uf'kal thenar!" + icon_state = "3" + +/obj/effect/rune/leeching/can_invoke(mob/living/user) + if(world.time <= user.next_move) + return list() + var/turf/T = get_turf(src) + var/list/potential_targets = list() + for(var/mob/living/carbon/M in T.contents - user) + if(M.stat != DEAD) + potential_targets += M + if(!potential_targets.len) + to_chat(user, "There must be at least one valid target on the rune!") + log_game("Leeching rune failed - no valid targets") + return list() + return ..() + +/obj/effect/rune/leeching/invoke(var/list/invokers) + var/mob/living/user = invokers[1] + user.changeNext_move(CLICK_CD_MELEE) + ..() + var/turf/T = get_turf(src) + for(var/mob/living/carbon/M in T.contents - user) + if(M.stat != DEAD) + var/drained_amount = rand(10,20) + M.apply_damage(drained_amount, BRUTE, "chest") + user.adjustBruteLoss(-drained_amount) + to_chat(M, "You feel extremely weak.") + user.Beam(T,icon_state="drainbeam",icon='icons/effects/effects.dmi',time=5) + user.visible_message("Blood flows from the rune into [user]!", \ + "Blood flows into you, healing your wounds and revitalizing your spirit.") + //Rite of Spectral Manifestation: Summons a ghost on top of the rune as a cultist human with no items. User must stand on the rune at all times, and takes damage for each summoned ghost. /obj/effect/rune/manifest diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm index 44217204414..0bd80cdc41f 100644 --- a/code/game/gamemodes/cult/talisman.dm +++ b/code/game/gamemodes/cult/talisman.dm @@ -304,17 +304,18 @@ cultist_name = "Talisman of Construction" cultist_desc = "Use this talisman on at least twenty-five metal sheets to create an empty construct shell or on plasteel to make runed metal" invocation = "Ethra p'ni dedol!" + uses = 25 /obj/item/weapon/paper/talisman/construction/attack_self(mob/living/user) if(iscultist(user)) - to_chat(user, "To use this talisman, place it upon a stack of metal sheets.") + to_chat(user, "To use this talisman, place it upon a stack of metal sheets or plasteel sheets!.") else to_chat(user, "You see strange symbols on the paper. Are they supposed to mean something?") /obj/item/weapon/paper/talisman/construction/attack(obj/M,mob/living/user) if(iscultist(user)) - to_chat(user, "This talisman will only work on a stack of metal sheets!") + to_chat(user, "This talisman will only work on a stack of metal sheets or plasteel sheets!!") log_game("Construct talisman failed - not a valid target") /obj/item/weapon/paper/talisman/construction/afterattack(obj/item/stack/sheet/target, mob/user, proximity_flag, click_parameters) @@ -328,13 +329,15 @@ user << sound('sound/magic/Staff_Chaos.ogg',0,1,25) qdel(src) if(istype(target, /obj/item/stack/sheet/plasteel)) - var/quantity = target.amount - var/turf/T = get_turf(target) + var/quantity = min(target.amount, uses) + uses -= quantity new /obj/item/stack/sheet/runed_metal(T,quantity) target.use(quantity) to_chat(user, "The talisman clings to the plasteel, transforming it into runed metal!") user << sound('sound/magic/Staff_Chaos.ogg',0,1,25) - qdel(src) + invoke(user, 1) + if(uses <= 0) + qdel(src) else to_chat(user, "The talisman must be used on metal or plasteel!") diff --git a/code/game/gamemodes/miniantags/slaughter/slaughter.dm b/code/game/gamemodes/miniantags/slaughter/slaughter.dm index 69a309fd3a9..20f9678799d 100644 --- a/code/game/gamemodes/miniantags/slaughter/slaughter.dm +++ b/code/game/gamemodes/miniantags/slaughter/slaughter.dm @@ -52,18 +52,21 @@ del_on_death = 1 deathmessage = "screams in anger as it collapses into a puddle of viscera!" + var/datum/action/innate/demon/whisper/whisper_action + /mob/living/simple_animal/slaughter/New() ..() var/obj/effect/proc_holder/spell/bloodcrawl/bloodspell = new AddSpell(bloodspell) + whisper_action = new() + whisper_action.Grant(src) if(istype(loc, /obj/effect/dummy/slaughter)) bloodspell.phased = 1 if(mind) to_chat(src, src.playstyle_string) to_chat(src, "You are not currently in the same plane of existence as the station. Ctrl+Click a blood pool to manifest.") src << 'sound/misc/demon_dies.ogg' - mind.current.verbs += /mob/living/simple_animal/slaughter/verb/slaughterWhisper if(!(vialspawned)) var/datum/objective/slaughter/objective = new var/datum/objective/demonFluff/fluffObjective = new @@ -171,17 +174,21 @@ //Paradise Port:I added this cuase..SPOOPY DEMON IN YOUR BRAIN -/mob/living/simple_animal/slaughter/verb/slaughterWhisper() - set name = "Whisper" - set desc = "Whisper to a mortal" - set category = "Daemon" +/datum/action/innate/demon/whisper + name = "Demonic Whisper" + button_icon_state = "cult_comms" + background_icon_state = "bg_demon" +/datum/action/innate/demon/whisper/IsAvailable() + return ..() + +/datum/action/innate/demon/whisper/Activate() var/list/choices = list() for(var/mob/living/carbon/C in living_mob_list) if(C.stat != 2 && C.client && C.stat != DEAD) choices += C - var/mob/living/carbon/M = input(src,"Who do you wish to talk to?") in null|choices + var/mob/living/carbon/M = input(src,"Who do you wish to talk to?") in null|choices //runtime happens here. spawn(0) var/msg = stripped_input(usr, "What do you wish to tell [M]?", null, "") if(!(msg)) diff --git a/code/game/gamemodes/setupgame.dm b/code/game/gamemodes/setupgame.dm index 2a6f18d16f1..61abe7bf39e 100644 --- a/code/game/gamemodes/setupgame.dm +++ b/code/game/gamemodes/setupgame.dm @@ -156,6 +156,6 @@ if(!picked_cult)//shouldn't happen BUT JUST TO BE SURE LET US KNOW log_startup_progress(" Failed to select a cult datum, Shank a coder!") else - log_startup_progress(" Crab'sie has risen!") + log_startup_progress(" [picked_cult] has risen!") //todo:add adminonly datum var, check for said var here... return picked_cult \ No newline at end of file diff --git a/code/game/magic/Uristrunes.dm b/code/game/magic/Uristrunes.dm index 29aaeffefee..5cb7dc4127e 100644 --- a/code/game/magic/Uristrunes.dm +++ b/code/game/magic/Uristrunes.dm @@ -1,38 +1,29 @@ -/proc/make_bit_triplet() - var/list/num_sample = list(1, 2, 3, 4, 5, 6, 7, 8, 9) - var/result = 0 - for(var/i = 0, i < 3, i++) - var/num = pick(num_sample) - num_sample -= num - result += (1 << num) - return result - -/proc/get_uristrune_cult(word) +/proc/get_rune_cult(word) var/animated - if(word) + if(word && !(ticker.mode.cultdat.theme == "fire")) animated = 1 else animated = 0 var/bits = make_bit_triplet() - return get_uristrune(bits, animated) + return get_rune(bits, animated) -var/list/uristrune_cache = list() +var/list/rune_cache = list() var/runetype = "rune" -/proc/get_uristrune(symbol_bits, animated = 0) +/proc/get_rune(symbol_bits, animated = 0) var/lookup = "[symbol_bits]-[animated]" if(ticker.mode.cultdat.theme == "fire") runetype = "fire-rune" - if(lookup in uristrune_cache) - return uristrune_cache[lookup] + if(lookup in rune_cache) + return rune_cache[lookup] - var/icon/I = icon('icons/effects/uristrunes.dmi', "blank") + var/icon/I = icon('icons/effects/uristrunes.dmi', "[runetype]-179") for(var/i = 0, i < 10, i++) if(symbol_bits & (1 << i)) @@ -93,6 +84,6 @@ var/runetype = "rune" result.Insert(I3, "", frame = 7, delay = 2) result.Insert(I2, "", frame = 8, delay = 2) - uristrune_cache[lookup] = result + rune_cache[lookup] = result return result diff --git a/code/game/turfs/simulated/walls_misc.dm b/code/game/turfs/simulated/walls_misc.dm index a450572f145..da77242a276 100644 --- a/code/game/turfs/simulated/walls_misc.dm +++ b/code/game/turfs/simulated/walls_misc.dm @@ -12,7 +12,6 @@ if(ticker.mode)//game hasn't started offically don't do shit.. new /obj/effect/overlay/temp/cult/turf(src) icon_state = ticker.mode.cultdat.cult_wall_icon_state - walltype = ticker.mode.cultdat.cult_wall_icon_state /turf/simulated/wall/cult/artificer name = "runed stone wall" @@ -21,7 +20,7 @@ /turf/simulated/wall/cult/narsie_act() return - + /turf/simulated/wall/cult/break_wall() new /obj/effect/decal/cleanable/blood(src) return (new /obj/structure/cultgirder(src)) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 76b28aaae49..a3b89a862a0 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -37,7 +37,6 @@ var/list/admin_verbs_admin = list( /client/proc/jumptoturf, /*allows us to jump to a specific turf*/ /client/proc/admin_call_shuttle, /*allows us to call the emergency shuttle*/ /client/proc/admin_cancel_shuttle, /*allows us to cancel the emergency shuttle, sending it back to centcomm*/ - ///client/proc/check_words, /*displays cult-words*/ /client/proc/check_ai_laws, /*shows AI and borg laws*/ /client/proc/manage_silicon_laws, /* Allows viewing and editing silicon laws. */ /client/proc/admin_memo, /*admin memo system. show/delete/write. +SERVER needed to delete admin memos of others*/ diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index afd36fa0d96..21510d7c11a 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -328,37 +328,6 @@ overlays += image(icon,"glow-[icon_state]",overlay_layer) set_light(2, -2, l_color = "#FFFFFF") -////////////////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/hostile/constructbehemoth)) - - if(usr.energy<300) - to_chat(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")*/ - - ///ui stuff /mob/living/simple_animal/hostile/construct/armoured/handle_hud_icons_health() diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi index d7b0f2faf629e30710c1e432bf7b6acec38e55a7..fcdd79b3741fc314298d07f124d01d7460ede580 100644 GIT binary patch delta 23487 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 NbrEZdsnoZp{0}2{D=h#3 delta 23096 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