mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-19 20:15:47 +01:00
Merge pull request #13055 from Anonus/actionbuttons
Gives constructs action buttons, adds cool effects to cult turfs.
This commit is contained in:
@@ -27,7 +27,7 @@
|
||||
/mob/living/simple_animal/construct/New()
|
||||
..()
|
||||
for(var/spell in construct_spells)
|
||||
mob_spell_list += new spell(src)
|
||||
AddSpell(new spell(null))
|
||||
|
||||
/mob/living/simple_animal/construct/death()
|
||||
..(1)
|
||||
@@ -165,10 +165,10 @@
|
||||
speed = 0
|
||||
environment_smash = 2
|
||||
attack_sound = 'sound/weapons/punch2.ogg'
|
||||
construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser,
|
||||
/obj/effect/proc_holder/spell/aoe_turf/conjure/wall,
|
||||
construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/wall,
|
||||
/obj/effect/proc_holder/spell/aoe_turf/conjure/floor,
|
||||
/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone,
|
||||
/obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser,
|
||||
/obj/effect/proc_holder/spell/targeted/projectile/magic_missile/lesser)
|
||||
playstyle_string = "<B>You are an Artificer. You are incredibly weak and fragile, but you are able to construct fortifications, \
|
||||
use magic missile, repair allied constructs (by clicking on them), \
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(4, 0, L)
|
||||
s.start()
|
||||
new/obj/effect/overlay/temp/revenant(L.loc)
|
||||
PoolOrNew(/obj/effect/overlay/temp/revenant, L.loc)
|
||||
sleep(20)
|
||||
if(!L.on) //wait, wait, don't shock me
|
||||
return
|
||||
@@ -137,19 +137,19 @@
|
||||
spawn(0)
|
||||
if(T.flags & NOJAUNT)
|
||||
T.flags -= NOJAUNT
|
||||
new/obj/effect/overlay/temp/revenant(T)
|
||||
if(istype(T, /turf/simulated/floor) && !istype(T, /turf/simulated/floor/plating) && prob(15))
|
||||
PoolOrNew(/obj/effect/overlay/temp/revenant, T)
|
||||
if(!istype(T, /turf/simulated/floor/plating) && !istype(T, /turf/simulated/floor/engine/cult) && istype(T, /turf/simulated/floor) && prob(15))
|
||||
var/turf/simulated/floor/floor = T
|
||||
if(floor.intact)
|
||||
floor.builtin_tile.loc = floor
|
||||
floor.broken = 0
|
||||
floor.burnt = 0
|
||||
floor.make_plating(1)
|
||||
if(!istype(T, /turf/simulated/wall/shuttle) && !istype(T, /turf/simulated/wall/rust) && !istype(T, /turf/simulated/wall/r_wall) && istype(T, /turf/simulated/wall) && prob(15))
|
||||
new/obj/effect/overlay/temp/revenant(T)
|
||||
if(!istype(T, /turf/simulated/wall/shuttle) && !istype(T, /turf/simulated/wall/cult) && !istype(T, /turf/simulated/wall/rust) && !istype(T, /turf/simulated/wall/r_wall) && istype(T, /turf/simulated/wall) && prob(15))
|
||||
PoolOrNew(/obj/effect/overlay/temp/revenant, T)
|
||||
T.ChangeTurf(/turf/simulated/wall/rust)
|
||||
if(!istype(T, /turf/simulated/wall/r_wall/rust) && istype(T, /turf/simulated/wall/r_wall) && prob(15))
|
||||
new/obj/effect/overlay/temp/revenant(T)
|
||||
PoolOrNew(/obj/effect/overlay/temp/revenant, T)
|
||||
T.ChangeTurf(/turf/simulated/wall/r_wall/rust)
|
||||
for(var/obj/structure/closet/closet in T.contents)
|
||||
closet.open()
|
||||
@@ -161,7 +161,7 @@
|
||||
for(var/obj/structure/window/window in T.contents)
|
||||
window.hit(rand(50,90))
|
||||
if(window && window.fulltile)
|
||||
new/obj/effect/overlay/temp/revenant/cracks(window.loc)
|
||||
PoolOrNew(/obj/effect/overlay/temp/revenant/cracks, window.loc)
|
||||
for(var/obj/machinery/light/light in T.contents)
|
||||
light.flicker(20) //spooky
|
||||
|
||||
@@ -182,7 +182,7 @@
|
||||
spawn(0)
|
||||
for(var/obj/machinery/bot/bot in T.contents)
|
||||
if(!bot.emagged)
|
||||
new/obj/effect/overlay/temp/revenant(bot.loc)
|
||||
PoolOrNew(/obj/effect/overlay/temp/revenant, bot.loc)
|
||||
bot.locked = 0
|
||||
bot.open = 1
|
||||
bot.Emag(null)
|
||||
@@ -190,21 +190,21 @@
|
||||
if(human == user)
|
||||
continue
|
||||
human << "<span class='revenwarning'>You feel [pick("your sense of direction flicker out", "a stabbing pain in your head", "your mind fill with static")].</span>"
|
||||
new/obj/effect/overlay/temp/revenant(human.loc)
|
||||
PoolOrNew(/obj/effect/overlay/temp/revenant, human.loc)
|
||||
human.emp_act(1)
|
||||
for(var/obj/thing in T.contents)
|
||||
if(istype(thing, /obj/machinery/dominator) || istype(thing, /obj/machinery/power/apc) || istype(thing, /obj/machinery/power/smes) || istype(thing, /obj/machinery/bot)) //Doesn't work on dominators, SMES and APCs, to prevent kekkery
|
||||
continue
|
||||
if(prob(20))
|
||||
if(prob(50))
|
||||
new/obj/effect/overlay/temp/revenant(thing.loc)
|
||||
PoolOrNew(/obj/effect/overlay/temp/revenant, thing.loc)
|
||||
thing.emag_act(null)
|
||||
else
|
||||
if(!istype(thing, /obj/machinery/clonepod)) //I hate everything but mostly the fact there's no better way to do this without just not affecting it at all
|
||||
thing.emp_act(1)
|
||||
for(var/mob/living/silicon/robot/S in T.contents) //Only works on cyborgs, not AI
|
||||
playsound(S, 'sound/machines/warning-buzzer.ogg', 50, 1)
|
||||
new/obj/effect/overlay/temp/revenant(S.loc)
|
||||
PoolOrNew(/obj/effect/overlay/temp/revenant, S.loc)
|
||||
S.spark_system.start()
|
||||
S.emp_act(1)
|
||||
|
||||
@@ -225,7 +225,7 @@
|
||||
for(var/mob/living/mob in T.contents)
|
||||
if(mob == user)
|
||||
continue
|
||||
new/obj/effect/overlay/temp/revenant(mob.loc)
|
||||
PoolOrNew(/obj/effect/overlay/temp/revenant, mob.loc)
|
||||
if(iscarbon(mob))
|
||||
if(ishuman(mob))
|
||||
var/mob/living/carbon/human/H = mob
|
||||
@@ -253,18 +253,18 @@
|
||||
mob.adjustToxLoss(5)
|
||||
for(var/obj/effect/spacevine/vine in T.contents) //Fucking with botanists, the ability.
|
||||
vine.color = "#823abb"
|
||||
new/obj/effect/overlay/temp/revenant(vine.loc)
|
||||
PoolOrNew(/obj/effect/overlay/temp/revenant, vine.loc)
|
||||
spawn(20)
|
||||
if(vine)
|
||||
qdel(vine)
|
||||
for(var/obj/effect/glowshroom/shroom in T.contents)
|
||||
shroom.color = "#823abb"
|
||||
new/obj/effect/overlay/temp/revenant(shroom.loc)
|
||||
PoolOrNew(/obj/effect/overlay/temp/revenant, shroom.loc)
|
||||
spawn(20)
|
||||
if(shroom)
|
||||
qdel(shroom)
|
||||
for(var/obj/machinery/hydroponics/tray in T.contents)
|
||||
new/obj/effect/overlay/temp/revenant(tray.loc)
|
||||
PoolOrNew(/obj/effect/overlay/temp/revenant, tray.loc)
|
||||
tray.pestlevel = rand(8, 10)
|
||||
tray.weedlevel = rand(8, 10)
|
||||
tray.toxic = rand(45, 55)
|
||||
@@ -23,11 +23,11 @@
|
||||
affected_mob << "<span class='revennotice'>You suddenly feel [pick("sick and tired", "disoriented", "tired and confused", "nauseated", "faint", "dizzy")]...</span>"
|
||||
affected_mob.confused += 10
|
||||
affected_mob.adjustStaminaLoss(10)
|
||||
new/obj/effect/overlay/temp/revenant(affected_mob.loc)
|
||||
PoolOrNew(/obj/effect/overlay/temp/revenant, affected_mob.loc)
|
||||
if(stagedamage < stage)
|
||||
stagedamage++
|
||||
affected_mob.adjustToxLoss(stage*3) //should, normally, do about 45 toxin damage.
|
||||
new/obj/effect/overlay/temp/revenant(affected_mob.loc)
|
||||
PoolOrNew(/obj/effect/overlay/temp/revenant, affected_mob.loc)
|
||||
..() //So we don't increase a stage before applying the stage damage.
|
||||
switch(stage)
|
||||
if(2)
|
||||
@@ -44,7 +44,7 @@
|
||||
if(5)
|
||||
affected_mob << "<span class='revenbignotice'>You feel like [pick("nothing's worth it anymore", "nobody ever needed your help", "nothing you did mattered", "everything you tried to do was worthless")].</span>"
|
||||
affected_mob.adjustStaminaLoss(45)
|
||||
new/obj/effect/overlay/temp/revenant(affected_mob.loc)
|
||||
PoolOrNew(/obj/effect/overlay/temp/revenant, affected_mob.loc)
|
||||
if(affected_mob.dna && affected_mob.dna.species)
|
||||
affected_mob.dna.species.handle_mutant_bodyparts(affected_mob,"#1d2953")
|
||||
affected_mob.dna.species.handle_hair(affected_mob,"#1d2953")
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
/obj/singularity/narsie/large/New()
|
||||
..()
|
||||
world << "<font size='15' color='red'><b>NAR-SIE HAS RISEN</b></font>"
|
||||
world << "<span class='narsie'>NAR-SIE HAS RISEN</span>"
|
||||
world << pick('sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg')
|
||||
|
||||
var/area/A = get_area(src)
|
||||
@@ -75,7 +75,7 @@
|
||||
for(var/mob/living/carbon/M in oviewers(8, src))
|
||||
if(M.stat == CONSCIOUS)
|
||||
if(!iscultist(M))
|
||||
M << "<span class='warning'>You feel conscious thought crumble away in an instant as you gaze upon [src.name]...</span>"
|
||||
M << "<span class='cultsmall'>You feel conscious thought crumble away in an instant as you gaze upon [src.name]...</span>"
|
||||
M.apply_effect(3, STUN)
|
||||
|
||||
|
||||
@@ -122,12 +122,14 @@
|
||||
|
||||
|
||||
/obj/singularity/narsie/proc/acquire(mob/food)
|
||||
target << "<span class='notice'>NAR-SIE HAS LOST INTEREST IN YOU</span>"
|
||||
if(food == target)
|
||||
return
|
||||
target << "<span class='cultsmall'>NAR-SIE HAS LOST INTEREST IN YOU.</span>"
|
||||
target = food
|
||||
if(ishuman(target))
|
||||
target << "<span class ='userdanger'>NAR-SIE HUNGERS FOR YOUR SOUL</span>"
|
||||
if(isliving(target))
|
||||
target << "<span class ='cult'>NAR-SIE HUNGERS FOR YOUR SOUL.</span>"
|
||||
else
|
||||
target << "<span class ='userdanger'>NAR-SIE HAS CHOSEN YOU TO LEAD HIM TO HIS NEXT MEAL</span>"
|
||||
target << "<span class ='cult'>NAR-SIE HAS CHOSEN YOU TO LEAD HER TO HER NEXT MEAL.</span>"
|
||||
|
||||
//Wizard narsie
|
||||
/obj/singularity/narsie/wizard
|
||||
|
||||
Reference in New Issue
Block a user