mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-29 08:08:49 +01:00
Several changes to clockcult
This commit is contained in:
@@ -6,11 +6,13 @@ var/global/list/all_clockwork_objects = list() //All clockwork items, structures
|
||||
var/global/list/all_clockwork_mobs = list() //All clockwork SERVANTS (not creatures) in existence
|
||||
var/global/list/clockwork_component_cache = list("belligerent_eye" = 0, "vanguard_cogwheel" = 0, "guvax_capacitor" = 0, "replicant_alloy" = 0, "hierophant_ansible" = 0) //The pool of components that caches draw from
|
||||
|
||||
#define SCRIPTURE_PERIPHERAL 0 //Should never be used
|
||||
#define SCRIPTURE_PERIPHERAL 0 //Scripture tiers; peripherals should never be used
|
||||
#define SCRIPTURE_DRIVER 1
|
||||
#define SCRIPTURE_SCRIPT 2
|
||||
#define SCRIPTURE_APPLICATION 3
|
||||
#define SCRIPTURE_REVENANT 4
|
||||
#define SCRIPTURE_JUDGEMENT 5
|
||||
|
||||
#define SLAB_PRODUCTION_THRESHOLD 60 //How many cycles it takes slabs to produce a single component; defaults to one minute
|
||||
#define SLAB_PRODUCTION_THRESHOLD 60 //How many cycles slabs require to produce a single component; defaults to one minute
|
||||
|
||||
#define GATEWAY_SUMMON_RATE 3 //The speed multiplier used by the Gateway to the Celestial Derelict; defaults to 3x speed
|
||||
|
||||
@@ -63,6 +63,7 @@ This file's folder contains:
|
||||
M.visible_message("<span class='heavy_brass'>[M]'s eyes glow a blazing yellow!</span>", \
|
||||
"<span class='heavy_brass'>Assist your new companions in their righteous efforts. Your goal is theirs, and theirs yours. You serve the Clockwork Justiciar above all else. Perform his every \
|
||||
whim without hesitation.</span>")
|
||||
M.faction += "ratvar"
|
||||
ticker.mode.servants_of_ratvar += M.mind
|
||||
ticker.mode.update_servant_icons_added(M.mind)
|
||||
M.mind.special_role = "Servant of Ratvar"
|
||||
@@ -90,6 +91,7 @@ This file's folder contains:
|
||||
ticker.mode.servants_of_ratvar -= M.mind
|
||||
ticker.mode.update_servant_icons_removed(M.mind)
|
||||
all_clockwork_mobs -= M
|
||||
M.faction -= "ratvar"
|
||||
M.mind.memory = "" //Not sure if there's a better way to do this
|
||||
M.mind.special_role = null
|
||||
M.verbs -= /mob/living/carbon/human/proc/function_call //Removes any bound Ratvarian spears
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/mob/living/simple_animal/hostile/anima_fragment //Anima fragment: Low health but high melee power. Created by inserting a soul vessel into an empty fragment.
|
||||
name = "anima fragment"
|
||||
desc = "An ominous humanoid shell with a spinning cogwheel as its head, lifted by a jet of blazing red flame."
|
||||
faction = list("ratvar")
|
||||
icon = 'icons/mob/clockwork_mobs.dmi'
|
||||
icon_state = "anime_fragment"
|
||||
health = 75 //Glass cannon
|
||||
@@ -34,6 +35,8 @@
|
||||
qdel(src)
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/clockwork_marauder //Clockwork marauder: Slow but with high damage, resides inside of a servant. Created via the Memory Allocation scripture.
|
||||
name = "clockwork marauder"
|
||||
desc = "A stalwart apparition of a soldier, blazing with crimson flames. It's armed with a gladius and shield."
|
||||
@@ -271,6 +274,8 @@
|
||||
/mob/living/simple_animal/hostile/clockwork_marauder/proc/is_in_host() //Checks if the marauder is inside of their host
|
||||
return host && loc == host
|
||||
|
||||
|
||||
|
||||
/mob/living/mind_control_holder
|
||||
name = "imprisoned mind"
|
||||
desc = "A helpless mind, imprisoned in its own body."
|
||||
|
||||
@@ -52,7 +52,6 @@
|
||||
icon_state = "clockwork_gateway_disrupted"
|
||||
takes_damage = FALSE
|
||||
sleep(27)
|
||||
animate(src, transform = matrix() * 2, time = 2)
|
||||
explosion(src, 1, 3, 8, 8)
|
||||
qdel(src)
|
||||
return 1
|
||||
@@ -66,7 +65,7 @@
|
||||
M << "<span class='warning'><b>You hear otherworldly sounds from the [dir2text(get_dir(get_turf(M), get_turf(src)))]...</span>"
|
||||
if(!health)
|
||||
return 0
|
||||
progress_in_seconds++
|
||||
progress_in_seconds += GATEWAY_SUMMON_RATE
|
||||
switch(progress_in_seconds)
|
||||
if(-INFINITY to 100)
|
||||
if(!first_sound_played)
|
||||
@@ -87,9 +86,11 @@
|
||||
if(!purpose_fulfilled)
|
||||
takes_damage = FALSE
|
||||
purpose_fulfilled = TRUE
|
||||
animate(src, transform = matrix() * 1.5, time = 136)
|
||||
animate(src, transform = matrix() * 1.5, alpha = 255, time = 126)
|
||||
world << sound('sound/effects/ratvar_rises.ogg', 0, channel = 8) //End the sounds
|
||||
sleep(136)
|
||||
sleep(131)
|
||||
animate(src, transform = matrix() * 3, alpha = 0, time = 5)
|
||||
sleep(5)
|
||||
new/obj/structure/clockwork/massive/ratvar(get_turf(src))
|
||||
qdel(src)
|
||||
|
||||
@@ -98,8 +99,8 @@
|
||||
if(is_servant_of_ratvar(user))
|
||||
var/arrival_text = "IMMINENT"
|
||||
if(300 - progress_in_seconds > 0)
|
||||
arrival_text = "[max(300 - progress_in_seconds, 0)]s"
|
||||
user << "<span class='big'><b>Seconds until Ratvar's arrival:</b> [arrival_text]</span>"
|
||||
arrival_text = "[max((300 - progress_in_seconds) / GATEWAY_SUMMON_RATE, 0)]"
|
||||
user << "<span class='big'><b>Seconds until Ratvar's arrival:</b> [arrival_text]s</span>"
|
||||
switch(progress_in_seconds)
|
||||
if(-INFINITY to 100)
|
||||
user << "<span class='heavy_brass'>It's still opening.</span>"
|
||||
@@ -131,7 +132,8 @@
|
||||
/obj/structure/clockwork/massive/ratvar/New()
|
||||
..()
|
||||
SSobj.processing += src
|
||||
world << "<span class='heavy_brass'><font size=15>\"I AM FREE!\"</font></span>"
|
||||
world << "<span class='heavy_brass'><font size=7>\"BAPR NTNVA ZL YVTUG FUNYY FUVAR NPEBFF GUVF CNGURGVP ERNYZ!!\"</font></span>"
|
||||
world << 'sound/effects/ratvar_reveal.ogg'
|
||||
ratvar_awakens = TRUE
|
||||
spawn(50)
|
||||
SSshuttle.emergency.request(null, 0.3)
|
||||
@@ -168,8 +170,7 @@
|
||||
<span class='userdanger'>You feel tremendous relief as a set of horrible eyes loses sight of you...</span>"
|
||||
prey = null
|
||||
else
|
||||
if(prob(75))
|
||||
dir_to_step_in = get_dir(src, prey)
|
||||
dir_to_step_in = get_dir(src, prey) //Unlike Nar-Sie, Ratvar ruthlessly chases down his target
|
||||
forceMove(get_step(src, dir_to_step_in))
|
||||
|
||||
/obj/structure/clockwork/massive/ratvar/narsie_act()
|
||||
@@ -178,13 +179,13 @@
|
||||
clashing = TRUE
|
||||
world << "<span class='heavy_brass'><font size=5>\"[pick("BLOOD GOD!!!", "NAR-SIE!!!", "AT LAST, YOUR TIME HAS COME!")]\"</font></span>"
|
||||
world << "<span class='cult'><font size=5>\"<b>Ratvar?! How?!</b>\"</font></span>"
|
||||
for(var/obj/singularity/narsie/N in range(7, src))
|
||||
for(var/obj/singularity/narsie/N in range(15, src))
|
||||
clash_of_the_titans(N) //IT'S TIME FOR THE BATTLE OF THE AGES
|
||||
N.clashing = TRUE
|
||||
break
|
||||
return 1
|
||||
|
||||
/obj/structure/clockwork/massive/ratvar/proc/clash_of_the_titans(obj/singularity/narsie/narsie) //IT'S TIME FOR A BATTLE OF THE ELDER GODS
|
||||
/obj/structure/clockwork/massive/ratvar/proc/clash_of_the_titans(obj/singularity/narsie/narsie)
|
||||
var/winner = "Undeclared"
|
||||
var/base_victory_chance = 0
|
||||
while(TRUE)
|
||||
@@ -249,5 +250,5 @@
|
||||
|
||||
/mob/dead/observer/ratvar_act() //Ghosts flash yellow for a second
|
||||
var/old_color = color
|
||||
color = rgb(75, 53, 0) //A nice brassy yellow
|
||||
color = rgb(75, 53, 0)
|
||||
animate(src, color = old_color, time = 10)
|
||||
|
||||
@@ -97,9 +97,6 @@
|
||||
usr.verbs -= /mob/living/carbon/human/proc/function_call
|
||||
return 1
|
||||
|
||||
/datum/clockwork_cache //The global cache datum, used to link together all tinkerer's caches
|
||||
var/list/stored_components = list("belligerent_eye" = 0, "vanguard_cogwheel" = 0, "guvax_capacitor" = 0, "replicant_alloy" = 0, "hierophant_ansible" = 0)
|
||||
|
||||
/*
|
||||
|
||||
The Ratvarian Language
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
action_icon_state = "floorconstruct"
|
||||
action_background_icon_state = "bg_cult"
|
||||
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/conjure/wall
|
||||
name = "Summon Cult Wall"
|
||||
desc = "This spell constructs a cult wall"
|
||||
@@ -38,6 +39,7 @@
|
||||
|
||||
summon_type = list(/turf/closed/wall/mineral/cult/artificer) //we don't want artificer-based runed metal farms
|
||||
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/conjure/wall/reinforced
|
||||
name = "Greater Construction"
|
||||
desc = "This spell constructs a reinforced metal wall"
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user