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
+18
View File
@@ -0,0 +1,18 @@
// Basically, cut the event frequency in half to simulate unluckiness.
/datum/round_event_control/fridaythethirteen
name = "Friday the 13th"
holidayID = FRIDAY_13TH
typepath = /datum/round_event/fridaythethirteen
weight = -1
max_occurrences = 1
earliest_start = 0
/datum/round_event/fridaythethirteen/start()
//Very unlucky, cut the frequency of events in half.
events.frequency_lower /= 2
events.frequency_upper /= 2
/datum/round_event/fridaythethirteen/announce()
for(var/mob/living/L in player_list)
L << "<span class='warning'>You are feeling unlucky today.</span>"
+83
View File
@@ -0,0 +1,83 @@
/datum/round_event_control/spooky
name = "2 SPOOKY! (Halloween)"
holidayID = HALLOWEEN
typepath = /datum/round_event/spooky
weight = -1 //forces it to be called, regardless of weight
max_occurrences = 1
earliest_start = 0
/datum/round_event/spooky/start()
..()
for(var/mob/living/carbon/human/H in mob_list)
var/obj/item/weapon/storage/backpack/b = locate() in H.contents
new /obj/item/weapon/storage/spooky(b)
if(prob(50))
H.set_species(/datum/species/skeleton)
else
H.set_species(/datum/species/zombie)
for(var/mob/living/simple_animal/pet/dog/corgi/Ian/Ian in mob_list)
Ian.place_on_head(new /obj/item/weapon/bedsheet(Ian))
/datum/round_event/spooky/announce()
priority_announce(pick("RATTLE ME BONES!","THE RIDE NEVER ENDS!", "A SKELETON POPS OUT!", "SPOOKY SCARY SKELETONS!", "CREWMEMBERS BEWARE, YOU'RE IN FOR A SCARE!") , "THE CALL IS COMING FROM INSIDE THE HOUSE")
//Eyeball migration
/datum/round_event_control/carp_migration/eyeballs
name = "Eyeball Migration"
typepath = /datum/round_event/carp_migration/eyeballs
holidayID = HALLOWEEN
weight = 25
earliest_start = 0
/datum/round_event/carp_migration/eyeballs/start()
for(var/obj/effect/landmark/C in landmarks_list)
if(C.name == "carpspawn")
new /mob/living/simple_animal/hostile/carp/eyeball(C.loc)
//Pumpking meteors waves
/datum/round_event_control/meteor_wave/spooky
name = "Pumpkin Wave"
typepath = /datum/round_event/meteor_wave/spooky
holidayID = HALLOWEEN
weight = 20
max_occurrences = 2
/datum/round_event/meteor_wave/spooky
endWhen = 40
/datum/round_event/meteor_wave/spooky/tick()
if(IsMultiple(activeFor, 4))
spawn_meteors(3, meteorsSPOOKY) //meteor list types defined in gamemode/meteor/meteors.dm
//spooky foods (you can't actually make these when it's not halloween)
/obj/item/weapon/reagent_containers/food/snacks/sugarcookie/spookyskull
name = "skull cookie"
desc = "Spooky! It's got delicious calcium flavouring!"
icon = 'icons/obj/halloween_items.dmi'
icon_state = "skeletoncookie"
/obj/item/weapon/reagent_containers/food/snacks/sugarcookie/spookycoffin
name = "coffin cookie"
desc = "Spooky! It's got delicious coffee flavouring!"
icon = 'icons/obj/halloween_items.dmi'
icon_state = "coffincookie"
//spooky items
/obj/item/weapon/storage/spooky
name = "trick-o-treat bag"
desc = "A Pumpkin shaped bag that holds all sorts of goodies!"
icon = 'icons/obj/halloween_items.dmi'
icon_state = "treatbag"
/obj/item/weapon/storage/spooky/New()
..()
for(var/distrobuteinbag=0 to 5)
var/type = pick(/obj/item/weapon/reagent_containers/food/snacks/sugarcookie/spookyskull,
/obj/item/weapon/reagent_containers/food/snacks/sugarcookie/spookycoffin,
/obj/item/weapon/reagent_containers/food/snacks/candy_corn,
/obj/item/weapon/reagent_containers/food/snacks/candy,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar)
new type(src)
+127
View File
@@ -0,0 +1,127 @@
// Valentine's Day events //
// why are you playing spessmens on valentine's day you wizard //
// valentine / candy heart distribution //
/datum/round_event_control/valentines
name = "Valentines!"
holidayID = VALENTINES
typepath = /datum/round_event/valentines
weight = -1 //forces it to be called, regardless of weight
max_occurrences = 1
earliest_start = 0
/datum/round_event/valentines/start()
..()
for(var/mob/living/carbon/human/H in mob_list)
H.put_in_hands(new /obj/item/weapon/valentine)
var/obj/item/weapon/storage/backpack/b = locate() in H.contents
new /obj/item/weapon/reagent_containers/food/snacks/candyheart(b)
/datum/round_event/valentines/announce()
priority_announce("It's Valentine's Day! Give a valentine to that special someone!")
/obj/item/weapon/valentine
name = "valentine"
desc = "A Valentine's card! Wonder what it says..."
icon = 'icons/obj/toy.dmi'
icon_state = "sc_Ace of Hearts_syndicate" // shut up
var/message = "A generic message of love or whatever."
burn_state = FLAMMABLE
w_class = 1
/obj/item/weapon/valentine/New()
..()
message = pick("Roses are red / Violets are good / One day while Andy...",
"My love for you is like the singularity. It cannot be contained.",
"Will you be my lusty xenomorph maid?",
"We go together like the clown and the external airlock.",
"Roses are red / Liches are wizards / I love you more than a whole squad of lizards.",
"Be my valentine. Law 2.",
"You must be a mime, because you leave me speechless.",
"I love you like Ian loves the HoP.",
"You're hotter than a plasma fire in toxins.",
"Are you a rogue atmos tech? Because you're taking my breath away.",
"Could I have all access... to your heart?",
"Call me the CMO, because I'm here to inspect your johnson.",
"I'm not a changeling, but you make my proboscis extend.",
"I just can't get EI NATH of you.",
"You must be a nuke op, because you make my heart explode.",
"Roses are red / Botany is a farm / Not being my Valentine / causes human harm.",
"I want you more than an assistant wants insulated gloves.",
"If I was a security officer, I'd brig you all shift.",
"Are you the janitor? Because I think I've fallen for you.",
"You're always valid to my heart.",
"I'd risk the wrath of the gods to bwoink you.",
"You look as beautiful now as the last time you were cloned.",
"Your love is more valuable than raw plasma ore.",
"Someone check the gravitational generator, because I'm only attracted to you.",
"If I were the warden I'd always let you into my armory.",
"The virologist is rogue, and the only cure is a kiss from you.",
"Would you spend some time in my upgraded sleeper?",
"You must be a silicon, because you've unbolted my heart.",
"Are you Nar-Sie? Because there's nar-one else I sie.",
"If you were a taser, you'd be set to stunning.",
"Do you have stamina damage from running through my dreams?",
"If I were an alien, would you let me hug you?",
"My love for you is stronger than a reinforced wall.",
"This must be the captain's office, because I see a fox.",
"I'm not a highlander, but there can only be one for me.",
"The floor is made of lava! Quick, get on my bed.",
"If you were an abandoned station you'd be the DEARelict.",
"If you had a pickaxe you'd be a shaft FINEr.",
"Roses are red, tide is gray, if I were an assistant I'd steal you away.",
"Roses are red, text is green, I love you more than cleanbots clean.",
"If you were a carp I'd fi-lay you." )
/obj/item/weapon/valentine/attackby(obj/item/weapon/W, mob/user, params)
..()
if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/toy/crayon))
var/recipient = stripped_input(user, "Who is receiving this valentine?", "To:", null , 20)
var/sender = stripped_input(user, "Who is sending this valentine?", "From:", null , 20)
if(recipient && sender)
name = "valentine - To: [recipient] From: [sender]"
/obj/item/weapon/valentine/examine(mob/user)
if(in_range(user, src) || isobserver(user))
if( !(ishuman(user) || isobserver(user) || issilicon(user)) )
user << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[stars(message)]</BODY></HTML>", "window=[name]")
onclose(user, "[name]")
else
user << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[message]</BODY></HTML>", "window=[name]")
onclose(user, "[name]")
else
user << "<span class='notice'>It is too far away.</span>"
/obj/item/weapon/valentine/attack_self(mob/user)
user.examinate(src)
/obj/item/weapon/reagent_containers/food/snacks/candyheart
name = "candy heart"
icon = 'icons/obj/holiday_misc.dmi'
icon_state = "candyheart"
desc = "A heart-shaped candy that reads: "
list_reagents = list("sugar" = 2)
junkiness = 5
/obj/item/weapon/reagent_containers/food/snacks/candyheart/New()
..()
desc = pick("A heart-shaped candy that reads: HONK ME",
"A heart-shaped candy that reads: ERP",
"A heart-shaped candy that reads: LEWD",
"A heart-shaped candy that reads: LUSTY",
"A heart-shaped candy that reads: SPESS LOVE"
"A heart-shaped candy that reads: AYY LMAO",
"A heart-shaped candy that reads: TABLE ME",
"A heart-shaped candy that reads: HAND CUFFS",
"A heart-shaped candy that reads: SHAFT MINER",
"A heart-shaped candy that reads: BANGING DONK",
"A heart-shaped candy that reads: Y-YOU T-TOO",
"A heart-shaped candy that reads: GOT WOOD",
"A heart-shaped candy that reads: TFW NO GF",
"A heart-shaped candy that reads: WAG MY TAIL",
"A heart-shaped candy that reads: VALIDTINES",
"A heart-shaped candy that reads: FACEHUGGER",
"A heart-shaped candy that reads: DOMINATOR")
icon_state = pick("candyheart", "candyheart2", "candyheart3", "candyheart4")
+152
View File
@@ -0,0 +1,152 @@
/datum/round_event_control/treevenge
name = "Treevenge (Christmas)"
holidayID = CHRISTMAS
typepath = /datum/round_event/treevenge
max_occurrences = 1
weight = 20
/datum/round_event/treevenge/start()
for(var/obj/structure/flora/tree/pine/xmas in world)
var/mob/living/simple_animal/hostile/tree/evil_tree = new /mob/living/simple_animal/hostile/tree(xmas.loc)
evil_tree.icon_state = xmas.icon_state
evil_tree.icon_living = evil_tree.icon_state
evil_tree.icon_dead = evil_tree.icon_state
evil_tree.icon_gib = evil_tree.icon_state
qdel(xmas) //b-but I don't want to delete xmas...
//this is an example of a possible round-start event
/datum/round_event_control/presents
name = "Presents under Trees (Christmas)"
holidayID = CHRISTMAS
typepath = /datum/round_event/presents
weight = -1 //forces it to be called, regardless of weight
max_occurrences = 1
earliest_start = 0
/datum/round_event/presents/start()
for(var/obj/structure/flora/tree/pine/xmas in world)
if(xmas.z != 1)
continue
for(var/turf/open/floor/T in orange(1,xmas))
for(var/i=1,i<=rand(1,5),i++)
new /obj/item/weapon/a_gift(T)
for(var/mob/living/simple_animal/pet/dog/corgi/Ian/Ian in mob_list)
Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat(Ian))
for(var/obj/machinery/computer/security/telescreen/entertainment/Monitor in machines)
Monitor.icon_state = "entertainment_xmas"
/datum/round_event/presents/announce()
priority_announce("Ho Ho Ho, Merry Xmas!", "Unknown Transmission")
/obj/item/weapon/toy/xmas_cracker
name = "xmas cracker"
icon = 'icons/obj/christmas.dmi'
icon_state = "cracker"
desc = "Directions for use: Requires two people, one to pull each end."
var/cracked = 0
/obj/item/weapon/toy/xmas_cracker/attack(mob/target, mob/user)
if( !cracked && istype(target,/mob/living/carbon/human) && (target.stat == CONSCIOUS) && !target.get_active_hand() )
target.visible_message("[user] and [target] pop \an [src]! *pop*", "<span class='notice'>You pull \an [src] with [target]! *pop*</span>", "<span class='italics'>You hear a pop.</span>")
var/obj/item/weapon/paper/Joke = new /obj/item/weapon/paper(user.loc)
Joke.name = "[pick("awful","terrible","unfunny")] joke"
Joke.info = pick("What did one snowman say to the other?\n\n<i>'Is it me or can you smell carrots?'</i>",
"Why couldn't the snowman get laid?\n\n<i>He was frigid!</i>",
"Where are santa's helpers educated?\n\n<i>Nowhere, they're ELF-taught.</i>",
"What happened to the man who stole advent calanders?\n\n<i>He got 25 days.</i>",
"What does Santa get when he gets stuck in a chimney?\n\n<i>Claus-trophobia.</i>",
"Where do you find chili beans?\n\n<i>The north pole.</i>",
"What do you get from eating tree decorations?\n\n<i>Tinsilitis!</i>",
"What do snowmen wear on their heads?\n\n<i>Ice caps!</i>",
"Why is Christmas just like life on ss13?\n\n<i>You do all the work and the fat guy gets all the credit.</i>",
"Why doesnt Santa have any children?\n\n<i>Because he only comes down the chimney.</i>")
new /obj/item/clothing/head/festive(target.loc)
user.update_icons()
cracked = 1
icon_state = "cracker1"
var/obj/item/weapon/toy/xmas_cracker/other_half = new /obj/item/weapon/toy/xmas_cracker(target)
other_half.cracked = 1
other_half.icon_state = "cracker2"
target.put_in_active_hand(other_half)
playsound(user, 'sound/effects/snap.ogg', 50, 1)
return 1
return ..()
/obj/item/clothing/head/festive
name = "festive paper hat"
icon_state = "xmashat"
desc = "A crappy paper hat that you are REQUIRED to wear."
flags_inv = 0
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
/datum/round_event_control/santa
name = "Santa is coming to town! (Christmas)"
holidayID = CHRISTMAS
typepath = /datum/round_event/santa
weight = 150
max_occurrences = 1
earliest_start = 20000
/datum/round_event/santa
var/mob/living/carbon/human/santa //who is our santa?
/datum/round_event/santa/announce()
priority_announce("Santa is coming to town!", "Unknown Transmission")
/datum/round_event/santa/start()
for(var/mob/M in dead_mob_list)
spawn(0)
var/response = alert(M, "Santa is coming to town! Do you want to be santa?", "Ho ho ho!", "Yes", "No")
if(response == "Yes" && M && M.client && M.stat == DEAD && !santa)
santa = new /mob/living/carbon/human(pick(blobstart))
santa.key = M.key
qdel(M)
santa.real_name = "Santa Claus"
santa.name = "Santa Claus"
santa.mind.name = "Santa Claus"
santa.mind.assigned_role = "Santa"
santa.mind.special_role = "Santa"
santa.hair_style = "Long Hair"
santa.facial_hair_style = "Full Beard"
santa.hair_color = "FFF"
santa.facial_hair_color = "FFF"
santa.equip_to_slot_or_del(new /obj/item/clothing/under/color/red, slot_w_uniform)
santa.equip_to_slot_or_del(new /obj/item/clothing/suit/space/santa, slot_wear_suit)
santa.equip_to_slot_or_del(new /obj/item/clothing/head/santa, slot_head)
santa.equip_to_slot_or_del(new /obj/item/clothing/mask/breath, slot_wear_mask)
santa.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/red, slot_gloves)
santa.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/red, slot_shoes)
santa.equip_to_slot_or_del(new /obj/item/weapon/tank/internals/emergency_oxygen/double, slot_belt)
santa.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain, slot_ears)
santa.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/santabag, slot_back)
santa.equip_to_slot_or_del(new /obj/item/device/flashlight, slot_r_store) //most blob spawn locations are really dark.
var/obj/item/weapon/card/id/gold/santacard = new(santa)
santacard.update_label("Santa Claus", "Santa")
var/datum/job/captain/J = new/datum/job/captain
santacard.access = J.get_access()
santa.equip_to_slot_or_del(santacard, slot_wear_id)
santa.update_icons()
var/obj/item/weapon/storage/backpack/bag = santa.back
var/obj/item/weapon/a_gift/gift = new(santa)
while(bag.can_be_inserted(gift, 1))
bag.handle_item_insertion(gift, 1)
gift = new(santa)
var/datum/objective/santa_objective = new()
santa_objective.explanation_text = "Bring joy and presents to the station!"
santa_objective.completed = 1 //lets cut our santas some slack.
santa_objective.owner = santa.mind
santa.mind.objectives += santa_objective
santa.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/presents)
var/obj/effect/proc_holder/spell/targeted/area_teleport/teleport/telespell = new(santa)
telespell.clothes_req = 0 //santa robes aren't actually magical.
santa.mind.AddSpell(telespell) //does the station have chimneys? WHO KNOWS!
santa << "<span class='boldannounce'>You are Santa! Your objective is to bring joy to the people on this station. You can conjure more presents using a spell, and there are several presents in your bag.</span>"