mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-19 02:59:17 +01:00
* Starting on the rework * Reworks the Ark * Work on Reebe * More Ark stuff * this too * Removes ark silliness, remaps Reebe a tad * Spawning mechanics * Work on gamemode code * Finishes up ark stuff * Removes Judgement, and lots of other changes * New Ark activation sounds, Ratvar text * Spawn protection! * Adds the abscondence bijou * Bijou stuff * well, this is it * somewhat absentminded coder * Remaps the Reebe z * replica fabricators now work! * Guide paper! * Now they're clockwork floors * Infirmary, tweaks, numbers * A new thing! * this is ok for now * I was gonna whine but it's actually necessary * Adds damage scaling to ocular wardens * I missed a thing * you can go back too * New clockwork armor sprites * Weapons, scripture, oh my! * no! shoo! * hey, I forgot about you! * this looks much better, I'll give you that * no teleporting into the void! * we have no need of you anymore * Conflicteroos * AUTOMATIC SPINNING CHAIRS * how many times do we have to teach you this LESSON OLD MAN * flagged! * last time, meesa promise * Conflicts 1 * wood filling * Kindle is a projectile, and other stuff * Chameleon jumpsuit, some small changes * 150 hours of testing * Curious is the trapmaker's art * Conflicts 1 * naaah * Fixes an ark sound * Removes the prolonging prism * Adds a delay to warping in * First steps towards changing the power system * Removes power from sigils, moves to global * Conflicts 1 * zoom zoom * Adds the stargazer, re-adds conversion * conflicts? more like CLOCK-flicts * get it? clockflicts? * Daemon tuning * Scraps components, 1/? * A grace period, among other things * You can't get to reebe from space no stop bad * Adds some cogscarab shells to Reebe - yes, I get the sounds * FUCK * Chairs are very important. * Clock golems, sound improvement, intercoms * Sounds, floor fixes, conflicts * Fixes the conflicts * Prevents intercom use during non-clock rounds * Wiki, HUD timer, tweaks, golems * Components, removes unused structures, rep. fab power * go-time * Ending the round is not a good idea * whoops, forgot about you * ssh is ok * this works too
67 lines
2.7 KiB
Plaintext
67 lines
2.7 KiB
Plaintext
#define STARGAZER_RANGE 3 //How many tiles the stargazer can see out to
|
|
#define STARGAZER_POWER 20 //How many watts will be produced per second when the stargazer sees starlight
|
|
|
|
//Stargazer: A very fragile but cheap generator that creates power from starlight.
|
|
/obj/structure/destructible/clockwork/stargazer
|
|
name = "stargazer"
|
|
desc = "A large lantern-shaped machine made of thin brass. It looks fragile."
|
|
clockwork_desc = "A lantern-shaped generator that produces power when near starlight."
|
|
icon_state = "stargazer"
|
|
unanchored_icon = "stargazer_unwrenched"
|
|
max_integrity = 40
|
|
construction_value = 5
|
|
layer = WALL_OBJ_LAYER
|
|
break_message = "<span class='warning'>The stargazer's fragile body shatters into pieces!</span>"
|
|
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
|
light_color = "#DAAA18"
|
|
var/star_light_star_bright = FALSE //If this stargazer can see starlight
|
|
|
|
/obj/structure/destructible/clockwork/stargazer/Initialize()
|
|
. = ..()
|
|
START_PROCESSING(SSprocessing, src)
|
|
|
|
/obj/structure/destructible/clockwork/stargazer/Destroy()
|
|
STOP_PROCESSING(SSprocessing, src)
|
|
. = ..()
|
|
|
|
/obj/structure/destructible/clockwork/stargazer/examine(mob/user)
|
|
..()
|
|
if(is_servant_of_ratvar(user))
|
|
to_chat(user, "<span class='nzcrentr_small'>Generates <b>[DisplayPower(STARGAZER_POWER)]</b> per second while viewing starlight within [STARGAZER_RANGE] tiles.</span>")
|
|
if(star_light_star_bright)
|
|
to_chat(user, "[is_servant_of_ratvar(user) ? "<span class='nzcrentr_small'>It can see starlight!</span>" : "It's shining brilliantly!"]")
|
|
|
|
/obj/structure/destructible/clockwork/stargazer/process()
|
|
star_light_star_bright = check_starlight()
|
|
if(star_light_star_bright)
|
|
adjust_clockwork_power(STARGAZER_POWER)
|
|
|
|
/obj/structure/destructible/clockwork/stargazer/update_anchored(mob/living/user, damage)
|
|
. = ..()
|
|
star_light_star_bright = check_starlight()
|
|
|
|
/obj/structure/destructible/clockwork/stargazer/proc/check_starlight()
|
|
var/old_status = star_light_star_bright
|
|
var/has_starlight
|
|
if(!anchored)
|
|
has_starlight = FALSE
|
|
else
|
|
for(var/turf/T in view(3, src))
|
|
if(isspaceturf(T))
|
|
has_starlight = TRUE
|
|
break
|
|
if(old_status != has_starlight)
|
|
if(has_starlight)
|
|
visible_message("<span class='nzcrentr_small'>[src] hums and shines brilliantly!</span>")
|
|
playsound(src, 'sound/machines/clockcult/stargazer_activate.ogg', 50, TRUE)
|
|
add_overlay("stargazer_light")
|
|
set_light(1.5, 5)
|
|
else
|
|
if(anchored) //We lost visibility somehow
|
|
visible_message("<span class='danger'>[src] flickers, and falls dark.</span>")
|
|
else
|
|
visible_message("<span class='danger'>[src] whooshes quietly as it slides into a less bulky form.</span>")
|
|
cut_overlays()
|
|
set_light(0)
|
|
return has_starlight
|