Merge pull request #3 from CornMyCob/turfs

Stuff
This commit is contained in:
Mark van Alphen
2019-04-03 22:28:17 +02:00
committed by GitHub
8 changed files with 213 additions and 20 deletions
+1 -1
View File
@@ -599,7 +599,7 @@ BLIND // can't see anything
.=1
else
return 0
if(accessories.len && (A.slot in list("utility","armband")))
if(accessories.len && (A.slot in list("utility","armband","skullcodpiece","talisman")))
for(var/obj/item/clothing/accessory/AC in accessories)
if(AC.slot == A.slot)
return 0
+1
View File
@@ -67,6 +67,7 @@
desc = "A military-grade gas mask that can be connected to an air supply."
icon_state = "gas_mining"
actions_types = list(/datum/action/item_action/adjust)
armor = list("melee" = 10, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 0, "bio" = 50, "rad" = 0)
resistance_flags = FIRE_PROOF
/obj/item/clothing/mask/gas/explorer/attack_self(mob/user)
@@ -391,6 +391,8 @@
icon_state = "skull"
item_state = "skull"
item_color = "skull"
slot = "skullcodpiece"
armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 20, "bio" = 20, "rad" = 5)
/obj/item/clothing/accessory/necklace/talisman
name = "bone talisman"
@@ -398,6 +400,8 @@
icon_state = "talisman"
item_state = "talisman"
item_color = "talisman"
slot = "talisman"
armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 20, "bio" = 20, "rad" = 5)
/obj/item/clothing/accessory/necklace/locket
name = "gold locket"
@@ -77,5 +77,65 @@
stat_attack = 1
flying = TRUE
robust_searching = 1
var/fromtendril = FALSE
loot = list()
butcher_results = list(/obj/item/stack/ore/diamond = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 1)
butcher_results = list(/obj/item/stack/ore/diamond = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 1)
/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/Initialize()
. = ..()
if(prob(1))
if(prob(75))
new /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/magmawing(loc)
else
new /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing(loc)
return INITIALIZE_HINT_QDEL
/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/magmawing
name = "magmawing watcher"
desc = "When raised very close to lava, some watchers adapt to the extreme heat and use lava as both a weapon and wings."
icon_state = "watcher_magmawing"
icon_living = "watcher_magmawing"
icon_aggro = "watcher_magmawing"
icon_dead = "watcher_magmawing_dead"
maxHealth = 215 //Compensate for the lack of slowdown on projectiles with a bit of extra health
health = 215
light_range = 3
light_power = 2.5
light_color = LIGHT_COLOR_ORANGE
projectiletype = /obj/item/projectile/temp/basilisk/magmawing
/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing
name = "icewing watcher"
desc = "Very rarely, some watchers will eke out an existence far from heat sources. In the absence of warmth, they become icy and fragile but fire much stronger freezing blasts."
icon_state = "watcher_icewing"
icon_living = "watcher_icewing"
icon_aggro = "watcher_icewing"
icon_dead = "watcher_icewing_dead"
maxHealth = 170
health = 170
projectiletype = /obj/item/projectile/temp/basilisk/icewing
butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/bone = 1) //No sinew; the wings are too fragile to be usable
/obj/item/projectile/temp/basilisk/magmawing
name = "scorching blast"
icon_state = "lava"
damage = 5
damage_type = BURN
nodamage = FALSE
temperature = 500 //Heats you up!
/obj/item/projectile/temp/basilisk/magmawing/on_hit(atom/target, blocked = FALSE)
. = ..()
if(.)
var/mob/living/L = target
if (istype(L))
L.adjust_fire_stacks(0.1)
L.IgniteMob()
/obj/item/projectile/temp/basilisk/icewing
damage = 5
damage_type = BURN
nodamage = FALSE
/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/tendril
fromtendril = TRUE
@@ -218,7 +218,7 @@
// 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."
desc = "You can still see what was once a person under the shifting mass of corruption."
icon = 'icons/mob/lavaland/lavaland_monsters.dmi'
icon_state = "legion"
icon_living = "legion"
@@ -236,20 +236,45 @@
del_on_death = 1
stat_attack = 1
robust_searching = 1
var/fromtendril = FALSE
var/dwarf_mob = FALSE
var/mob/living/carbon/human/stored_mob
/mob/living/simple_animal/hostile/asteroid/hivelord/legion/Initialize()
. = ..()
if(prob(5))
new /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf(loc)
return INITIALIZE_HINT_QDEL
/mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf
name = "dwarf legion"
desc = "You can still see what was once a midget under the shifting mass of corruption."
icon_state = "dwarf_legion"
icon_living = "dwarf_legion"
icon_aggro = "dwarf_legion"
icon_dead = "dwarf_legion"
maxHealth = 60
health = 60
speed = 2 //faster!
dwarf_mob = TRUE
/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril
fromtendril = TRUE
/mob/living/simple_animal/hostile/asteroid/hivelord/legion/death(gibbed)
if(can_die())
visible_message("<span class='warning'>The skulls on [src] wail in anger as they flee from their dying host!</span>")
var/turf/T = get_turf(src)
if(T)
if(stored_mob)
stored_mob.forceMove(get_turf(src))
stored_mob = null
else
new /obj/effect/mob_spawn/human/corpse/charredskeleton(T)
// due to `del_on_death`
return ..(gibbed)
visible_message("<span class='warning'>The skulls on [src] wail in anger as they flee from their dying host!</span>")
var/turf/T = get_turf(src)
if(T)
if(stored_mob)
stored_mob.forceMove(get_turf(src))
stored_mob = null
else if(fromtendril)
new /obj/effect/mob_spawn/human/corpse/charredskeleton(T)
else if(dwarf_mob)
new /obj/effect/mob_spawn/human/corpse/damaged/legioninfested/dwarf(T)
else
new /obj/effect/mob_spawn/human/corpse/damaged/legioninfested(T)
..(gibbed)
/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion
@@ -286,8 +311,12 @@
/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/proc/infest(mob/living/carbon/human/H)
visible_message("<span class='warning'>[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>")
var/mob/living/simple_animal/hostile/asteroid/hivelord/legion/L
if(H.dna.GetSEState(DWARF)) //dwarf legions aren't just fluff!
L = new /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf(H.loc)
else
L = new(H.loc)
visible_message("<span class='warning'>[L] staggers to [L.p_their()] feet!</span>")
H.death()
H.adjustBruteLoss(1000)
L.stored_mob = H
@@ -337,3 +366,102 @@
husk = FALSE
mob_species = /datum/species/skeleton
mob_color = "#454545"
//Legion infested mobs
/obj/effect/mob_spawn/human/corpse/damaged/legioninfested/dwarf/equip(mob/living/carbon/human/H)
. = ..()
H.dna.SetSEState(DWARF, 1)
H.update_mutations()
/obj/effect/mob_spawn/human/corpse/damaged/legioninfested/Initialize()
var/type = pickweight(list("Miner" = 66, "Ashwalker" = 10, "Golem" = 10,"Clown" = 10, pick(list("Shadow", "YeOlde","Operative", "Cultist")) = 4))
switch(type)
if("Miner")
mob_species = pickweight(list(/datum/species/human = 72, /datum/species/unathi = 28))
uniform = /obj/item/clothing/under/rank/miner/lavaland
if (prob(4))
belt = /obj/item/storage/belt/mining
else if(prob(10))
belt = pickweight(list(/obj/item/pickaxe = 8, /obj/item/pickaxe/silver = 2, /obj/item/pickaxe/diamond = 1))
else
belt = /obj/item/tank/emergency_oxygen/engi
if(mob_species != /datum/species/unathi)
shoes = /obj/item/clothing/shoes/workboots/mining
gloves = /obj/item/clothing/gloves/color/black
mask = /obj/item/clothing/mask/gas/explorer
if(prob(20))
suit = pickweight(list(/obj/item/clothing/suit/hooded/explorer = 18, /obj/item/clothing/suit/hooded/goliath = 2))
if(prob(30))
r_pocket = pickweight(list(/obj/item/stack/marker_beacon = 20, /obj/item/stack/spacecash/c1000 = 7, /obj/item/reagent_containers/hypospray/autoinjector/survival = 2, /obj/item/borg/upgrade/modkit/damage = 1 ))
if(prob(10))
l_pocket = pickweight(list(/obj/item/stack/spacecash/c1000 = 7, /obj/item/reagent_containers/hypospray/autoinjector/survival = 2, /obj/item/borg/upgrade/modkit/cooldown = 1 ))
if("Ashwalker")
mob_species = /datum/species/unathi/ashwalker
uniform = /obj/item/clothing/under/gladiator/ash_walker
if(prob(95))
head = /obj/item/clothing/head/helmet/gladiator
else
head = /obj/item/clothing/head/skullhelmet
suit = /obj/item/clothing/suit/armor/bone
if(prob(5))
back = pickweight(list(/obj/item/twohanded/spear/bonespear = 3, /obj/item/twohanded/fireaxe/boneaxe = 2))
if(prob(10))
belt = /obj/item/storage/belt/mining
if(prob(30))
r_pocket = /obj/item/kitchen/knife/combat/survival/bone
if(prob(30))
l_pocket = /obj/item/kitchen/knife/combat/survival/bone
if("Clown")
name = pick(GLOB.clown_names)
outfit = /datum/outfit/job/clown
belt = null
backpack_contents = list()
if(prob(70))
backpack_contents += pick(list(/obj/item/stamp/clown = 1, /obj/item/reagent_containers/spray/waterflower = 1, /obj/item/reagent_containers/food/snacks/grown/banana = 1, /obj/item/megaphone = 1))
if(prob(30))
backpack_contents += list(/obj/item/stack/sheet/mineral/bananium = pickweight(list( 1 = 3, 2 = 2, 3 = 1)))
if(prob(10))
l_pocket = pickweight(list(/obj/item/bikehorn/golden = 3, /obj/item/bikehorn/airhorn= 1 ))
if("Golem")
mob_species = pick(list(/datum/species/golem/adamantine, /datum/species/golem/plasma, /datum/species/golem/diamond, /datum/species/golem/gold, /datum/species/golem/silver, /datum/species/golem/plasteel, /datum/species/golem/titanium, /datum/species/golem/plastitanium))
if(prob(30))
glasses = pickweight(list(/obj/item/clothing/glasses/meson = 2, /obj/item/clothing/glasses/hud/health = 2, /obj/item/clothing/glasses/hud/diagnostic =2, /obj/item/clothing/glasses/science = 2, /obj/item/clothing/glasses/welding = 2, /obj/item/clothing/glasses/night = 1))
if(prob(10))
belt = pick(list(/obj/item/storage/belt/mining, /obj/item/storage/belt/utility/full))
if(prob(50))
neck = /obj/item/bedsheet/rd/royal_cape
if(prob(10))
l_pocket = pick(list(/obj/item/crowbar/power, /obj/item/wrench/power, /obj/item/weldingtool/experimental))
if("YeOlde")
mob_gender = FEMALE
uniform = /obj/item/clothing/under/maid
gloves = /obj/item/clothing/gloves/color/white
shoes = /obj/item/clothing/shoes/laceup
head = /obj/item/clothing/head/helmet/riot/knight
suit = /obj/item/clothing/suit/armor/riot/knight
back = /obj/item/shield/riot/buckler
belt = /obj/item/nullrod/claymore
r_pocket = /obj/item/tank/emergency_oxygen
mask = /obj/item/clothing/mask/breath
if("Operative")
id_job = "Operative"
outfit = /datum/outfit/syndicatecommandocorpse
if("Shadow")
mob_species = /datum/species/shadow
uniform = /obj/item/clothing/under/color/black
shoes = /obj/item/clothing/shoes/black
suit = /obj/item/clothing/suit/storage/labcoat
glasses = /obj/item/clothing/glasses/sunglasses/blindfold
back = /obj/item/tank/oxygen
mask = /obj/item/clothing/mask/breath
if("Cultist")
uniform = /obj/item/clothing/under/roman
suit = /obj/item/clothing/suit/hooded/cultrobes
head = /obj/item/clothing/head/culthood
suit_store = /obj/item/tome
r_pocket = /obj/item/restraints/legcuffs/bola/cult
l_pocket = /obj/item/melee/cultblade/dagger
glasses = /obj/item/clothing/glasses/hud/health/night
backpack_contents = list(/obj/item/reagent_containers/food/drinks/bottle/unholywater = 1, /obj/item/cult_shift = 1, /obj/item/flashlight/flare = 1, /obj/item/stack/sheet/runed_metal = 15)
. = ..()
@@ -12,7 +12,7 @@
maxHealth = 250
max_mobs = 3
spawn_time = 300 //30 seconds default
mob_type = /mob/living/simple_animal/hostile/asteroid/basilisk/watcher
mob_type = /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/tendril
spawn_text = "emerges from"
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
@@ -82,4 +82,4 @@
mob_type = /mob/living/simple_animal/hostile/asteroid/goliath/beast
/mob/living/simple_animal/hostile/spawner/lavaland/legion
mob_type = /mob/living/simple_animal/hostile/asteroid/hivelord/legion
mob_type = /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril