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 d7b0f2faf62..fcdd79b3741 100644 Binary files a/icons/mob/actions.dmi and b/icons/mob/actions.dmi differ