Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shadowling Update 2: 121% Merge-Ready #10254

Merged
merged 10 commits into from Jul 3, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions code/__DEFINES/say.dm
Expand Up @@ -22,6 +22,7 @@
#define SPAN_YELL "yell"
#define SPAN_ITALICS "italics"
#define SPAN_SANS "sans"
#define SPAN_REALLYBIG "reallybig"

//bitflag #defines for return value of the radio() proc.
#define ITALICS 1
Expand Down
@@ -1,10 +1,13 @@
/mob/living/simple_animal/ascendant_shadowling
name = "Ascendant Shadowling"
name = "ascendant shadowling"
desc = "A large, floating eldritch horror. It has pulsing markings all about its body and large horns. It seems to be floating without any form of support."
icon = 'icons/mob/mob.dmi'
icon_state = "shadowling_ascended"
icon_living = "shadowling_ascended"
speak_emote = list("telepathically thunders", "telepathically booms")
verb_say = "telepathically thunders"
verb_ask = "telepathically thunders"
verb_exclaim = "telepathically thunders"
verb_yell = "telepathically thunders"
force_threshold = INFINITY //Can't die by normal means
health = 100000
maxHealth = 100000
Expand All @@ -25,9 +28,12 @@

minbodytemp = 0
maxbodytemp = INFINITY
environment_smash = 2
environment_smash = 3

faction = list("faithless")

/mob/living/simple_animal/ascendant_shadowling/Process_Spacemove(var/movement_dir = 0)
return 1 //copypasta from carp code

/mob/living/simple_animal/ascendant_shadowling/get_spans()
return ..() | list(SPAN_REALLYBIG, SPAN_YELL)
10 changes: 4 additions & 6 deletions code/game/gamemodes/shadowling/shadowling.dm
@@ -1,7 +1,6 @@
#define LIGHT_DAM_THRESHOLD 4
#define LIGHT_HEAL_THRESHOLD 2
#define LIGHT_DAMAGE_TAKEN 10

/*

SHADOWLING: A gamemode based on previously-run events
Expand Down Expand Up @@ -50,6 +49,7 @@ Made by Xhuis
var/required_thralls = 15 //How many thralls are needed (hardcoded for now)
var/shadowling_ascended = 0 //If at least one shadowling has ascended
var/shadowling_dead = 0 //is shadowling kill
var/objective_explanation


/proc/is_thrall(var/mob/living/M)
Expand Down Expand Up @@ -123,7 +123,7 @@ Made by Xhuis
var/objective = "enthrall" //may be devour later, but for now it seems murderbone-y

if(objective == "enthrall")
var/objective_explanation = "Ascend to your true form by use of the Ascendance ability. This may only be used with [required_thralls] collective thralls, while hatched, and is unlocked with the Collective Mind ability."
objective_explanation = "Ascend to your true form by use of the Ascendance ability. This may only be used with [required_thralls] collective thralls, while hatched, and is unlocked with the Collective Mind ability."
shadow_objectives += "enthrall"
shadow_mind.memory += "<b>Objective #1</b>: [objective_explanation]"
shadow_mind.current << "<b>Objective #1</b>: [objective_explanation]<br>"
Expand All @@ -147,10 +147,8 @@ Made by Xhuis
update_shadow_icons_added(new_thrall_mind)
thralls += new_thrall_mind
new_thrall_mind.current.attack_log += "\[[time_stamp()]\] <span class='danger'>Became a thrall</span>"
new_thrall_mind.memory += "<b>The Shadowlings' Objectives:</b> Ascend to your true form by use of the Ascendance ability. \
This may only be used with [required_thralls] collective thralls, while hatched, and is unlocked with the Collective Mind ability."
new_thrall_mind.current << "<b>The objectives of your shadowlings:</b>: Ascend to your true form by use of the Ascendance ability. \
This may only be used with [required_thralls] collective thralls, while hatched, and is unlocked with the Collective Mind ability."
new_thrall_mind.memory += "<b>The Shadowlings' Objectives:</b> [objective_explanation]"
new_thrall_mind.current << "<b>The objectives of the shadowlings:</b> [objective_explanation]"
new_thrall_mind.spell_list += new /obj/effect/proc_holder/spell/targeted/shadowling_hivemind
return 1

Expand Down
336 changes: 179 additions & 157 deletions code/game/gamemodes/shadowling/shadowling_abilities.dm

Large diffs are not rendered by default.

36 changes: 20 additions & 16 deletions code/game/gamemodes/shadowling/special_shadowling_abilities.dm
@@ -1,5 +1,5 @@
//In here: Hatch and Ascendance

var/list/possibleShadowlingNames = list("U'ruan", "Y`shej", "Nex", "Hel-uae", "Noaey'gief", "Mii`mahza", "Amerziox", "Gyrg-mylin", "Kanet'pruunance", "Vigistaezian")
/mob/living/carbon/human/proc/shadowling_hatch()
set category = "Shadowling Evolution"
set name = "Hatch"
Expand All @@ -13,7 +13,7 @@
usr.verbs += /mob/living/carbon/human/proc/shadowling_hatch
return
if("Yes")
usr.notransform = 1
usr.Stun(INFINITY) //This is bad but notransform won't work.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just buckle them to an invisible chair in the MC :^]

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't do this.

usr.visible_message("<span class='warning'>[usr]'s things suddenly slip off. They hunch over and vomit up a copious amount of purple goo which begins to shape around them!</span>", \
"<span class='shadowling'>You remove any equipment which would hinder your hatching and begin regurgitating the resin which will protect you.</span>")

Expand All @@ -37,7 +37,7 @@
"<span class='shadowling'>Spines pierce your back. Your claws break apart your fingers. You feel excruciating pain as your true form begins its exit.</span>")

sleep(90)
usr.visible_message("<span class='warning'><b>[usr], now no longer recognizable as human, begins clawing at the resin walls around them.</b></span>", \
usr.visible_message("<span class='warning'><b>[usr], skin shifting, begins tearing at the walls around them.</b></span>", \
"<span class='shadowling'>Your false skin slips away. You begin tearing at the fragile membrane protecting you.</span>")

sleep(80)
Expand All @@ -52,9 +52,11 @@

sleep(10)
playsound(usr.loc, 'sound/effects/ghost.ogg', 100, 1)
usr.real_name = "Shadowling ([rand(1,1000)])"
var/newNameId = pick(possibleShadowlingNames)
possibleShadowlingNames.Remove(newNameId)
usr.real_name = newNameId
usr.name = usr.real_name
usr.notransform = 0
usr.SetStunned(0)
usr << "<i><b><font size=3>YOU LIVE!!!</i></b></font>"

for(var/obj/structure/alien/resin/wall/shadowling/W in orange(usr, 1))
Expand Down Expand Up @@ -102,7 +104,7 @@
usr.verbs += /mob/living/carbon/human/proc/shadowling_ascendance
return
if("Yes")
usr.notransform = 1
usr.Stun(INFINITY)
usr.visible_message("<span class='warning'>[usr] rapidly bends and contorts, their eyes flaring a deep crimson!</span>", \
"<span class='shadowling'>You begin unlocking the genetic vault within you and prepare yourself for the power to come.</span>")

Expand All @@ -123,21 +125,24 @@
sleep(50)
for(var/mob/M in mob_list)
if(is_thrall(M) && !ticker.mode.shadowling_ascended)
M.visible_message("<span class='userdanger'>[M] trembles minutely as their form turns to ash, black smoke pouring from their disintegrating face.</span>", \
"<span class='userdanger'><font size=3>It's time! Your masters are ascending! Your last thoughts are happy as your body is drained of life.</span>")
M.visible_message("<span class='userdanger'>[M] trembles minutely as they collapse, black smoke pouring from their disintegrating face.</span>", \
"<span class='userdanger'>It's time! Your masters are ascending! Your last thoughts are happy as your body is drained of life.</span>")

ticker.mode.thralls -= M.mind //To prevent message spam
M.death(0)
M.dust()

usr << "<span class='userdanger'>Drawing upon your thralls, you find the strength needed to finish and rend apart the final barriers to godhood.</b></span>"

sleep(40)
sleep(20)
usr << "<span class='big'><b>Yes!</b></span>"
sleep(10)
usr << "<span class='reallybig'><b>YES!</b></span>"
sleep(10)
usr << "<font size=5><b><i>YE--</b></I></font>"
sleep(1)
for(var/mob/living/M in orange(7, src))
M.Weaken(10)
M << "<span class='userdanger'>An immense pressure slams you onto the ground!</span>"
usr << "<font size=3.5><span class='shadowling'>YOU LIVE!!!</font></span>"
world << "<br><br><font size=4><span class='shadowling'><b>A horrible wail echoes in your mind as the world plunges into blackness.</font></span><br><br>"
world << "<font size=5><span class='shadowling'><b>\"VYSHA NERADA YEKHEZET U'RUU!!\"</font></span>"
world << 'sound/hallucinations/veryfar_noise.ogg'
for(var/obj/machinery/power/apc/A in world)
A.overload_lighting()
Expand All @@ -147,15 +152,14 @@
usr.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/hypnosis
usr.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/shadowling_phase_shift
usr.mind.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/glacial_blast
usr.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/vortex
usr.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/shadowling_hivemind_ascendant
usr.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/shadowlingAscendantTransmit
usr.mind.transfer_to(A)
A.name = usr.real_name
if(A.real_name)
A.real_name = usr.real_name
usr.alpha = 0 //This is pretty bad, but is also necessary for the shuttle call to function properly
usr.invisibility = 60 //This is pretty bad, but is also necessary for the shuttle call to function properly
usr.flags |= GODMODE
usr.notransform = 1
sleep(50)
if(!ticker.mode.shadowling_ascended)
SSshuttle.emergency.request(null, 0.3)
Expand Down
1 change: 1 addition & 0 deletions config/admins.txt
Expand Up @@ -86,3 +86,4 @@ Ahammer18 = Game Master
ACCount12 = Game Master
fayrik = Game Master
shadowlight213 = Game Master
drovidicorv = Game Master
3 changes: 2 additions & 1 deletion interface/stylesheet.dm
Expand Up @@ -63,7 +63,7 @@ h1.alert, h2.alert {color: #000000;}
.unconscious {color: #0000ff; font-weight: bold;}
.suicide {color: #ff5050; font-style: italic;}
.green {color: #03ff39;}
.shadowling {color: #311648;}
.shadowling {color: #3b2769;}

.newscaster {color: #800000;}
.ghostalert {color: #5c00e6; font-style: italic; font-weight: bold;}
Expand All @@ -78,6 +78,7 @@ h1.alert, h2.alert {color: #000000;}
.robot {font-family: "Courier New", cursive, sans-serif;}

.big {font-size: 3;}
.reallybig {font-size: 4;}
.greentext {color: #00FF00; font-size: 3;}
.redtext {color: #FF0000; font-size: 3;}

Expand Down
2 changes: 1 addition & 1 deletion tgstation.dme
Expand Up @@ -344,6 +344,7 @@
#include "code\game\gamemodes\sandbox\airlock_maker.dm"
#include "code\game\gamemodes\sandbox\h_sandbox.dm"
#include "code\game\gamemodes\sandbox\sandbox.dm"
#include "code\game\gamemodes\shadowling\ascendant_shadowling.dm"
#include "code\game\gamemodes\shadowling\shadowling.dm"
#include "code\game\gamemodes\shadowling\shadowling_abilities.dm"
#include "code\game\gamemodes\shadowling\shadowling_items.dm"
Expand Down Expand Up @@ -1206,7 +1207,6 @@
#include "code\modules\mob\living\silicon\robot\robot_modules.dm"
#include "code\modules\mob\living\silicon\robot\robot_movement.dm"
#include "code\modules\mob\living\silicon\robot\say.dm"
#include "code\modules\mob\living\simple_animal\ascendant_shadowling.dm"
#include "code\modules\mob\living\simple_animal\constructs.dm"
#include "code\modules\mob\living\simple_animal\corpse.dm"
#include "code\modules\mob\living\simple_animal\parrot.dm"
Expand Down