Merge pull request #13055 from Anonus/actionbuttons

Gives constructs action buttons, adds cool effects to cult turfs.
This commit is contained in:
Remie Richards
2015-11-18 20:26:47 +00:00
15 changed files with 89 additions and 42 deletions
@@ -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")
+8 -6
View File
@@ -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