initial commit - cross reference with 5th port - obviously has compile errors

This commit is contained in:
LetterJay
2016-07-03 02:17:19 -05:00
commit 35a1723e98
4355 changed files with 2221257 additions and 0 deletions
+108
View File
@@ -0,0 +1,108 @@
//If you're looking for spawners like ash walker eggs, check ghost_role_spawners.dm
/obj/machinery/lavaland_controller
name = "weather control machine"
desc = "Controls the weather."
icon = 'icons/obj/machines/telecomms.dmi'
icon_state = "processor"
var/datum/weather/ongoing_weather = FALSE
var/weather_cooldown = 0
/obj/machinery/lavaland_controller/process()
if(ongoing_weather || weather_cooldown > world.time)
return
weather_cooldown = world.time + rand(3500, 6500)
var/datum/weather/ash_storm/LAVA
if(prob(10)) //10% chance for the ash storm to miss the area entirely
LAVA = new /datum/weather/ash_storm/false_alarm
else
LAVA = new /datum/weather/ash_storm
ongoing_weather = LAVA
LAVA.weather_start_up()
ongoing_weather = null
/obj/machinery/lavaland_controller/Destroy(force)
if(force)
. = ..()
else
return QDEL_HINT_LETMELIVE
/obj/structure/fans/tiny/invisible //For blocking air in ruin doorways
invisibility = INVISIBILITY_ABSTRACT
//lavaland_surface_seed_vault.dmm
//Seed Vault
/obj/effect/spawner/lootdrop/seed_vault
name = "seed vault seeds"
lootcount = 1
loot = list(/obj/item/seeds/gatfruit = 10,
/obj/item/seeds/cherry = 15,
/obj/item/seeds/berry/glow = 10,
/obj/item/seeds/sunflower/moonflower = 8
)
//Free Golems
/obj/item/weapon/disk/design_disk/golem_shell
name = "Golem Creation Disk"
desc = "A gift from the Liberator."
icon_state = "datadisk1"
/obj/item/weapon/disk/design_disk/golem_shell/New()
..()
var/datum/design/golem_shell/G = new
blueprint = G
/datum/design/golem_shell
name = "Golem Shell Construction"
desc = "Allows for the construction of a Golem Shell."
id = "golem"
req_tech = list("materials" = 12)
build_type = AUTOLATHE
materials = list(MAT_METAL = 40000)
build_path = /obj/item/golem_shell
category = list("Imported")
/obj/item/golem_shell
name = "incomplete golem shell"
icon = 'icons/obj/wizard.dmi'
icon_state = "construct"
desc = "The incomplete body of a golem. Add ten sheets of any mineral to finish."
/obj/item/golem_shell/attackby(obj/item/I, mob/user, params)
..()
var/species
if(istype(I, /obj/item/stack/sheet))
var/obj/item/stack/sheet/O = I
if(istype(O, /obj/item/stack/sheet/metal))
species = /datum/species/golem
if(istype(O, /obj/item/stack/sheet/mineral/plasma))
species = /datum/species/golem/plasma
if(istype(O, /obj/item/stack/sheet/mineral/diamond))
species = /datum/species/golem/diamond
if(istype(O, /obj/item/stack/sheet/mineral/gold))
species = /datum/species/golem/gold
if(istype(O, /obj/item/stack/sheet/mineral/silver))
species = /datum/species/golem/silver
if(istype(O, /obj/item/stack/sheet/mineral/uranium))
species = /datum/species/golem/uranium
if(species)
if(O.use(10))
user << "You finish up the golem shell with ten sheets of [O]."
var/obj/effect/mob_spawn/human/golem/G = new(get_turf(src))
G.mob_species = species
qdel(src)
else
user << "You need at least ten sheets to finish a golem."
else
user << "You can't build a golem out of this kind of material."
@@ -0,0 +1,39 @@
#define ASH_WALKER_SPAWN_THRESHOLD 2
//The ash walker den consumes corpses or unconscious mobs to create ash walker eggs. For more info on those, check ghost_role_spawners.dm
/mob/living/simple_animal/hostile/spawner/ash_walker
name = "ash walker nest"
desc = "A nest built around a necropolis tendril. The eggs seem to grow unnaturally fast..."
icon = 'icons/mob/nest.dmi'
icon_state = "ash_walker_nest"
icon_living = "ash_walker_nest"
faction = list("ashwalker")
health = 200
maxHealth = 200
loot = list(/obj/effect/gibspawner, /obj/item/device/assembly/signaler/anomaly)
del_on_death = 1
var/meat_counter
/mob/living/simple_animal/hostile/spawner/ash_walker/Life()
..()
if(!stat)
consume()
spawn_mob()
/mob/living/simple_animal/hostile/spawner/ash_walker/proc/consume()
for(var/mob/living/H in view(src,1)) //Only for corpse right next to/on same tile
if(H.stat)
visible_message("<span class='warning'>Serrated tendrils eagerly pull [H] to [src], tearing the body apart as its blood seeps over the eggs.</span>")
playsound(get_turf(src),'sound/magic/Demon_consume.ogg', 100, 1)
if(istype(H,/mob/living/simple_animal/hostile/megafauna/dragon))
meat_counter += 20
else
meat_counter ++
for(var/obj/item/W in H)
H.unEquip(W)
H.gib()
/mob/living/simple_animal/hostile/spawner/ash_walker/spawn_mob()
if(meat_counter >= ASH_WALKER_SPAWN_THRESHOLD)
new /obj/effect/mob_spawn/human/ash_walker(get_step(src.loc, SOUTH))
visible_message("<span class='danger'>One of the eggs swells to an unnatural size and tumbles free. It's ready to hatch!</span>")
meat_counter -= ASH_WALKER_SPAWN_THRESHOLD
@@ -0,0 +1,61 @@
//The necropolis gate is used to call forth Legion from the Necropolis.
/obj/structure/lavaland_door
name = "necropolis gate"
desc = "A tremendous and impossibly large gateway, bored into dense bedrock."
icon = 'icons/effects/96x96.dmi'
icon_state = "door"
anchored = 1
density = 1
opacity = 1
bound_width = 96
bound_height = 96
burn_state = LAVA_PROOF
luminosity = 1
var/boss = FALSE
var/is_anyone_home = FALSE
/obj/structure/lavaland_door/attack_hand(mob/user)
for(var/mob/living/simple_animal/hostile/megafauna/legion/L in mob_list)
return
if(is_anyone_home)
return
var/safety = alert(user, "You think this might be a bad idea...", "Knock on the door?", "Proceed", "Abort")
if(safety == "Abort" || !in_range(src, user) || !src || is_anyone_home || user.incapacitated())
return
user.visible_message("<span class='warning'>[user] knocks on [src]...</span>", "<span class='boldannounce'>You tentatively knock on [src]...</span>")
playsound(user.loc, 'sound/effects/shieldbash.ogg', 100, 1)
is_anyone_home = TRUE
sleep(50)
if(boss)
user << "<span class='notice'>There's no response.</span>"
is_anyone_home = FALSE
return 0
boss = TRUE
visible_message("<span class='warning'>Locks along the door begin clicking open from within...</span>")
var/volume = 60
for(var/i in 1 to 3)
playsound(src, 'sound/items/Deconstruct.ogg', volume, 0)
volume += 20
sleep(10)
sleep(10)
visible_message("<span class='userdanger'>Something horrible emerges from the Necropolis!</span>")
message_admins("[key_name_admin(user)] has summoned Legion!")
log_game("[key_name(user)] summoned Legion.")
for(var/mob/M in player_list)
if(M.z == z)
M << "<span class='userdanger'>Discordant whispers flood your mind in a thousand voices. Each one speaks your name, over and over. Something horrible has come.</span>"
M << 'sound/creatures/legion_spawn.ogg'
flash_color(M, flash_color = "#FF0000", flash_time = 50)
var/image/door_overlay = image('icons/effects/effects.dmi', "legiondoor")
notify_ghosts("Legion has been summoned in the [get_area(src)]!", source = src, alert_overlay = door_overlay, action = NOTIFY_JUMP)
is_anyone_home = FALSE
new/mob/living/simple_animal/hostile/megafauna/legion(get_step(src.loc, SOUTH))
/obj/structure/lavaland_door/singularity_pull()
return 0
/obj/structure/lavaland_door/Destroy(force)
if(force)
. = ..()
else
return QDEL_HINT_LETMELIVE
@@ -0,0 +1,134 @@
//These objects are used in the cardinal sin-themed ruins (i.e. Gluttony, Pride...)
/obj/structure/cursed_slot_machine //Greed's slot machine: Used in the Greed ruin. Deals clone damage on each use, with a successful use giving a d20 of fate.
name = "greed's slot machine"
desc = "High stakes, high rewards."
icon = 'icons/obj/economy.dmi'
icon_state = "slots1"
anchored = 1
density = 1
var/win_prob = 5
/obj/structure/cursed_slot_machine/attack_hand(mob/living/carbon/human/user)
if(!istype(user))
return
if(in_use)
return
in_use = TRUE
user.adjustCloneLoss(20)
if(user.stat)
user << "<span class='userdanger'>No... just one more try...</span>"
user.gib()
else
user.visible_message("<span class='warning'>[user], pulls [src]'s lever with a glint in their eyes!</span>", "<span class='warning'>You feel a draining as you pull the lever, but you \
know it'll be worth it.</span>")
icon_state = "slots2"
playsound(src, 'sound/lavaland/cursed_slot_machine.ogg', 50, 0)
sleep(50)
icon_state = "slots1"
in_use = FALSE
if(prob(win_prob))
playsound(src, 'sound/lavaland/cursed_slot_machine_jackpot.ogg', 50, 0)
new/obj/structure/cursed_money(get_turf(src))
if(user)
user << "<span class='boldwarning'>You've hit jackpot. Laughter echoes around you as your reward appears in the machine's place.</span>"
qdel(src)
else
if(user)
user << "<span class='boldwarning'>Fucking machine! Must be rigged. Still... one more try couldn't hurt, right?</span>"
/obj/structure/cursed_money
name = "bag of money"
desc = "RICH! YES! YOU KNEW IT WAS WORTH IT! YOU'RE RICH! RICH! RICH!"
icon = 'icons/obj/storage.dmi'
icon_state = "moneybag"
anchored = FALSE
density = TRUE
/obj/structure/cursed_money/New()
. = ..()
addtimer(src, "collapse", 600)
/obj/structure/cursed_money/proc/collapse()
visible_message("<span class='warning'>[src] falls in on itself, \
canvas rotting away and contents vanishing.</span>")
qdel(src)
/obj/structure/cursed_money/attack_hand(mob/living/user)
user.visible_message("<span class='warning'>[user] opens the bag and \
and removes a die. The bag then vanishes.</span>",
"<span class='boldwarning'>You open the bag...!</span>\n\
<span class='danger'>And see a bag full of dice. Confused, \
you take one... and the bag vanishes.</span>")
var/turf/T = get_turf(user)
var/obj/item/weapon/dice/d20/fate/one_use/critical_fail = new(T)
user.put_in_hands(critical_fail)
qdel(src)
/obj/effect/gluttony //Gluttony's wall: Used in the Gluttony ruin. Only lets the overweight through.
name = "gluttony's wall"
desc = "Only those who truly indulge may pass."
anchored = 1
density = 1
icon_state = "blob"
icon = 'icons/mob/blob.dmi'
color = rgb(145, 150, 0)
/obj/effect/gluttony/CanPass(atom/movable/mover, turf/target, height=0)//So bullets will fly over and stuff.
if(height==0)
return 1
if(istype(mover, /mob/living/carbon/human))
var/mob/living/carbon/human/H = mover
if(H.nutrition >= NUTRITION_LEVEL_FAT)
H.visible_message("<span class='warning'>[H] pushes through [src]!</span>", "<span class='notice'>You've seen and eaten worse than this.</span>")
return 1
else
H << "<span class='warning'>You're repulsed by even looking at [src]. Only a pig could force themselves to go through it.</span>"
else
return 0
/obj/structure/mirror/magic/pride //Pride's mirror: Used in the Pride ruin.
name = "pride's mirror"
desc = "Pride cometh before the..."
icon_state = "magic_mirror"
/obj/structure/mirror/magic/pride/curse(mob/user)
user.visible_message("<span class='danger'><B>The ground splits beneath [user] as their hand leaves the mirror!</B></span>", \
"<span class='notice'>Perfect. Much better! Now <i>nobody</i> will be able to resist yo-</span>")
var/turf/T = get_turf(user)
T.ChangeTurf(/turf/open/chasm/straight_down)
var/turf/open/chasm/straight_down/C = T
C.drop(user)
//can't be bothered to do sloth right now, will make later
/obj/item/weapon/kitchen/knife/envy //Envy's knife: Found in the Envy ruin. Attackers take on the appearance of whoever they strike.
name = "envy's knife"
desc = "Their success will be yours."
icon = 'icons/obj/wizard.dmi'
icon_state = "render"
item_state = "render"
force = 18
throwforce = 10
w_class = 3
hitsound = 'sound/weapons/bladeslice.ogg'
/obj/item/weapon/kitchen/knife/envy/afterattack(atom/movable/AM, mob/living/carbon/human/user, proximity)
..()
if(!proximity)
return
if(!istype(user))
return
if(istype(AM, /mob/living/carbon/human))
var/mob/living/carbon/human/H = AM
if(user.real_name != H.dna.real_name)
user.real_name = H.dna.real_name
H.dna.transfer_identity(user, transfer_SE=1)
user.updateappearance(mutcolor_update=1)
user.domutcheck()
user.visible_message("<span class='warning'>[user]'s appearance shifts into [H]'s!</span>", \
"<span class='boldannounce'>They think they're <i>sooo</i> much better than you. Not anymore, they won't.</span>")
+54
View File
@@ -0,0 +1,54 @@
//Parent types
/area/ruin/
name = "\improper Unexplored Location"
icon_state = "away"
has_gravity = 1
/area/ruin/unpowered
always_unpowered = 0
/area/ruin/unpowered/no_grav
has_gravity = 0
/area/ruin/powered
requires_power = 0
//Areas
/area/ruin/unpowered/no_grav/way_home
name = "\improper Salvation"
icon_state = "away"
/area/ruin/powered/snow_biodome
/area/ruin/powered/golem_ship
name = "Free Golem Ship"
// Ruins of "onehalf" ship
/area/ruin/onehalf/hallway
name = "Hallway"
icon_state = "hallC"
/area/ruin/onehalf/drone_bay
name = "Mining Drone Bay"
icon_state = "engine"
/area/ruin/onehalf/dorms_med
name = "Crew Quarters"
icon_state = "Sleep"
/area/ruin/onehalf/bridge
name = "Bridge"
icon_state = "bridge"
/area/ruin/powered/dinner_for_two
name = "Dinner for Two"
/area/ruin/powered/authorship
name = "Authorship"