Lava Monsters

This commit is contained in:
KorPhaeron
2016-03-13 20:46:51 -05:00
parent 38778e19c1
commit 973b66edbb
4 changed files with 132 additions and 15 deletions
+3 -10
View File
@@ -310,11 +310,12 @@ var/global/list/rockTurfEdgeCache
/turf/simulated/floor/plating/asteroid/airless/cave
var/length = 100
var/mob_spawn_list = list("Goldgrub" = 1, "Goliath" = 5, "Basilisk" = 4, "Hivelord" = 3)
var/mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/goldgrub = 1, /mob/living/simple_animal/hostile/asteroid/goliath = 5, /mob/living/simple_animal/hostile/asteroid/basilisk = 4, /mob/living/simple_animal/hostile/asteroid/hivelord = 3)
var/sanity = 1
turf_type = /turf/simulated/floor/plating/asteroid/airless
/turf/simulated/floor/plating/asteroid/airless/cave/volcanic
mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/goldgrub = 1, /mob/living/simple_animal/hostile/asteroid/goliath/beast = 5, /mob/living/simple_animal/hostile/asteroid/basilisk/watcher = 4, /mob/living/simple_animal/hostile/asteroid/hivelord/legion = 3)
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
oxygen = 14
nitrogen = 23
@@ -399,15 +400,7 @@ var/global/list/rockTurfEdgeCache
if(istype(A, /mob/living/simple_animal/hostile/asteroid))
return
var/randumb = pickweight(mob_spawn_list)
switch(randumb)
if("Goliath")
new /mob/living/simple_animal/hostile/asteroid/goliath(T)
if("Goldgrub")
new /mob/living/simple_animal/hostile/asteroid/goldgrub(T)
if("Basilisk")
new /mob/living/simple_animal/hostile/asteroid/basilisk(T)
if("Hivelord")
new /mob/living/simple_animal/hostile/asteroid/hivelord(T)
new randumb(T)
return
/turf/simulated/mineral/attackby(obj/item/weapon/pickaxe/P, mob/user, params)
@@ -1,7 +1,6 @@
/mob/living/simple_animal/hostile/asteroid/
vision_range = 2
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
unsuitable_atmos_damage = 15
faction = list("mining")
environment_smash = 2
minbodytemp = 0
@@ -219,10 +218,11 @@
loot = list(/obj/item/organ/internal/hivelord_core)
var/next_brood = 0
var/brood_cooldown = 20
var/brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood
/mob/living/simple_animal/hostile/asteroid/hivelord/OpenFire(the_target)
if(world.time >= next_brood)
var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/A = new /mob/living/simple_animal/hostile/asteroid/hivelordbrood(src.loc)
var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/A = new brood_type(src.loc)
A.GiveTarget(target)
A.friends = friends
A.faction = faction
@@ -351,6 +351,7 @@
anchored = 1 //Stays anchored until death as to be unpullable
mob_size = MOB_SIZE_LARGE
var/pre_attack = 0
var/pre_attack_icon = "Goliath_preattack"
loot = list(/obj/item/asteroid/goliath_hide{layer = 4.1})
/mob/living/simple_animal/hostile/asteroid/goliath/Life()
@@ -362,7 +363,7 @@
pre_attack++
if(!pre_attack || stat || AIStatus == AI_IDLE)
return
icon_state = "Goliath_preattack"
icon_state = pre_attack_icon
/mob/living/simple_animal/hostile/asteroid/goliath/revive(full_heal = 0, admin_revive = 0)
if(..())
@@ -408,7 +409,7 @@
if(istype(turftype, /turf/simulated/mineral))
var/turf/simulated/mineral/M = turftype
M.gets_drilled()
spawn(20)
spawn(10)
Trip()
/obj/effect/goliath_tentacle/original
@@ -485,7 +486,6 @@
else if(bodytemperature > maxbodytemp)
adjustBruteLoss(20)
/mob/living/simple_animal/hostile/asteroid/fugu
name = "wumborian fugu"
desc = "The wumborian fugu rapidly increases its body mass in order to ward off its prey. Great care should be taken to avoid it while it's in this state as it is nearly invincible, but it cannot maintain its form forever."
@@ -611,3 +611,127 @@
A.environment_smash += 2
user << "<span class='info'>You increase the size of [A], giving it a surge of strength!</span>"
qdel(src)
/////////////////////Lavaland
//Watcher
/mob/living/simple_animal/hostile/asteroid/basilisk/watcher
name = "watcher"
desc = "Its stare causes victims to freeze from the inside."
icon = 'icons/mob/lavaland/watcher.dmi'
icon_state = "watcher"
icon_living = "watcher"
icon_aggro = "watcher"
icon_dead = "Basilisk_dead"
ranged_cooldown_cap = 20
throw_message = "bounces harmlessly off of"
vision_range = 5
melee_damage_lower = 15
melee_damage_upper = 15
attacktext = "stares into the soul of"
a_intent = "harm"
speak_emote = list("telepathically cries")
attack_sound = 'sound/weapons/bladeslice.ogg'
ranged_cooldown_cap = 3
aggro_vision_range = 9
idle_vision_range = 5
stat_attack = 1
robust_searching = 1
loot = list(/obj/item/weapon/ore/diamond{layer = 4.1},
/obj/item/weapon/ore/diamond{layer = 4.1})
//Goliath
/mob/living/simple_animal/hostile/asteroid/goliath/beast
name = "goliath"
desc = "A massive beast that uses long tentacles to ensare its prey, threatening them is not advised under any conditions."
icon = 'icons/mob/lavaland/lavaland_monsters.dmi'
icon_state = "goliath"
icon_living = "goliath"
icon_aggro = "goliath"
icon_dead = "goliath_dead"
throw_message = "does nothing to the touch hide of the"
pre_attack_icon = "goliath2"
loot = list(/obj/item/asteroid/goliath_hide{layer = 4.1})
stat_attack = 1
robust_searching = 1
//Legion
/mob/living/simple_animal/hostile/asteroid/hivelord/legion
name = "legion"
desc = "You can still see what was once a human under the shifting mass of corruption."
icon = 'icons/mob/lavaland/lavaland_monsters.dmi'
icon_state = "legion"
icon_living = "legion"
icon_aggro = "legion"
icon_dead = "legion"
icon_gib = "syndicate_gib"
melee_damage_lower = 15
melee_damage_upper = 15
attacktext = "lashes out at"
speak_emote = list("echoes")
attack_sound = 'sound/weapons/pierce.ogg'
throw_message = "bounces harmlessly off of"
loot = list(/obj/item/organ/internal/hivelord_core/legion)
brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion
del_on_death = 1
stat_attack = 1
robust_searching = 1
var/mob/living/carbon/human/stored_mob
/mob/living/simple_animal/hostile/asteroid/hivelord/legion/death(gibbed)
visible_message("<span class='warning'>[src] wails as in anger as they are driven from their form!</span>")
if(stored_mob)
stored_mob.loc = get_turf(src)
else
new /obj/effect/mob_spawn/human/corpse(get_turf(src))
..(gibbed)
/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion
name = "legion"
desc = "One of many."
icon = 'icons/mob/lavaland/lavaland_monsters.dmi'
icon_state = "legion_head"
icon_living = "legion_head"
icon_aggro = "legion_head"
icon_dead = "legion_head"
icon_gib = "syndicate_gib"
move_to_delay = 1
friendly = "buzzes near"
vision_range = 10
speed = 1
maxHealth = 1
health = 5
harm_intent_damage = 5
melee_damage_lower = 12
melee_damage_upper = 12
attacktext = "bites"
speak_emote = list("echoes")
attack_sound = 'sound/weapons/pierce.ogg'
throw_message = "is shrugged off by"
pass_flags = PASSTABLE
del_on_death = 1
stat_attack = 1
robust_searching = 1
/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/Life()
if(isturf(src.loc))
for(var/mob/living/carbon/human/H in view(src,1)) //Only for corpse right next to/on same tile
if(H.stat == UNCONSCIOUS)
visible_message("<span class='warning'>[src.name] burrows into the flesh of [H]!</span>")
var/mob/living/simple_animal/hostile/asteroid/hivelord/legion/L = new(H.loc)
visible_message("<span class='warning'>[L] staggers to their feet!</span>")
H.death()
L.stored_mob = H
H.loc = L
qdel(src)
..()
/obj/item/organ/internal/hivelord_core/legion
name = "legion's heart"
desc = "A demonic, still beating heart... its healing properties will soon become inert if not used quickly."
icon = 'icons/obj/surgery.dmi'
icon_state = "demon_heart"
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB