From a8406f018be65a71f55696346b9c6e2883dea1ee Mon Sep 17 00:00:00 2001 From: Kearel Date: Thu, 12 Nov 2015 23:24:34 -0600 Subject: [PATCH 01/49] Adds Entertainment Items Adds the following: Actor Guild for ghosts to spawn at. Board for playing board games. Two trading card games with booster packs. Tarot cards. Cargo can now supply lasertag equipment as well as decks/booster packs --- baystation12.dme | 6 + code/__defines/gamemode.dm | 1 + code/controllers/communications.dm | 6 +- code/datums/supplypacks.dm | 22 + code/game/antagonist/outsider/actors.dm | 59 ++ code/game/area/Space Station 13 areas.dm | 16 + code/game/machinery/computer/arcade.dm | 897 +++++++++++++++++- code/game/machinery/computer/camera.dm | 2 +- code/game/machinery/telecomms/presets.dm | 8 +- code/game/machinery/vending.dm | 14 + .../items/devices/radio/encryptionkey.dm | 6 + .../objects/items/devices/radio/headset.dm | 7 + .../objects/items/devices/radio/intercom.dm | 12 + .../game/objects/items/devices/radio/radio.dm | 1 + .../circuitboards/computer/computer.dm | 17 +- .../crates_lockers/closets/wardrobe.dm | 1 + code/modules/acting/acting_items.dm | 37 + code/modules/client/preferences_gear.dm | 26 +- code/modules/games/boardgame.dm | 126 +++ code/modules/games/cardemon.dm | 30 + code/modules/games/cards.dm | 61 +- code/modules/games/spaceball_cards.dm | 23 + code/modules/games/tarot.dm | 39 + code/modules/mob/living/say.dm | 4 +- code/modules/research/designs.dm | 11 +- code/stylesheet.dm | 1 + icons/obj/pieces.dmi | Bin 0 -> 498 bytes icons/obj/playing_cards.dmi | Bin 611 -> 1669 bytes icons/obj/toy.dmi | Bin 32415 -> 32989 bytes maps/exodus-1.dmm | 34 +- maps/exodus-2.dmm | 102 +- 31 files changed, 1453 insertions(+), 116 deletions(-) create mode 100644 code/game/antagonist/outsider/actors.dm create mode 100644 code/modules/acting/acting_items.dm create mode 100644 code/modules/games/boardgame.dm create mode 100644 code/modules/games/cardemon.dm create mode 100644 code/modules/games/spaceball_cards.dm create mode 100644 code/modules/games/tarot.dm create mode 100644 icons/obj/pieces.dmi diff --git a/baystation12.dme b/baystation12.dme index d4c30f474d1..e58dbe01b49 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -250,6 +250,7 @@ #include "code\game\antagonist\antagonist_update.dm" #include "code\game\antagonist\alien\borer.dm" #include "code\game\antagonist\alien\xenomorph.dm" +#include "code\game\antagonist\outsider\actors.dm" #include "code\game\antagonist\outsider\commando.dm" #include "code\game\antagonist\outsider\deathsquad.dm" #include "code\game\antagonist\outsider\ert.dm" @@ -845,6 +846,7 @@ #include "code\game\verbs\who.dm" #include "code\js\byjax.dm" #include "code\js\menus.dm" +#include "code\modules\acting\acting_items.dm" #include "code\modules\admin\admin.dm" #include "code\modules\admin\admin_attack_log.dm" #include "code\modules\admin\admin_investigate.dm" @@ -1126,7 +1128,11 @@ #include "code\modules\flufftext\Hallucination.dm" #include "code\modules\flufftext\TextFilters.dm" #include "code\modules\food\recipes_microwave.dm" +#include "code\modules\games\boardgame.dm" +#include "code\modules\games\cardemon.dm" #include "code\modules\games\cards.dm" +#include "code\modules\games\spaceball_cards.dm" +#include "code\modules\games\tarot.dm" #include "code\modules\genetics\side_effects.dm" #include "code\modules\ghosttrap\trap.dm" #include "code\modules\holodeck\HolodeckControl.dm" diff --git a/code/__defines/gamemode.dm b/code/__defines/gamemode.dm index 827737cf92a..0773f38d7dd 100644 --- a/code/__defines/gamemode.dm +++ b/code/__defines/gamemode.dm @@ -69,6 +69,7 @@ var/list/be_special_flags = list( #define MODE_COMMANDO "commando" #define MODE_DEATHSQUAD "deathsquad" #define MODE_ERT "ert" +#define MODE_ACTOR "actor" #define MODE_MERCENARY "mercenary" #define MODE_NINJA "ninja" #define MODE_RAIDER "raider" diff --git a/code/controllers/communications.dm b/code/controllers/communications.dm index f9e7b67c742..78246e5b0c8 100644 --- a/code/controllers/communications.dm +++ b/code/controllers/communications.dm @@ -108,6 +108,7 @@ var/const/ERT_FREQ = 1345 var/const/AI_FREQ = 1343 var/const/DTH_FREQ = 1341 var/const/SYND_FREQ = 1213 +var/const/ENT_FREQ = 1461 //entertainment frequency. This is not a diona exclusive frequency. // department channels var/const/PUB_FREQ = 1459 @@ -135,6 +136,7 @@ var/list/radiochannels = list( "Supply" = SUP_FREQ, "Service" = SRV_FREQ, "AI Private" = AI_FREQ, + "Entertainment" = ENT_FREQ, "Medical(I)" = MED_I_FREQ, "Security(I)" = SEC_I_FREQ ) @@ -146,7 +148,7 @@ var/list/CENT_FREQS = list(ERT_FREQ, DTH_FREQ) var/list/ANTAG_FREQS = list(SYND_FREQ) //Department channels, arranged lexically -var/list/DEPT_FREQS = list(AI_FREQ, COMM_FREQ, ENG_FREQ, MED_FREQ, SEC_FREQ, SCI_FREQ, SRV_FREQ, SUP_FREQ) +var/list/DEPT_FREQS = list(AI_FREQ, COMM_FREQ, ENG_FREQ, MED_FREQ, SEC_FREQ, SCI_FREQ, SRV_FREQ, SUP_FREQ, ENT_FREQ) #define TRANSMISSION_WIRE 0 #define TRANSMISSION_RADIO 1 @@ -177,6 +179,8 @@ var/list/DEPT_FREQS = list(AI_FREQ, COMM_FREQ, ENG_FREQ, MED_FREQ, SEC_FREQ, SCI return "supradio" if(frequency == SRV_FREQ) // service return "srvradio" + if(frequency == ENT_FREQ) //entertainment + return "entradio" if(frequency in DEPT_FREQS) return "deptradio" diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 2e84cec43ca..84c3fb2faf3 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -137,6 +137,17 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containername = "Party equipment" group = "Hospitality" +/datum/supply_packs/lasertag + name = "Lasertag equipment" + contains = list(/obj/item/weapon/gun/energy/lasertag/red, + /obj/item/clothing/suit/redtag, + /obj/item/weapon/gun/energy/lasertag/blue, + /obj/item/clothing/suit/bluetag) + containertype = /obj/structure/closet + containername = "Lasertag Closet" + group = "Hospitality" + cost = 20 + /datum/supply_packs/internals name = "Internals crate" contains = list(/obj/item/clothing/mask/gas, @@ -1116,6 +1127,17 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containername = "Formalwear for the best occasions." group = "Miscellaneous" +/datum/supply_packs/randomised/card_packs + num_contained = 5 + contains = list(/obj/item/weapon/pack/cardemon, + /obj/item/weapon/pack/spaceball, + /obj/item/weapon/deck/holder) + name = "Trading Card Crate" + cost = 20 + containertype = /obj/structure/closet/crate + containername = "cards crate" + group = "Miscellaneous" + /datum/supply_packs/shield_gen contains = list(/obj/item/weapon/circuitboard/shield_gen) name = "Bubble shield generator circuitry" diff --git a/code/game/antagonist/outsider/actors.dm b/code/game/antagonist/outsider/actors.dm new file mode 100644 index 00000000000..52089b34175 --- /dev/null +++ b/code/game/antagonist/outsider/actors.dm @@ -0,0 +1,59 @@ +var/datum/antagonist/actor/actor + +/datum/antagonist/actor + id = MODE_ACTOR + bantype = "operative" + role_type = BE_OPERATIVE + role_text = "NanoTrasen Actor" + role_text_plural = "NanoTrasen Actors" + welcome_text = "You've been hired to entertain people through the power of television!" + landmark_id = "ActorSpawn" + id_type = /obj/item/weapon/card/id/syndicate + + flags = ANTAG_OVERRIDE_JOB | ANTAG_SET_APPEARANCE | ANTAG_CHOOSE_NAME + + hard_cap = 7 + hard_cap_round = 10 + initial_spawn_req = 1 + initial_spawn_target = 1 + +/datum/antagonist/actor/New() + ..() + actor = src + +/datum/antagonist/actor/greet(var/datum/mind/player) + if(!..()) + return + + player.current.show_message("You work for [company_name], tasked with the production and broadcasting of entertainment to all of its assets.") + player.current.show_message("Entertain the crew! Try not to disrupt them from their work too much and remind them how great [company_name] is!") + +/datum/antagonist/actor/equip(var/mob/living/carbon/human/player) + player.equip_to_slot_or_del(new /obj/item/clothing/under/chameleon(src), slot_w_uniform) + player.equip_to_slot_or_del(new /obj/item/clothing/shoes/chameleon(src), slot_shoes) + player.equip_to_slot_or_del(new /obj/item/device/radio/headset/entertainment(src), slot_l_ear) + var/obj/item/weapon/card/id/centcom/ERT/C = new(player.loc) + C.assignment = "Actor" + player.set_id_info(C) + player.equip_to_slot_or_del(C,slot_wear_id) + + return 1 + + +/client/verb/join_as_actor() + set category = "IC" + set name = "Join as Actor" + set desc = "Join as an Actor to entertain the crew through television!" + + if(!MayRespawn(1)) + usr << "You cannot respawn as an actor at this time." + + + if(istype(usr,/mob/dead/observer) || istype(usr,/mob/new_player)) + if(actor.current_antagonists.len >= actor.hard_cap) + usr << "No more actors may spawn at the current time." + return + actor.create_default(usr) + return + + usr << "You must be observing or be a new player to spawn as an actor." \ No newline at end of file diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index 87e54a9adaf..d09db53e2fd 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -447,6 +447,22 @@ area/space/atmosalert() name = "\improper Thunderdome (Observer.)" icon_state = "purple" +//ACTORS GUILD +/area/acting + name = "\improper Centcom Acting Guild" + icon_state = "red" + lighting_use_dynamic = 0 + requires_power = 0 + +/area/acting/backstage + name = "\improper Backstage" + +/area/acting/stage + name = "\improper Stage" + lighting_use_dynamic = 1 + icon_state = "yellow" + + //ENEMY //names are used diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 67f5581576e..01506f413b8 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -1,19 +1,9 @@ -/obj/machinery/computer/arcade - name = "arcade machine" - desc = "Does not support pinball." - icon = 'icons/obj/computer.dmi' +/obj/machinery/computer/arcade/ + name = "random arcade" + desc = "random arcade machine" icon_state = "arcade" icon_keyboard = null icon_screen = "invaders" - circuit = /obj/item/weapon/circuitboard/arcade - var/enemy_name = "Space Villian" - var/temp = "Winners Don't Use Spacedrugs" //Temporary message, for attack messages, etc - var/player_hp = 30 //Player health/attack points - var/player_mp = 10 - var/enemy_hp = 45 //Enemy health/attack points - var/enemy_mp = 20 - var/gameover = 0 - var/blocked = 0 //Player cannot attack/heal while set var/list/prizes = list( /obj/item/weapon/storage/box/snappops = 2, /obj/item/toy/blink = 2, /obj/item/clothing/under/syndicate/tacticool = 2, @@ -40,28 +30,84 @@ /obj/item/toy/cultsword = 1 ) -/obj/machinery/computer/arcade +/obj/machinery/computer/arcade/New() + ..() + // If it's a generic arcade machine, pick a random arcade + // circuit board for it and make the new machine + if(!circuit) + var/choice = pick(typesof(/obj/item/weapon/circuitboard/arcade) - /obj/item/weapon/circuitboard/arcade) + var/obj/item/weapon/circuitboard/CB = new choice() + new CB.build_path(loc, CB) + qdel(src) + +/obj/machinery/computer/arcade/proc/prizevend() + if(!contents.len) + var/prizeselect = pickweight(prizes) + new prizeselect(src.loc) + + if(istype(prizeselect, /obj/item/clothing/suit/syndicatefake)) //Helmet is part of the suit + new /obj/item/clothing/head/syndicatefake(src.loc) + + else + var/atom/movable/prize = pick(contents) + prize.loc = src.loc + +/obj/machinery/computer/arcade/attack_ai(mob/user as mob) + return src.attack_hand(user) + + +/obj/machinery/computer/arcade/emp_act(severity) + if(stat & (NOPOWER|BROKEN)) + ..(severity) + return + var/empprize = null + var/num_of_prizes = 0 + switch(severity) + if(1) + num_of_prizes = rand(1,4) + if(2) + num_of_prizes = rand(0,2) + for(num_of_prizes; num_of_prizes > 0; num_of_prizes--) + empprize = pickweight(prizes) + new empprize(src.loc) + + ..(severity) + +/////////////////// +// BATTLE HERE // +/////////////////// + +/obj/machinery/computer/arcade/battle + name = "arcade machine" + desc = "Does not support Pinball." + icon_state = "arcade" + circuit = /obj/item/weapon/circuitboard/arcade/battle + var/enemy_name = "Space Villian" + var/temp = "Winners don't use space drugs" //Temporary message, for attack messages, etc + var/player_hp = 30 //Player health/attack points + var/player_mp = 10 + var/enemy_hp = 45 //Enemy health/attack points + var/enemy_mp = 20 + var/gameover = 0 + var/blocked = 0 //Player cannot attack/heal while set var/turtle = 0 -/obj/machinery/computer/arcade/New() +/obj/machinery/computer/arcade/battle/New() ..() var/name_action var/name_part1 var/name_part2 - name_action = pick("Defeat ", "Annihilate ", "Save ", "Strike ", "Stop ", "Destroy ", "Robust ", "Romance ", "Pwn ", "Own ") + name_action = pick("Defeat ", "Annihilate ", "Save ", "Strike ", "Stop ", "Destroy ", "Robust ", "Romance ", "Pwn ", "Own ", "Ban ") name_part1 = pick("the Automatic ", "Farmer ", "Lord ", "Professor ", "the Cuban ", "the Evil ", "the Dread King ", "the Space ", "Lord ", "the Great ", "Duke ", "General ") - name_part2 = pick("Melonoid", "Murdertron", "Sorcerer", "Ruin", "Jeff", "Ectoplasm", "Crushulon", "Uhangoid", "Vhakoid", "Peteoid", "slime", "Griefer", "ERPer", "Lizard Man", "Unicorn") + name_part2 = pick("Melonoid", "Murdertron", "Sorcerer", "Ruin", "Jeff", "Ectoplasm", "Crushulon", "Uhangoid", "Vhakoid", "Peteoid", "slime", "Griefer", "ERPer", "Lizard Man", "Unicorn", "Bloopers") src.enemy_name = replacetext((name_part1 + name_part2), "the ", "") src.name = (name_action + name_part1 + name_part2) -/obj/machinery/computer/arcade/attack_ai(mob/user as mob) - return src.attack_hand(user) - -/obj/machinery/computer/arcade/attack_hand(mob/user as mob) +/obj/machinery/computer/arcade/battle/attack_hand(mob/user as mob) if(..()) return user.set_machine(src) @@ -85,7 +131,7 @@ onclose(user, "arcade") return -/obj/machinery/computer/arcade/Topic(href, href_list) +/obj/machinery/computer/arcade/battle/Topic(href, href_list) if(..()) return 1 @@ -150,7 +196,7 @@ src.updateUsrDialog() return -/obj/machinery/computer/arcade/proc/arcade_action() +/obj/machinery/computer/arcade/battle/proc/arcade_action() if ((src.enemy_mp <= 0) || (src.enemy_hp <= 0)) if(!gameover) src.gameover = 1 @@ -166,19 +212,11 @@ emagged = 0 else if(!contents.len) feedback_inc("arcade_win_normal") - var/prizeselect = pickweight(prizes) - new prizeselect(src.loc) - - if(istype(prizeselect, /obj/item/weapon/gun/projectile/revolver/capgun)) //Ammo comes with the gun - new /obj/item/projectile/bullet/pistol/cap(src.loc) - - else if(istype(prizeselect, /obj/item/clothing/suit/syndicatefake)) //Helmet is part of the suit - new /obj/item/clothing/head/syndicatefake(src.loc) + src.prizevend() else feedback_inc("arcade_win_normal") - var/atom/movable/prize = pick(contents) - prize.loc = src.loc + src.prizevend() else if (emagged && (turtle >= 4)) var/boomamt = rand(5,10) @@ -224,7 +262,7 @@ return -/obj/machinery/computer/arcade/emag_act(var/charges, var/mob/user) +/obj/machinery/computer/arcade/battle/emag_act(var/charges, var/mob/user) if(!emagged) temp = "If you die in the game, you die for real!" player_hp = 30 @@ -241,19 +279,780 @@ src.updateUsrDialog() return 1 -/obj/machinery/computer/arcade/emp_act(severity) - if(stat & (NOPOWER|BROKEN)) - ..(severity) - return - var/empprize = null - var/num_of_prizes = 0 - switch(severity) - if(1) - num_of_prizes = rand(1,4) - if(2) - num_of_prizes = rand(0,2) - for(num_of_prizes; num_of_prizes > 0; num_of_prizes--) - empprize = pickweight(prizes) - new empprize(src.loc) - ..(severity) \ No newline at end of file +////////////////////////// +// ORION TRAIL HERE // +////////////////////////// +#define ORION_TRAIL_WINTURN 9 + +//Orion Trail Events +#define ORION_TRAIL_RAIDERS "Raiders" +#define ORION_TRAIL_FLUX "Interstellar Flux" +#define ORION_TRAIL_ILLNESS "Illness" +#define ORION_TRAIL_BREAKDOWN "Breakdown" +#define ORION_TRAIL_MUTINY "Mutiny?" +#define ORION_TRAIL_MUTINY_ATTACK "Mutinous Ambush" +#define ORION_TRAIL_MALFUNCTION "Malfunction" +#define ORION_TRAIL_COLLISION "Collision" +#define ORION_TRAIL_SPACEPORT "Spaceport" +#define ORION_TRAIL_BLACKHOLE "BlackHole" + +#define ORION_STATUS_START 1 +#define ORION_STATUS_NORMAL 2 +#define ORION_STATUS_GAMEOVER 3 +#define ORION_STATUS_MARKET 4 + +/obj/machinery/computer/arcade/orion_trail + name = "The Orion Trail" + desc = "Imported straight fron station-TG!" + icon_state = "arcade" + circuit = /obj/item/weapon/circuitboard/arcade/orion_trail + var/busy = 0 //prevent clickspam that allowed people to ~speedrun~ the game. + var/engine = 0 + var/hull = 0 + var/electronics = 0 + var/food = 80 + var/fuel = 60 + var/turns = 4 + var/alive = 4 + var/eventdat = null + var/event = null + var/list/settlers = list("Harry","Larry","Bob") + var/list/events = list(ORION_TRAIL_RAIDERS = 3, + ORION_TRAIL_FLUX = 1, + ORION_TRAIL_ILLNESS = 3, + ORION_TRAIL_BREAKDOWN = 2, + ORION_TRAIL_MUTINY = 3, + ORION_TRAIL_MALFUNCTION = 2, + ORION_TRAIL_COLLISION = 1, + ORION_TRAIL_SPACEPORT = 2 + ) + var/list/stops = list() + var/list/stopblurbs = list() + var/traitors_aboard = 0 + var/spaceport_raided = 0 + var/spaceport_freebie = 0 + var/last_spaceport_action = "" + var/gameStatus = ORION_STATUS_START + var/canContinueEvent = 0 + +/obj/machinery/computer/arcade/orion_trail/New() + ..() + // Sets up the main trail + stops = list("Pluto","Asteroid Belt","Proxima Centauri","Dead Space","Rigel Prime","Tau Ceti Beta","Black Hole","Space Outpost Beta-9","Orion Prime") + stopblurbs = list( + "Pluto, long since occupied with long-range sensors and scanners, stands ready to, and indeed continues to probe the far reaches of the galaxy.", + "At the edge of the Sol system lies a treacherous asteroid belt. Many have been crushed by stray asteroids and misguided judgement.", + "The nearest star system to Sol, in ages past it stood as a reminder of the boundaries of sub-light travel, now a low-population sanctuary for adventurers and traders.", + "This region of space is particularly devoid of matter. Such low-density pockets are known to exist, but the vastness of it is astounding.", + "Rigel Prime, the center of the Rigel system, burns hot, basking its planetary bodies in warmth and radiation.", + "Tau Ceti Beta has recently become a waypoint for colonists headed towards Orion. There are many ships and makeshift stations in the vicinity.", + "Sensors indicate that a black hole's gravitational field is affecting the region of space we were headed through. We could stay of course, but risk of being overcome by its gravity, or we could change course to go around, which will take longer.", + "You have come into range of the first man-made structure in this region of space. It has been constructed not by travellers from Sol, but by colonists from Orion. It stands as a monument to the colonists' success.", + "You have made it to Orion! Congratulations! Your crew is one of the few to start a new foothold for mankind!" + ) + +/obj/machinery/computer/arcade/orion_trail/proc/newgame() + // Set names of settlers in crew + settlers = list() + for(var/i = 1; i <= 3; i++) + add_crewmember() + add_crewmember("[usr]") + // Re-set items to defaults + engine = 1 + hull = 1 + electronics = 1 + food = 80 + fuel = 60 + alive = 4 + turns = 1 + event = null + gameStatus = ORION_STATUS_NORMAL + traitors_aboard = 0 + + //spaceport junk + spaceport_raided = 0 + spaceport_freebie = 0 + last_spaceport_action = "" + +/obj/machinery/computer/arcade/orion_trail/attack_hand(mob/user) + if(..()) + return + if(fuel <= 0 || food <=0 || settlers.len == 0) + gameStatus = ORION_STATUS_GAMEOVER + event = null + user.set_machine(src) + var/dat = "" + if(gameStatus == ORION_STATUS_GAMEOVER) + dat = "

Game Over

" + dat += "Like many before you, your crew never made it to Orion, lost to space...
Forever." + if(settlers.len == 0) + dat += "
Your entire crew died, your ship joins the fleet of ghost-ships littering the galaxy." + else + if(food <= 0) + dat += "
You ran out of food and starved." + if(emagged) + user.nutrition = 0 //yeah you pretty hongry + user << "Your body instantly contracts to that of one who has not eaten in months. Agonizing cramps seize you as you fall to the floor." + if(fuel <= 0) + dat += "
You ran out of fuel, and drift, slowly, into a star." + if(emagged) + var/mob/living/M = user + M.adjust_fire_stacks(5) + M.IgniteMob() //flew into a star, so you're on fire + user << "You feel an immense wave of heat emanate from \the [src]. Your skin bursts into flames." + dat += "

OK...

" + + if(emagged) + user << "You're never going to make it to Orion..." + user.death() + emagged = 0 //removes the emagged status after you lose + gameStatus = ORION_STATUS_START + name = "The Orion Trail" + desc = "Learn how our ancestors got to Orion, and have fun in the process!" + + else if(event) + dat = eventdat + else if(gameStatus == ORION_STATUS_NORMAL) + var/title = stops[turns] + var/subtext = stopblurbs[turns] + dat = "

[title]

" + dat += "[subtext]" + dat += "

Crew:

" + dat += english_list(settlers) + dat += "
Food: [food] | Fuel: [fuel]" + dat += "
Engine Parts: [engine] | Hull Panels: [hull] | Electronics: [electronics]" + if(turns == 7) + dat += "

Go Around Continue

" + else + dat += "

Continue

" + dat += "

Kill a crewmember

" + dat += "

Close

" + else + dat = "

The Orion Trail

" + dat += "

Experience the journey of your ancestors!



" + dat += "
New Game
" + dat += "

Close

" + user << browse(dat,"window=arcade") + return + +/obj/machinery/computer/arcade/orion_trail/Topic(href, href_list) + if(..()) + return + if(href_list["close"]) + usr.unset_machine() + usr << browse(null, "window=arcade") + + if(busy) + return + busy = 1 + + if (href_list["continue"]) //Continue your travels + if(gameStatus == ORION_STATUS_NORMAL && !event && turns != 7) + if(turns >= ORION_TRAIL_WINTURN) + win() + else + food -= (alive+traitors_aboard)*2 + fuel -= 5 + if(turns == 2 && prob(30)) + event = ORION_TRAIL_COLLISION + event() + else if(prob(75)) + event = pickweight(events) + if(traitors_aboard) + if(event == ORION_TRAIL_MUTINY || prob(55)) + event = ORION_TRAIL_MUTINY_ATTACK + event() + turns += 1 + if(emagged) + var/mob/living/carbon/M = usr //for some vars + switch(event) + if(ORION_TRAIL_RAIDERS) + if(prob(50)) + usr << "You hear battle shouts. The tramping of boots on cold metal. Screams of agony. The rush of venting air. Are you going insane?" + M.hallucination += 30 + else + usr << "Something strikes you from behind! It hurts like hell and feel like a blunt weapon, but nothing is there..." + M.take_organ_damage(25) + if(ORION_TRAIL_ILLNESS) + var/severity = rand(1,3) //pray to RNGesus. PRAY, PIGS + if(severity == 1) + M << "You suddenly feel slightly nauseous." //got off lucky + if(severity == 2) + usr << "You suddenly feel extremely nauseous and hunch over until it passes." + M.Stun(3) + if(severity >= 3) //you didn't pray hard enough + M << "An overpowering wave of nausea consumes over you. You hunch over, your stomach's contents preparing for a spectacular exit." + spawn(30) + if(istype(M,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + H.vomit() + if(ORION_TRAIL_FLUX) + if(prob(75)) + M.Weaken(3) + src.visible_message("A sudden gust of powerful wind slams \the [M] into the floor!", "You hear a large fwooshing sound, followed by a bang.") + M.take_organ_damage(15) + else + M << "A violent gale blows past you, and you barely manage to stay standing!" + if(ORION_TRAIL_COLLISION) //by far the most damaging event + if(prob(90) && !hull) + var/turf/simulated/floor/F = src.loc + F.ChangeTurf(/turf/space) + src.visible_message("Something slams into the floor around \the [src], exposing it to space!", "You hear something crack and break.") + else + src.visible_message("Something slams into the floor around \the [src] - luckily, it didn't get through!", "You hear something crack.") + if(ORION_TRAIL_MALFUNCTION) + src.visible_message("\The [src] buzzes and the screen goes blank for a moment before returning to the game.") + var/oldfood = food + var/oldfuel = fuel + food = rand(10,80) / rand(1,2) + fuel = rand(10,60) / rand(1,2) + if(electronics) + sleep(10) + if(oldfuel > fuel && oldfood > food) + src.audible_message("\The [src] lets out a somehow reassuring chime.") + else if(oldfuel < fuel || oldfood < food) + src.audible_message("\The [src] lets out a somehow ominous chime.") + food = oldfood + fuel = oldfuel + + else if(href_list["newgame"]) //Reset everything + if(gameStatus == ORION_STATUS_START) + newgame() + else if(href_list["menu"]) //back to the main menu + if(gameStatus == ORION_STATUS_GAMEOVER) + gameStatus = ORION_STATUS_START + event = null + food = 80 + fuel = 60 + settlers = list("Harry","Larry","Bob") + else if(href_list["slow"]) //slow down + if(event == ORION_TRAIL_FLUX) + food -= (alive+traitors_aboard)*2 + fuel -= 5 + event = null + else if(href_list["pastblack"]) //slow down + if(turns == 7) + food -= ((alive+traitors_aboard)*2)*3 + fuel -= 15 + turns += 1 + event = null + else if(href_list["useengine"]) //use parts + if(event == ORION_TRAIL_BREAKDOWN) + engine = max(0, --engine) + event = null + else if(href_list["useelec"]) //use parts + if(event == ORION_TRAIL_MALFUNCTION) + electronics = max(0, --electronics) + event = null + else if(href_list["usehull"]) //use parts + if(event == ORION_TRAIL_COLLISION) + hull = max(0, --hull) + event = null + else if(href_list["wait"]) //wait 3 days + if(event == ORION_TRAIL_BREAKDOWN || event == ORION_TRAIL_MALFUNCTION || event == ORION_TRAIL_COLLISION) + food -= ((alive+traitors_aboard)*2)*3 + event = null + else if(href_list["keepspeed"]) //keep speed + if(event == ORION_TRAIL_FLUX) + if(prob(75)) + event = "Breakdown" + event() + else + event = null + else if(href_list["blackhole"]) //keep speed past a black hole + if(turns == 7) + if(prob(75)) + event = ORION_TRAIL_BLACKHOLE + event() + if(emagged) //has to be here because otherwise it doesn't work + src.show_message("\The [src] states, 'YOU ARE EXPERIENCING A BLACKHOLE. BE TERRIFIED.","You hear something say, 'YOU ARE EXPERIENCING A BLACKHOLE. BE TERRFIED'") + usr << "Something draws you closer and closer to the machine." + sleep(10) + usr << "This is really starting to hurt!" + var i; //spawning a literal blackhole would be fun, but a bit disruptive. + for(i=0;i<4;i++) + var/mob/living/L = usr + if(istype(L)) + L.adjustBruteLoss(25) + sleep(10) + else + event = null + turns += 1 + else if(href_list["holedeath"]) + if(event == ORION_TRAIL_BLACKHOLE) + gameStatus = ORION_STATUS_GAMEOVER + event = null + else if(href_list["eventclose"]) //end an event + if(canContinueEvent) + event = null + + else if(href_list["killcrew"]) //shoot a crewmember + if(gameStatus == ORION_STATUS_NORMAL || event == ORION_TRAIL_MUTINY) + var/sheriff = remove_crewmember() //I shot the sheriff + var/mob/living/L = usr + if(!istype(L)) + return + if(settlers.len == 0 || alive == 0) + src.visible_message("\The [src] states, 'EVERYONE HAS DIED, GAMEOVER.'", "You hear something state, 'EVERYONE HAS DIED, GAMEOVER.'") + if(emagged) + src.visible_message("\The [src] produces a loud, gunlike sound.") + L.adjustBruteLoss(30) + emagged = 0 + gameStatus = ORION_STATUS_GAMEOVER + event = null + else if(emagged) + if(usr.name == sheriff) + src.visible_message("\The [src] states, 'THE CREW HAS CHOSEN TO KILL [usr]'. A gunshot can be heard coming from \the [src]", "You hear 'THE CREW HAS CHOSEN TO KILL [usr]' followed by a gunshot") + L.adjustBruteLoss(30) + if(event == ORION_TRAIL_MUTINY) //only ends the ORION_TRAIL_MUTINY event, since you can do this action in multiple places + event = null + + //Spaceport specific interactions + //they get a header because most of them don't reset event (because it's a shop, you leave when you want to) + //they also call event() again, to regen the eventdata, which is kind of odd but necessary + else if(href_list["buycrew"]) //buy a crewmember + if(gameStatus == ORION_STATUS_MARKET) + if(!spaceport_raided && food >= 10 && fuel >= 10) + var/bought = add_crewmember() + last_spaceport_action = "You hired [bought] as a new crewmember." + fuel -= 10 + food -= 10 + event() + + else if(href_list["sellcrew"]) //sell a crewmember + if(gameStatus == ORION_STATUS_MARKET) + if(!spaceport_raided && settlers.len > 1) + var/sold = remove_crewmember() + last_spaceport_action = "You sold your crewmember, [sold]!" + fuel += 7 + food += 7 + event() + + else if(href_list["leave_spaceport"]) + if(gameStatus == ORION_STATUS_MARKET) + event = null + gameStatus = ORION_STATUS_NORMAL + spaceport_raided = 0 + spaceport_freebie = 0 + last_spaceport_action = "" + + else if(href_list["raid_spaceport"]) + if(gameStatus == ORION_STATUS_MARKET) + if(!spaceport_raided) + var/success = min(15 * alive,100) //default crew (4) have a 60% chance + spaceport_raided = 1 + + var/FU = 0 + var/FO = 0 + if(prob(success)) + FU = rand(5,15) + FO = rand(5,15) + last_spaceport_action = "You successfully raided the spaceport! you gained [FU] Fuel and [FO] Food! (+[FU]FU,+[FO]FO)" + else + FU = rand(-5,-15) + FO = rand(-5,-15) + last_spaceport_action = "You failed to raid the spaceport! you lost [FU*-1] Fuel and [FO*-1] Food in your scramble to escape! ([FU]FU,[FO]FO)" + + //your chance of lose a crewmember is 1/2 your chance of success + //this makes higher % failures hurt more, don't get cocky space cowboy! + if(prob(success*5)) + var/lost_crew = remove_crewmember() + last_spaceport_action = "You failed to raid the spaceport! you lost [FU*-1] Fuel and [FO*-1] Food, AND [lost_crew] in your scramble to escape! ([FU]FI,[FO]FO,-Crew)" + if(emagged) + src.visible_message("The machine states, 'YOU ARE UNDER ARREST, RAIDER!' and shoots handcuffs onto [usr]!", "You hear something say 'YOU ARE UNDER ARREST, RAIDER!' and a clinking sound") + var/obj/item/weapon/handcuffs/C = new(src.loc) + var/mob/living/carbon/human/H = usr + if(istype(usr)) + C.forceMove(H) + H.handcuffed = C + H.update_inv_handcuffed() + else + C.throw_at(usr,16,3,src) + + + fuel += FU + food += FO + event() + + else if(href_list["buyparts"]) + if(gameStatus == ORION_STATUS_MARKET) + if(!spaceport_raided && fuel > 5) + switch(text2num(href_list["buyparts"])) + if(1) //Engine Parts + engine++ + last_spaceport_action = "Bought Engine Parts" + if(2) //Hull Plates + hull++ + last_spaceport_action = "Bought Hull Plates" + if(3) //Spare Electronics + electronics++ + last_spaceport_action = "Bought Spare Electronics" + fuel -= 5 //they all cost 5 + event() + + else if(href_list["trade"]) + if(gameStatus == ORION_STATUS_MARKET) + if(!spaceport_raided) + switch(text2num(href_list["trade"])) + if(1) //Fuel + if(fuel > 5) + fuel -= 5 + food += 5 + last_spaceport_action = "Traded Fuel for Food" + event() + if(2) //Food + if(food > 5) + fuel += 5 + food -= 5 + last_spaceport_action = "Traded Food for Fuel" + event() + + src.add_fingerprint(usr) + src.updateUsrDialog() + busy = 0 + return + + +/obj/machinery/computer/arcade/orion_trail/proc/event() + eventdat = "

[event]

" + canContinueEvent = 0 + switch(event) + if(ORION_TRAIL_RAIDERS) + eventdat += "Raiders have come aboard your ship!" + if(prob(50)) + var/sfood = rand(1,10) + var/sfuel = rand(1,10) + food -= sfood + fuel -= sfuel + eventdat += "
They have stolen [sfood] Food and [sfuel] Fuel." + else if(prob(10)) + var/deadname = remove_crewmember() + eventdat += "
[deadname] tried to fight back but was killed." + else + eventdat += "
Fortunately you fended them off without any trouble." + eventdat += "

Continue

" + eventdat += "

Close

" + canContinueEvent = 1 + + if(ORION_TRAIL_FLUX) + eventdat += "This region of space is highly turbulent.
If we go slowly we may avoid more damage, but if we keep our speed we won't waste supplies." + eventdat += "
What will you do?" + eventdat += "

Slow Down Continue

" + eventdat += "

Close

" + + if(ORION_TRAIL_ILLNESS) + eventdat += "A deadly illness has been contracted!" + var/deadname = remove_crewmember() + eventdat += "
[deadname] was killed by the disease." + eventdat += "

Continue

" + eventdat += "

Close

" + canContinueEvent = 1 + + if(ORION_TRAIL_BREAKDOWN) + eventdat += "Oh no! The engine has broken down!" + eventdat += "
You can repair it with an engine part, or you can make repairs for 3 days." + if(engine >= 1) + eventdat += "

Use Part Wait

" + else + eventdat += "

Wait

" + eventdat += "

Close

" + + if(ORION_TRAIL_MALFUNCTION) + eventdat += "The ship's systems are malfunctioning!" + eventdat += "
You can replace the broken electronics with spares, or you can spend 3 days troubleshooting the AI." + if(electronics >= 1) + eventdat += "

Use Part Wait

" + else + eventdat += "

Wait

" + eventdat += "

Close

" + + if(ORION_TRAIL_COLLISION) + eventdat += "Something hit us! Looks like there's some hull damage." + if(prob(25)) + var/sfood = rand(5,15) + var/sfuel = rand(5,15) + food -= sfood + fuel -= sfuel + eventdat += "
[sfood] Food and [sfuel] Fuel was vented out into space." + if(prob(10)) + var/deadname = remove_crewmember() + eventdat += "
[deadname] was killed by rapid depressurization." + eventdat += "
You can repair the damage with hull plates, or you can spend the next 3 days welding scrap together." + if(hull >= 1) + eventdat += "

Use Part Wait

" + else + eventdat += "

Wait

" + eventdat += "

Close

" + + if(ORION_TRAIL_BLACKHOLE) + eventdat += "You were swept away into the black hole." + eventdat += "

Oh...

" + eventdat += "

Close

" + settlers = list() + + if(ORION_TRAIL_MUTINY) + eventdat += "You've been hearing rumors of dissenting opinions amoungst your men." + if(settlers.len <= 2) + eventdat += "
Your crew's so tiny you don't think anybody would risk an uprising." + eventdat += "

Continue

" + eventdat += "

Close

" + if(prob(10)) + traitors_aboard = min(++traitors_aboard,2) + else + if(traitors_aboard) //less likely to stack traitors + if(prob(20)) + traitors_aboard = min(++traitors_aboard,2) + else if(prob(70)) + traitors_aboard = min(++traitors_aboard,2) + + eventdat += "

Kill a crewmember

" + eventdat += "

Risk it

" + eventdat += "

Close

" + canContinueEvent = 1 + + if(ORION_TRAIL_MUTINY_ATTACK) + if(traitors_aboard <= 0) //shouldn't trigger, but hey. + eventdat += "Haha, fooled you, there isn't a mutiny on board!" + eventdat += "
(You should report this to a coder :S)" + else + var/trait1 = remove_crewmember() + var/trait2 = "" + if(traitors_aboard >= 2) + trait2 = remove_crewmember() + + eventdat += "Oh no, some of your crew are attempting to mutiny!!" + if(trait2) + eventdat += "
[trait1] and [trait2]'s have armed themselves with weapons!" + else + eventdat += "
[trait1]'s armed with a weapon!" + + var/chance2attack = alive*20 + if(prob(chance2attack)) + var/chancetokill = 30*traitors_aboard-(5*alive) //eg: 30*2-(10) = 50%, 2 traitorss, 2 crew is 50% chance + if(prob(chancetokill)) + var/deadguy = remove_crewmember() + eventdat += "
The traitor[trait2 ? "s":""] run[trait2 ? "":"s"] up to [deadguy] and murder them!" + else + eventdat += "
You valiantly fight off the traitor[trait2 ? "s":""]!" + eventdat += "
You cut the traitor[trait2 ? "s":""] up into meat... Eww" + if(trait2) + food += 30 + traitors_aboard = max(0,traitors_aboard-2) + else + food += 15 + traitors_aboard = max(0,--traitors_aboard) + else + eventdat += "
The traitor[trait2 ? "s":""] run[trait2 ? "":"s"] away, What wimps!" + if(trait2) + traitors_aboard = max(0,traitors_aboard-2) + else + traitors_aboard = max(0,--traitors_aboard) + + eventdat += "

Continue

" + eventdat += "

Close

" + canContinueEvent = 1 + + + if(ORION_TRAIL_SPACEPORT) + gameStatus = ORION_STATUS_MARKET + if(spaceport_raided) + eventdat += "The Spaceport is on high alert! they wont let you dock since you tried to attack them!" + if(last_spaceport_action) + eventdat += "
Last Spaceport Action: [last_spaceport_action]" + eventdat += "

Depart Spaceport

" + eventdat += "

Close

" + else + eventdat += "You pull the ship up to dock at a nearby Spaceport, lucky find!" + eventdat += "
This Spaceport is home to travellers who failed to reach Orion, but managed to find a different home..." + eventdat += "
Trading terms: FU = Fuel, FO = Food" + if(last_spaceport_action) + eventdat += "
Last Spaceport Action: [last_spaceport_action]" + eventdat += "

Crew:

" + eventdat += english_list(settlers) + eventdat += "
Food: [food] | Fuel: [fuel]" + eventdat += "
Engine Parts: [engine] | Hull Panels: [hull] | Electronics: [electronics]" + + + //If your crew is pathetic you can get freebies (provided you haven't already gotten one from this port) + if(!spaceport_freebie && (fuel < 20 || food < 20)) + spaceport_freebie++ + var/FU = 10 + var/FO = 10 + var/freecrew = 0 + if(prob(30)) + FU = 25 + FO = 25 + + if(prob(10)) + add_crewmember() + freecrew++ + + eventdat += "
The traders of the spaceport take pitty on you, and give you some food and fuel (+[FU]FU,+[FO]FO)" + if(freecrew) + eventdat += "
You also gain a new crewmember!" + + fuel += FU + food += FO + + //CREW INTERACTIONS + eventdat += "

Crew Management:

" + + //Buy crew + if(food >= 10 && fuel >= 10) + eventdat += "

Hire a new Crewmember (-10FU,-10FO)

" + else + eventdat += "

Cant afford a new Crewmember

" + + //Sell crew + if(settlers.len > 1) + eventdat += "

Sell crew for Fuel and Food (+7FU,+7FO)

" + else + eventdat += "

Cant afford to sell a Crewmember

" + + //BUY/SELL STUFF + eventdat += "

Spare Parts:

" + + //Engine parts + if(fuel > 5) + eventdat += "

Buy Engine Parts (-5FU)

" + else + eventdat += "

Cant afford to buy Engine Parts" + + //Hull plates + if(fuel > 5) + eventdat += "

Buy Hull Plates (-5FU)

" + else + eventdat += "

Cant afford to buy Hull Plates" + + //Electronics + if(fuel > 5) + eventdat += "

Buy Spare Electronics (-5FU)

" + else + eventdat += "

Cant afford to buy Spare Electronics" + + //Trade + if(fuel > 5) + eventdat += "

Trade Fuel for Food (-5FU,+5FO)

" + else + eventdat += "

Cant afford to Trade Fuel for Food 5) + eventdat += "

Trade Food for Fuel (+5FU,-5FO)

" + else + eventdat += "

Cant afford to Trade Food for FuelYou override the cheat code menu and skip to Cheat #[rand(1, 50)]: Realism Mode." + name = "The Orion Trail: Realism Edition" + desc = "Learn how our ancestors got to Orion, and try not to die in the process!" + newgame() + emagged = 1 + + +/obj/item/weapon/orion_ship + name = "model settler ship" + desc = "A model spaceship, it looks like those used back in the day when travelling to Orion! It even has a miniature FX-293 reactor, which was renowned for its instability and tendency to explode..." + icon = 'icons/obj/toy.dmi' + icon_state = "ship" + w_class = 2 + var/active = 0 //if the ship is on + +/obj/item/weapon/orion_ship/examine(mob/user) + ..() + if(!(in_range(user, src))) + return + if(!active) + user << "There's a little switch on the bottom. It's flipped down." + else + user << "There's a little switch on the bottom. It's flipped up." + +/obj/item/weapon/orion_ship/attack_self(mob/user) + if(active) + return + + message_admins("[key_name_admin(usr)] primed an explosive Orion ship for detonation.") + log_game("[key_name(usr)] primed an explosive Orion ship for detonation.") + + user << "You flip the switch on the underside of [src]." + active = 1 + src.visible_message("[src] softly beeps and whirs to life!") + src.audible_message("\The [src] says, 'This is ship ID #[rand(1,1000)] to Orion Port Authority. We're coming in for landing, over.'") + sleep(20) + src.visible_message("[src] begins to vibrate...") + src.audible_message("\The [src] says, 'Uh, Port? Having some issues with our reactor, could you check it out? Over.'") + sleep(30) + src.audible_message("\The [src] says, 'Oh, God! Code Eight! CODE EIGHT! IT'S GONNA BL-'") + sleep(3.6) + src.visible_message("[src] explodes!") + explosion(src.loc, 1,2,4) + qdel(src) + +#undef ORION_TRAIL_WINTURN +#undef ORION_TRAIL_RAIDERS +#undef ORION_TRAIL_FLUX +#undef ORION_TRAIL_ILLNESS +#undef ORION_TRAIL_BREAKDOWN +#undef ORION_TRAIL_MUTINY +#undef ORION_TRAIL_MUTINY_ATTACK +#undef ORION_TRAIL_MALFUNCTION +#undef ORION_TRAIL_COLLISION +#undef ORION_TRAIL_SPACEPORT +#undef ORION_TRAIL_BLACKHOLE + +#undef ORION_STATUS_START +#undef ORION_STATUS_NORMAL +#undef ORION_STATUS_GAMEOVER +#undef ORION_STATUS_MARKET \ No newline at end of file diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 3090e7ab7af..6ca481532ac 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -206,7 +206,7 @@ icon_keyboard = null icon_screen = null light_range_on = 0 - network = list("thunder") + network = list(NETWORK_THUNDER) density = 0 circuit = null diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm index ca35f592360..dae80c94073 100644 --- a/code/game/machinery/telecomms/presets.dm +++ b/code/game/machinery/telecomms/presets.dm @@ -56,7 +56,7 @@ id = "Receiver A" network = "tcommsat" autolinkers = list("receiverA") // link to relay - freq_listening = list(AI_FREQ, SCI_FREQ, MED_FREQ, SUP_FREQ, SRV_FREQ, COMM_FREQ, ENG_FREQ, SEC_FREQ) + freq_listening = list(AI_FREQ, SCI_FREQ, MED_FREQ, SUP_FREQ, SRV_FREQ, COMM_FREQ, ENG_FREQ, SEC_FREQ, ENT_FREQ) //Common and other radio frequencies for people to freely use New() @@ -102,13 +102,13 @@ /obj/machinery/telecomms/bus/preset_four id = "Bus 4" network = "tcommsat" - freq_listening = list(ENG_FREQ, AI_FREQ, PUB_FREQ) + freq_listening = list(ENG_FREQ, AI_FREQ, PUB_FREQ, ENT_FREQ) autolinkers = list("processor4", "engineering", "common") /obj/machinery/telecomms/bus/preset_cent id = "CentComm Bus" network = "tcommsat" - freq_listening = list(ERT_FREQ, DTH_FREQ) + freq_listening = list(ERT_FREQ, DTH_FREQ, ENT_FREQ) produces_heat = 0 autolinkers = list("processorCent", "centcomm") @@ -168,7 +168,7 @@ /obj/machinery/telecomms/server/presets/common id = "Common Server" - freq_listening = list(PUB_FREQ, AI_FREQ) // AI Private and Common + freq_listening = list(PUB_FREQ, AI_FREQ, ENT_FREQ) // AI Private and Common autolinkers = list("common") // "Unused" channels, AKA all others. diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index ef72e18f0ff..f56488e3e54 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -966,3 +966,17 @@ /obj/item/weapon/screwdriver = 5,/obj/item/weapon/crowbar = 5) //everything after the power cell had no amounts, I improvised. -Sayu +//FOR ACTORS GUILD - mainly props that cannot be spawned otherwise +/obj/machinery/vending/props + name = "Prop Dispenser" + desc = "All the props an actor could need. Probably." + icon_state = "Theater" + products = list(/obj/structure/flora/pottedplant = 2, /obj/item/device/flashlight/lamp = 2, /obj/item/device/flashlight/lamp/green = 2, /obj/item/weapon/reagent_containers/food/drinks/jar = 1, + /obj/item/weapon/nullrod = 1, /obj/item/toy/cultsword = 4, /obj/item/toy/katana = 2, /obj/item/weapon/phone = 3) + +//FOR ACTORS GUILD - Containers +/obj/machinery/vending/containers + name = "Container Dispenser" + desc = "A container that dispenses containers." + icon_state = "robotics" + products = list(/obj/structure/closet/crate/freezer = 2, /obj/structure/closet = 3, /obj/structure/closet/crate = 3) diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index 9a54fa18291..7282bf3e11c 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -98,6 +98,8 @@ name = "head of personnel's encryption key" icon_state = "hop_cypherkey" channels = list("Supply" = 1, "Service" = 1, "Command" = 1, "Security" = 0) + + /* /obj/item/device/encryptionkey/headset_mine name = "mining radio encryption key" @@ -122,3 +124,7 @@ /obj/item/device/encryptionkey/ert name = "\improper ERT radio encryption key" channels = list("Response Team" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Supply" = 1, "Service" = 1) + +/obj/item/device/encryptionkey/entertainment + name = "\improper entertainment radio key" + channels = list("Entertainment" = 1) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 5315942aabb..841806d51c0 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -209,6 +209,13 @@ item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/hos +/obj/item/device/radio/headset/entertainment + name = "actor's radio headset" + desc = "specially made to make you sound less cheesy." + icon_state = "com_headset" + item_state = "headset" + ks2type = /obj/item/device/encryptionkey/entertainment + /obj/item/device/radio/headset/attackby(obj/item/weapon/W as obj, mob/user as mob) // ..() user.set_machine(src) diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 9d7bcf88127..c8c100f844d 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -39,6 +39,11 @@ name = "station intercom (Security)" frequency = SEC_I_FREQ +/obj/item/device/radio/intercom/entertainment + name = "entertainment intercom" + frequency = ENT_FREQ + canhear_range = 4 + /obj/item/device/radio/intercom/New() ..() processing_objects += src @@ -54,6 +59,13 @@ num2text(SEC_I_FREQ) = list(access_security) ) +/obj/item/device/radio/intercom/entertainment/New() + ..() + internal_channels = list( + num2text(PUB_FREQ) = list(), + num2text(ENT_FREQ) = list() + ) + /obj/item/device/radio/intercom/syndicate name = "illicit intercom" desc = "Talk through this. Evilly" diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 0c5b1c4231b..498b638cea5 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -2,6 +2,7 @@ var/global/list/default_internal_channels = list( num2text(PUB_FREQ) = list(), num2text(AI_FREQ) = list(access_synth), + num2text(ENT_FREQ) = list(), num2text(ERT_FREQ) = list(access_cent_specops), num2text(COMM_FREQ)= list(access_heads), num2text(ENG_FREQ) = list(access_engine_equip, access_atmospherics), diff --git a/code/game/objects/items/weapons/circuitboards/computer/computer.dm b/code/game/objects/items/weapons/circuitboards/computer/computer.dm index 0bc090f9962..00236060622 100644 --- a/code/game/objects/items/weapons/circuitboards/computer/computer.dm +++ b/code/game/objects/items/weapons/circuitboards/computer/computer.dm @@ -1,5 +1,5 @@ #ifndef T_BOARD -#error T_BOARD macro is not defined but we need it! +#error T_BOARD macro is not defined but we need it! #endif /obj/item/weapon/circuitboard/message_monitor @@ -60,11 +60,11 @@ /obj/item/weapon/circuitboard/stationalert_engineering name = T_BOARD("station alert console (engineering)") build_path = /obj/machinery/computer/station_alert - + /obj/item/weapon/circuitboard/stationalert_security name = T_BOARD("station alert console (security)") build_path = /obj/machinery/computer/station_alert - + /obj/item/weapon/circuitboard/stationalert_all name = T_BOARD("station alert console (all)") build_path = /obj/machinery/computer/station_alert/all @@ -92,9 +92,14 @@ build_path = /obj/machinery/computer/cloning origin_tech = list(TECH_DATA = 3, TECH_BIO = 3) -/obj/item/weapon/circuitboard/arcade - name = T_BOARD("arcade machine") - build_path = /obj/machinery/computer/arcade +/obj/item/weapon/circuitboard/arcade/battle + name = T_BOARD("battle arcade machine") + build_path = /obj/machinery/computer/arcade/battle + origin_tech = list(TECH_DATA = 1) + +/obj/item/weapon/circuitboard/arcade/orion_trail + name = T_BOARD("orion trail arcade machine") + build_path = /obj/machinery/computer/arcade/orion_trail origin_tech = list(TECH_DATA = 1) /obj/item/weapon/circuitboard/turbine_control diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index 1a1ca0e3729..8ecd82df961 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -85,6 +85,7 @@ new /obj/item/weapon/storage/backpack/cultpack (src) new /obj/item/weapon/storage/fancy/candle_box(src) new /obj/item/weapon/storage/fancy/candle_box(src) + new /obj/item/weapon/deck/tarot(src) return diff --git a/code/modules/acting/acting_items.dm b/code/modules/acting/acting_items.dm new file mode 100644 index 00000000000..1863497ed35 --- /dev/null +++ b/code/modules/acting/acting_items.dm @@ -0,0 +1,37 @@ +/obj/machinery/acting/wardrobe + name = "Wardrobe Dispenser" + desc = "A machine that dispenses holo-clothing for those in need." + icon = 'icons/obj/vending.dmi' + icon_state = "cart" + anchored = 1 + density = 1 + var/active = 1 + +/obj/machinery/acting/wardrobe/attack_hand(var/mob/user as mob) + user.show_message("You push a button and watch patiently as the machine begins to hum.") + if(active) + active = 0 + spawn(30) + new /obj/item/weapon/storage/box/syndie_kit/chameleon(src.loc) + src.visible_message("\The [src] beeps, dispensing a small box onto the floor.", "You hear a beeping sound followed by a thumping noise of some kind.") + active = 1 + +/obj/machinery/acting/changer + name = "Quickee's Plastic Surgeon" + desc = "For when you need to be someone else right now." + icon = 'icons/obj/surgery.dmi' + icon_state = "bioprinter" + anchored = 1 + density = 1 + +/obj/machinery/acting/changer/attack_hand(var/mob/user as mob) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.change_appearance(APPEARANCE_ALL, H.loc, H, H.generate_valid_species(), state = z_state) + var/getName = sanitize(input(H, "Would you like to change your name to something else?", "Name change") as null|text, MAX_NAME_LEN) + if(getName) + H.real_name = getName + H.name = getName + H.dna.real_name = getName + if(H.mind) + H.mind.name = H.name diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index 897d95f02f1..579a329b7fc 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -1118,7 +1118,31 @@ var/global/list/gear_datums = list() /datum/gear/cards display_name = "deck of cards" - path = /obj/item/weapon/deck + path = /obj/item/weapon/deck/cards + sort_category = "misc" + cost = 1 + +/datum/gear/tarot + display_name = "deck of tarot cards" + path = /obj/item/weapon/deck/tarot + sort_category = "misc" + cost = 1 + +/datum/gear/holder + display_name = "card holder" + path = /obj/item/weapon/deck/holder + sort_category = "misc" + cost = 1 + +/datum/gear/cardemon_pack + display_name = "Cardemon booster pack" + path = /obj/item/weapon/pack/cardemon + sort_category = "misc" + cost = 1 + +/datum/gear/spaceball_pack + display_name = "Spaceball booster pack" + path = /obj/item/weapon/pack/spaceball sort_category = "misc" cost = 1 diff --git a/code/modules/games/boardgame.dm b/code/modules/games/boardgame.dm new file mode 100644 index 00000000000..3d9768301a8 --- /dev/null +++ b/code/modules/games/boardgame.dm @@ -0,0 +1,126 @@ +/*TODO: + implement icon loading that is efficient using browse_rsc + implement being able to move pieces +*/ + +/obj/item/weapon/board + name = "board" + desc = "A standard 12' checkerboard. Well used." + icon = 'icons/obj/pieces.dmi' + icon_state = "board" + + var/num = 0 + var/board_icons = list() + var/board = list() + var/selected = -1 + +/obj/item/weapon/board/examine(mob/user, var/distance = -1) + if(in_range(user,src)) + user.set_machine(src) + interact(user) + return + ..() + +obj/item/weapon/board/attackby(obj/item/I as obj, mob/user as mob) + if(I.w_class != 1) //only small stuff + user.show_message("\The [I] is too big to be used as a board piece.") + return + if(num == 64) + user.show_message("\The [src] is already full!") + return + user.drop_from_inventory(I) + I.forceMove(src) + num++ + + if(!board_icons["[I.icon] [I.icon_state]"]) + board_icons["[I.icon] [I.icon_state]"] = new /icon(I.icon,I.icon_state) + + var i; + for(i=0;i<64;i++) + if(!board["[i]"]) + board["[i]"] = I + return + + src.updateDialog() + +/obj/item/weapon/board/interact(mob/user as mob) + + var/dat = "" + dat += "" + var i; + for(i=0; i<64; i++) + if(i%8 == 0) + dat += "" + dat += "" . += "
" + else if(i%2 == 0) + dat += "'#66CCFF'>" + else + dat += "'#252536'>" + dat += "= 0) + dat += "
Remove Selected Piece" + user << browse(dat,"window=boardgame;size=500x500") + onclose(usr, "boardgame") + +/obj/item/weapon/board/Topic(href, href_list) + if(href_list["select"]) + var/s = href_list["select"] + var/obj/item/I = board["[s]"] + if(selected >= 0) + if(I) //cant put items on other items. + return + + //put item in new spot. + I = board["[selected]"] + board["[selected]"] = null + board -= "[selected]" + board -= null + board["[s]"] = I + selected = -1 + else + if(I) + selected = text2num(s) + if(href_list["remove"]) + var/obj/item/I = board["[selected]"] + board["[selected]"] = null + board -= "[selected]" + board -= null + I.forceMove(src.loc) + num-- + selected = -1 + var j + for(j=0;j<64;j++) + if(board["[j]"]) + var/obj/item/K = board["[j]"] + if(K.icon == I.icon && cmptext(K.icon_state,I.icon_state)) + src.updateDialog() + return + //Didn't find it in use, remove it and allow GC to delete it. + board_icons["[I.icon] [I.icon_state]"] = null + board_icons -= "[I.icon] [I.icon_state]" + board_icons -= null + src.updateDialog() + +/obj/item/weapon/checker/ + name = "black checker" + desc = "It is plastic and shiny." + icon = 'icons/obj/pieces.dmi' + icon_state = "checker_black" + w_class = 1 + +/obj/item/weapon/checker/red + name = "red checker" + icon_state = "checker_red" diff --git a/code/modules/games/cardemon.dm b/code/modules/games/cardemon.dm new file mode 100644 index 00000000000..769e090380f --- /dev/null +++ b/code/modules/games/cardemon.dm @@ -0,0 +1,30 @@ +/obj/item/weapon/pack/cardemon + name = "cardemon booster pack" + desc = "Finally! A children's card game in space!" + icon_state = "card_pack_cardemon" + +/obj/item/weapon/pack/cardemon/New() + var/datum/playingcard/P + var/i + for(i=0; i<5; i++) + var/rarity + if(prob(10)) + if(prob(5)) + if(prob(5)) + rarity = "Plasteel" + else + rarity = "Platinum" + else + rarity = "Silver" + + var/nam = pick("Death","Life","Plant","Leaf","Air","Earth","Fire","Water","Killer","Holy", "God", "Ordinary","Demon","Angel", "Plasteel", "Phoron", "Mad", "Insane", "Metal", "Steel", "Secret") + var/nam2 = pick("Carp", "Corgi", "Cat", "Mouse", "Octopus", "Lizard", "Monkey", "Plant", "Duck", "Demon", "Spider", "Bird") + + P = new() + P.name = "[nam] [nam2]" + P.card_icon = "card_cardemon" + if(rarity) + P.name = "[rarity] [P.name]" + P.card_icon += "_[rarity]" + P.back_icon = "card_back_cardemon" + cards += P \ No newline at end of file diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm index 6ff5f22f20f..368bfdd9a5f 100644 --- a/code/modules/games/cards.dm +++ b/code/modules/games/cards.dm @@ -1,17 +1,24 @@ /datum/playingcard var/name = "playing card" var/card_icon = "card_back" + var/back_icon = "card_back" /obj/item/weapon/deck - name = "deck of cards" - desc = "A simple deck of playing cards." - icon = 'icons/obj/playing_cards.dmi' - icon_state = "deck" w_class = 2 - + icon = 'icons/obj/playing_cards.dmi' var/list/cards = list() -/obj/item/weapon/deck/New() +/obj/item/weapon/deck/holder + name = "card box" + desc = "A small leather case to show how classy you are compared to everyone else." + icon_state = "card_holder" + +/obj/item/weapon/deck/cards + name = "deck of cards" + desc = "A simple deck of playing cards." + icon_state = "deck" + +/obj/item/weapon/deck/cards/New() ..() var/datum/playingcard/P @@ -27,12 +34,14 @@ P = new() P.name = "[number] of [suit]" P.card_icon = "[colour]num" + P.back_icon = "card_back" cards += P for(var/number in list("jack","queen","king")) P = new() P.name = "[number] of [suit]" P.card_icon = "[colour]col" + P.back_icon = "card_back" cards += P @@ -48,7 +57,7 @@ for(var/datum/playingcard/P in H.cards) cards += P qdel(O) - user << "You place your cards on the bottom of the deck." + user << "You place your cards on the bottom of \the [src]." return ..() @@ -128,12 +137,12 @@ /obj/item/weapon/hand/attackby(obj/O as obj, mob/user as mob) if(istype(O,/obj/item/weapon/hand)) var/obj/item/weapon/hand/H = O - for(var/datum/playingcard/P in H.cards) - cards += P - src.concealed = H.concealed - qdel(O) - user.put_in_hands(src) - update_icon() + for(var/datum/playingcard/P in cards) + H.cards += P + H.concealed = src.concealed + user.drop_from_inventory(src,user.loc) + qdel(src) + H.update_icon() return ..() @@ -159,6 +168,28 @@ deal_at(usr, over) +/obj/item/weapon/pack/ + name = "Card Pack" + desc = "For those with disposible income." + + icon_state = "card_pack" + icon = 'icons/obj/playing_cards.dmi' + w_class = 1 + var/list/cards = list() + + +/obj/item/weapon/pack/attack_self(var/mob/user as mob) + user.visible_message("[user] rips open \the [src]!") + var/obj/item/weapon/hand/H = new() + + H.cards += cards + cards.Cut(); + user.drop_item() + qdel(src) + + H.update_icon() + user.put_in_active_hand(H) + /obj/item/weapon/hand name = "hand of cards" desc = "Some playing cards." @@ -226,7 +257,7 @@ if(cards.len == 1) var/datum/playingcard/P = cards[1] - var/image/I = new(src.icon, (concealed ? "card_back" : "[P.card_icon]") ) + var/image/I = new(src.icon, (concealed ? "[P.back_icon]" : "[P.card_icon]") ) I.pixel_x += (-5+rand(10)) I.pixel_y += (-5+rand(10)) overlays += I @@ -249,7 +280,7 @@ M.Translate(-2, 0) var/i = 0 for(var/datum/playingcard/P in cards) - var/image/I = new(src.icon, (concealed ? "card_back" : "[P.card_icon]") ) + var/image/I = new(src.icon, (concealed ? "[P.back_icon]" : "[P.card_icon]") ) //I.pixel_x = origin+(offset*i) switch(direction) if(SOUTH) diff --git a/code/modules/games/spaceball_cards.dm b/code/modules/games/spaceball_cards.dm new file mode 100644 index 00000000000..d54638d8d29 --- /dev/null +++ b/code/modules/games/spaceball_cards.dm @@ -0,0 +1,23 @@ +/obj/item/weapon/pack/spaceball + name = "spaceball booster pack" + desc = "Officially licensed to take your money." + icon_state = "card_pack_spaceball" + +/obj/item/weapon/pack/spaceball/New() + var/datum/playingcard/P + var/i + var/year = 554 + text2num(time2text(world.timeofday, "YYYY")) + for(i=0;i<5;i++) + P = new() + if(prob(1)) + P.name = "Spaceball Jones, [year] Brickburn Galaxy Trekers" + P.card_icon = "spaceball_jones" + else + var/language_type = pick(/datum/language/human,/datum/language/diona,/datum/language/tajaran,/datum/language/unathi) + var/datum/language/L = new language_type() + var/team = pick("Brickburn Galaxy Trekers","Mars Rovers", "Qerrbalak Saints", "Moghes Rockets", "Ahdomai Lightening") + P.name = "[L.get_random_name(pick(MALE,FEMALE))], [year - rand(0,50)] [team]" + P.card_icon = "spaceball_standard" + P.back_icon = "card_back_spaceball" + + cards += P \ No newline at end of file diff --git a/code/modules/games/tarot.dm b/code/modules/games/tarot.dm new file mode 100644 index 00000000000..b8e8618af02 --- /dev/null +++ b/code/modules/games/tarot.dm @@ -0,0 +1,39 @@ +/* this is a playing card deck based off of the Rider-Waite Tarot Deck. +*/ + +/obj/item/weapon/deck/tarot + name = "deck of tarot cards" + desc = "For all your occult needs!" + icon_state = "deck_tarot" + +/obj/item/weapon/deck/tarot/New() + ..() + + var/datum/playingcard/P + for(var/name in list("Fool","Magician","High Priestess","Empress","Emperor","Hierophant","Lovers","Chariot","Strength","Hermit","Wheel of Fortune","Justice","Hanged Man","Death","Temperance","Devil","Tower","Star","Moon","Sun","Judgement","World")) + P = new() + P.name = "[name]" + P.card_icon = "tarot_major" + P.back_icon = "card_back_tarot" + cards += P + for(var/suit in list("wands","pentacles","cups","swords")) + + + for(var/number in list("ace","two","three","four","five","six","seven","eight","nine","ten","page","knight","queen","king")) + P = new() + P.name = "[number] of [suit]" + P.card_icon = "tarot_[suit]" + P.back_icon = "card_back_tarot" + cards += P + +/obj/item/weapon/deck/tarot/attack_self(var/mob/user as mob) + var/list/newcards = list() + while(cards.len) + var/datum/playingcard/P = pick(cards) + P.name = replacetext(P.name," reversed","") + if(prob(50)) + P.name += " reversed" + newcards += P + cards -= P + cards = newcards + user.visible_message("\The [user] shuffles [src].") \ No newline at end of file diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 460a16d3df4..5a5f3348790 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -14,6 +14,7 @@ var/list/department_radio_keys = list( ":u" = "Supply", ".u" = "Supply", ":v" = "Service", ".v" = "Service", ":p" = "AI Private", ".p" = "AI Private", + ":z" = "Entertainment",".z" = "Entertainment", ":R" = "right ear", ".R" = "right ear", ":L" = "left ear", ".L" = "left ear", @@ -29,6 +30,7 @@ var/list/department_radio_keys = list( ":U" = "Supply", ".U" = "Supply", ":V" = "Service", ".V" = "Service", ":P" = "AI Private", ".P" = "AI Private", + ":Z" = "Entertainment",".Z" = "Entertainment", //kinda localization -- rastaf0 //same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding. @@ -167,7 +169,7 @@ proc/get_radio_key_from_channel(var/channel) speaking.broadcast(src,trim(message)) return 1 - verb = say_quote(message, speaking) + verb = say_quote(message, speaking) if(is_muzzled()) src << "You're muzzled and cannot speak!" diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 98eb37bebd4..b606d2559ef 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -744,10 +744,17 @@ CIRCUITS BELOW desc = "Allows for the construction of \a [item_name] circuit board." /datum/design/circuit/arcademachine - name = "arcade machine" + name = "battle arcade machine" id = "arcademachine" req_tech = list(TECH_DATA = 1) - build_path = /obj/item/weapon/circuitboard/arcade + build_path = /obj/item/weapon/circuitboard/arcade/battle + sort_string = "MAAAA" + +/datum/design/circuit/oriontrail + name = "orion trail arcade machine" + id = "oriontrail" + req_tech = list(TECH_DATA = 1) + build_path = /obj/item/weapon/circuitboard/arcade/orion_trail sort_string = "MAAAA" /datum/design/circuit/seccamera diff --git a/code/stylesheet.dm b/code/stylesheet.dm index d42ac80b7c8..32e69caea60 100644 --- a/code/stylesheet.dm +++ b/code/stylesheet.dm @@ -47,6 +47,7 @@ em {font-style: normal;font-weight: bold;} .syndradio {color: #6D3F40;} .centradio {color: #5C5C8A;} .airadio {color: #FF00FF;} +.entradio {color: #339966;} .secradio {color: #A30000;} .engradio {color: #A66300;} diff --git a/icons/obj/pieces.dmi b/icons/obj/pieces.dmi new file mode 100644 index 0000000000000000000000000000000000000000..de3a197b8ca2949ea5430a27c4959491ab151532 GIT binary patch literal 498 zcmV>PLKYUlz`$nA|0N|hj=kLd00001bW%=J06^y0W&i*H zetJ|`bVOxyV{&P5bZKvH004NLQ&wnH! zk5vQd;JZ_J3Z)jJOMb~yBDihBSqqysq5MV=ql$Q3@$M&W2%83dO$YO)fn3uD2J;OYuA13$_*hOldMsuuwWnt%%Lem_iGQQMKR?s_(9P?cK{)ma*B?$$ oeS$IwLUl-kFo%wBZrk0kLW&oK?Oiaec#zsa)(WObai!NADJpjxA0GR*)00960 z|7HLHnKJu9geRyPU|ulfb~hqiI7V=-0C=38l+SL%APmOO;VDpipZ2HMUaD485345a z0gwaULP7umU0%O5NWEfuv(fJ}@EN@2htucz!jE5P_KzWIXZfD*US3(ZXqASXe7v)6 zK>atQlEefFbGT6`rw!|r4l$>1toscxV~HP-grGzZauNxGOLV@Wa`Ygv2V)vE_XuZa zX_Dt?@uN*PwNdnKAZdG@+hs8!5yOI zFWesx#k+Gyd@E&1g+eH$bwVDT|L4f*{Ki4&qN?kv5_H})rZIGWD*tZLQUEQ_pn5F$7fkrm8z-#$2)q+H5 zr3DhW|8)Nd1Rkuw0}xm)SEfc&NTLqhl&vrSZb7Yr#GZelCJ2N&P*rt>1f-FY?ogSP zZRyIFxAEKGNVIm#fG%+I8VD@nOlCQlV%8vb<=;|YumW0%2?FNEuF?qt#sRKEWroU+ zqBKd|g_z9ezYoOJ6}fX^=}kQoCPvEP3O0zL-0)GD;2>2Wb_#6rN?R8M# zr2GTi2QEyU`vP*Zz=`?A$$xX9oM9M-VHk#C7=~e(zm}=beI^?R{b=&k@k4o(Z?#ri z@Z@b(C3Q{bo2qG=dP5)IT3*2TE?>Ssk8-tItuzuyb_o(_nnlwf0Xu$!3bc8La$^k0 zqg<~P7N~cy1I=QwzyfLoo}CWoW{IA?b^=xb3{WRE>_BY=;1sgsV}U?!IxL`8TPWb> zU<(9%4h6OWfj}PWKxhp}*`nR+jn9F=iya>o*oATfAK!OZAqB5OaT_yrTe zb{pRTnA<4?^Rg`Q_$eAcxPR{j!0T~(tp|m370Ame#|Q5N&-N-@fcFc{oihx>Fbu;m z48weEhGBqtUDto8l6Nr-PfQMp#figJU7Mi!RZnNoD{5nKJb&Hwl1d00001bW%o9D*u~ zQd5Xlmsgrgq|L;rOwBDQsl=s9S%1OR&jlRb0Fe=D(3p_hD*yliAxT6*RA_V^OR(++LYx0y+b=JX_cy>8trfF{G`0ssKNh`F*+XDi*;`K!Jk2FHc= zR5G>pOKJm-fX@F@s_Prc!mV1M)cn6oG# z1)E=8eAVA4?i5r(NTVQdor|v454~Xu8qa_Xrq=gtfhHJz5WgbVN%cqk2Zq}m00000 zfS;mu?osC=8;M1j+-kmlpVI?0TW(ST<-3%ZQiQw~gj7U!e00000NkvXXu0mjfBL)cB diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index 8285ec7e5ff217f1b58213f5a17b55a517759b17..37785865d17d0c16deff3920ba50b42caa6204a7 100644 GIT binary patch delta 13997 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
" -/datum/expansion/multitool/circuitboards/stationalert/on_topic(href, href_list, usr) +/datum/expansion/multitool/circuitboards/stationalert/on_topic(href, href_list, user) var/obj/item/weapon/circuitboard/stationalert/SA = holder if(href_list["add"]) var/datum/alarm_handler/AH = locate(href_list["add"]) in alarm_manager.all_handlers diff --git a/code/datums/expansions/multitool/items/cable.dm b/code/datums/expansions/multitool/items/cable.dm new file mode 100644 index 00000000000..b8d5ae71a61 --- /dev/null +++ b/code/datums/expansions/multitool/items/cable.dm @@ -0,0 +1,18 @@ +/obj/item/stack/cable_coil/New() + set_expansion(/datum/expansion/multitool, new/datum/expansion/multitool/items/cable(src)) + ..() + +/datum/expansion/multitool/items/cable/get_interact_window(var/obj/item/device/multitool/M, var/mob/user) + . += "Available Colors
" + . += "" + for(var/cable_color in possible_cable_coil_colours) + . += "" + . += "
[cable_color]Select
" + +/datum/expansion/multitool/items/cable/on_topic(href, href_list, user) + var/obj/item/stack/cable_coil/cable_coil = holder + if(href_list["select_color"] && href_list["select_color"] in possible_cable_coil_colours) + cable_coil.set_cable_color(href_list["select_color"], user) + return MT_REFRESH + + return ..() diff --git a/code/datums/expansions/multitool/items/items.dm b/code/datums/expansions/multitool/items/items.dm new file mode 100644 index 00000000000..75bb67bca65 --- /dev/null +++ b/code/datums/expansions/multitool/items/items.dm @@ -0,0 +1,5 @@ +/datum/expansion/multitool/items/CanUseTopic(var/mob/user) + if(isAI(user)) // No remote AI access + return STATUS_CLOSE + + return ..() diff --git a/code/datums/expansions/multitool/cloning.dm b/code/datums/expansions/multitool/machinery/cloning.dm similarity index 100% rename from code/datums/expansions/multitool/cloning.dm rename to code/datums/expansions/multitool/machinery/cloning.dm diff --git a/code/datums/expansions/multitool/multitool.dm b/code/datums/expansions/multitool/multitool.dm index 8a2b8226171..1612355d030 100644 --- a/code/datums/expansions/multitool/multitool.dm +++ b/code/datums/expansions/multitool/multitool.dm @@ -75,7 +75,7 @@ close_window(user) return 1 -/datum/expansion/multitool/proc/on_topic(href, href_list, usr) +/datum/expansion/multitool/proc/on_topic(href, href_list, user) return MT_NOACTION /datum/expansion/multitool/proc/send_buffer(var/obj/item/device/multitool/M, var/atom/buffer, var/mob/user) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 7f2186dcd5d..e9f4e3ef6d3 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -22,6 +22,8 @@ If d1 = dir1 and d2 = dir2, it's a full X-X cable, getting from dir1 to dir2 By design, d1 is the smallest direction and d2 is the highest */ +var/list/possible_cable_coil_colours = list ("Yellow", "Green", "Pink", "Blue", "Orange", "Cyan", "Red") + /obj/structure/cable level = 1 anchored =1 @@ -550,6 +552,28 @@ obj/structure/cable/proc/cableColor(var/colorC) icon_state = "coil" name = "cable coil" +/obj/item/stack/cable_coil/proc/set_cable_color(var/selected_color, var/user) + if(!selected_color) + return + + switch(selected_color) + if("Yellow") + color = COLOR_YELLOW + if("Green") + color = COLOR_LIME + if("Pink") + color = COLOR_PINK + if("Blue") + color = COLOR_BLUE + if("Orange") + color = COLOR_ORANGE + if("Cyan") + color = COLOR_CYAN + else + color = COLOR_RED + selected_color = "red" + user << "You change \the [src]'s color to [lowertext(selected_color)]." + /obj/item/stack/cable_coil/proc/update_wclass() if(amount == 1) w_class = 1.0 @@ -590,26 +614,8 @@ obj/structure/cable/proc/cableColor(var/colorC) set name = "Change Colour" set category = "Object" - var/list/possible_colours = list ("Yellow", "Green", "Pink", "Blue", "Orange", "Cyan", "Red") - var/selected_type = input("Pick new colour.", "Cable Colour", null, null) as null|anything in possible_colours - - if(selected_type) - switch(selected_type) - if("Yellow") - color = COLOR_YELLOW - if("Green") - color = COLOR_LIME - if("Pink") - color = COLOR_PINK - if("Blue") - color = COLOR_BLUE - if("Orange") - color = COLOR_ORANGE - if("Cyan") - color = COLOR_CYAN - else - color = COLOR_RED - usr << "You change your cable coil's colour to [selected_type]" + var/selected_type = input("Pick new colour.", "Cable Colour", null, null) as null|anything in possible_cable_coil_colours + set_cable_color(selected_type, usr) // Items usable on a cable coil : // - Wirecutters : cut them duh ! From 3d2d6e641c9a7f0d44e0982f423c048e6b3c5040 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Wed, 9 Dec 2015 20:21:26 +0100 Subject: [PATCH 12/49] Changelog entry. --- html/changelogs/PsiOmegaDelta-MultitoolPower.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/html/changelogs/PsiOmegaDelta-MultitoolPower.yml b/html/changelogs/PsiOmegaDelta-MultitoolPower.yml index d875108dd80..91f930f87c2 100644 --- a/html/changelogs/PsiOmegaDelta-MultitoolPower.yml +++ b/html/changelogs/PsiOmegaDelta-MultitoolPower.yml @@ -5,3 +5,4 @@ changes: - rscadd: "The AI can now toggle multitool mode on/off, using the new 'Toggle Multitool Mode' verb." - rscadd: "Cloning vats can now be connected to a cloning console by using a multitool." - rscadd: "Station alert console circuits can now be altered using a multitool, changing which alarm types are displayed." + - rscadd: "Can now select the color of a cable coil using a multitool." From b2720a8c6c81f71c48e0009ce256e7ee640530cb Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Wed, 9 Dec 2015 20:41:55 +0100 Subject: [PATCH 13/49] Fixes sparks causing runtimes on pooling. --- code/_helpers/datum_pool.dm | 4 ++-- code/_onclick/hud/spell_screen_objects.dm | 6 +++--- code/datums/expansions/expansion.dm | 12 ++++++++---- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/code/_helpers/datum_pool.dm b/code/_helpers/datum_pool.dm index b5bcea123fe..007a9976104 100644 --- a/code/_helpers/datum_pool.dm +++ b/code/_helpers/datum_pool.dm @@ -94,8 +94,8 @@ var/global/list/GlobalPool = list() loc = args ..() -/datum/proc/ResetVars(var/list/exlude = list()) - var/list/excluded = list("animate_movement", "loc", "locs", "parent_type", "vars", "verbs", "type") + exlude +/datum/proc/ResetVars(var/list/exclude = list()) + var/list/excluded = list("animate_movement", "loc", "locs", "parent_type", "vars", "verbs", "type") + exclude for(var/V in vars) if(V in excluded) diff --git a/code/_onclick/hud/spell_screen_objects.dm b/code/_onclick/hud/spell_screen_objects.dm index a59474749a1..213a4ed16aa 100644 --- a/code/_onclick/hud/spell_screen_objects.dm +++ b/code/_onclick/hud/spell_screen_objects.dm @@ -23,9 +23,9 @@ spell_holder.client.screen -= src spell_holder = null -/obj/screen/movable/spell_master/ResetVars() - ..("spell_objects", args) - spell_objects = list() +/obj/screen/movable/spell_master/ResetVars(var/list/exclude = list()) + exclude += "spell_objects" + ..(exclude) /obj/screen/movable/spell_master/MouseDrop() if(showing) diff --git a/code/datums/expansions/expansion.dm b/code/datums/expansions/expansion.dm index 7eee07e0d9c..96227aa98e0 100644 --- a/code/datums/expansions/expansion.dm +++ b/code/datums/expansions/expansion.dm @@ -25,12 +25,16 @@ var/list/datum/expansion/expansions = list() /obj/Destroy() - if(istype(expansions)) - for(var/expansion in expansions) - qdel(expansions[expansion]) - expansions.Cut() + for(var/expansion in expansions) + qdel(expansions[expansion]) + expansions.Cut() return ..() +/obj/ResetVars(var/list/exclude = list()) + exclude += "expansions" + ..(exclude) + //expansions = list() + /obj/proc/set_expansion(var/type, var/instance) if(expansions[type]) qdel(expansions[type]) From d43cf313c0f1e0680f9547330ec038905acd81a8 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Wed, 9 Dec 2015 21:49:58 +0100 Subject: [PATCH 14/49] Relocates color definitions. Lowercases color definitions. --- code/__defines/misc.dm | 63 +++++++++---------- .../expansions/multitool/items/cable.dm | 9 ++- code/modules/power/cable.dm | 31 +++++---- 3 files changed, 53 insertions(+), 50 deletions(-) diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index bcaa6e98001..ec0386d0c10 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -63,24 +63,37 @@ #define LIFE_HUD 10 // STATUS_HUD that only reports dead or alive //some colors -#define COLOR_WHITE "#FFFFFF" -#define COLOR_SILVER "#C0C0C0" -#define COLOR_GRAY "#808080" -#define COLOR_BLACK "#000000" -#define COLOR_RED "#FF0000" -#define COLOR_MAROON "#800000" -#define COLOR_YELLOW "#FFFF00" -#define COLOR_OLIVE "#808000" -#define COLOR_LIME "#00FF00" -#define COLOR_GREEN "#008000" -#define COLOR_CYAN "#00FFFF" -#define COLOR_TEAL "#008080" -#define COLOR_BLUE "#0000FF" -#define COLOR_NAVY "#000080" -#define COLOR_PINK "#FF00FF" -#define COLOR_PURPLE "#800080" -#define COLOR_ORANGE "#FF9900" -#define COLOR_LUMINOL "#66FFFF" +#define COLOR_WHITE "#ffffff" +#define COLOR_SILVER "#c0c0c0" +#define COLOR_GRAY "#808080" +#define COLOR_BLACK "#000000" +#define COLOR_RED "#ff0000" +#define COLOR_MAROON "#800000" +#define COLOR_YELLOW "#ffff00" +#define COLOR_OLIVE "#808000" +#define COLOR_LIME "#00ff00" +#define COLOR_GREEN "#008000" +#define COLOR_CYAN "#00ffff" +#define COLOR_TEAL "#008080" +#define COLOR_BLUE "#0000ff" +#define COLOR_NAVY "#000080" +#define COLOR_PINK "#ff00ff" +#define COLOR_PURPLE "#800080" +#define COLOR_ORANGE "#ff9900" +#define COLOR_LUMINOL "#66ffff" +#define COLOR_BEIGE "#ceb689" +#define COLOR_BLUE_GRAY "#6a97b0" +#define COLOR_BROWN "#b19664" +#define COLOR_DARK_BROWN "#917448" +#define COLOR_DARK_ORANGE "#b95a00" +#define COLOR_GREEN_GRAY "#8daf6a" +#define COLOR_RED_GRAY "#aa5f61" +#define COLOR_PALE_BLUE_GRAY "#8bbbd5" +#define COLOR_PALE_GREEN_GRAY "#aed18b" +#define COLOR_PALE_RED_GRAY "#cc9090" +#define COLOR_PALE_PURPLE_GRAY "#bda2ba" +#define COLOR_PURPLE_GRAY "#a2819e" + // Shuttles. // These define the time taken for the shuttle to get to the space station, and the time before it leaves again. @@ -168,20 +181,6 @@ #define PROJECTILE_CONTINUE -1 //if the projectile should continue flying after calling bullet_act() #define PROJECTILE_FORCE_MISS -2 //if the projectile should treat the attack as a miss (suppresses attack and admin logs) - only applies to mobs. -// Custom colors -#define COLOR_BEIGE "#CEB689" -#define COLOR_BLUE_GRAY "#6A97B0" -#define COLOR_BROWN "#B19664" -#define COLOR_DARK_BROWN "#917448" -#define COLOR_DARK_ORANGE "#B95A00" -#define COLOR_GREEN_GRAY "#8DAF6A" -#define COLOR_RED_GRAY "#AA5F61" -#define COLOR_PALE_BLUE_GRAY "#8BBBD5" -#define COLOR_PALE_GREEN_GRAY "#AED18B" -#define COLOR_PALE_RED_GRAY "#CC9090" -#define COLOR_PALE_PURPLE_GRAY "#BDA2BA" -#define COLOR_PURPLE_GRAY "#A2819E" - //Camera capture modes #define CAPTURE_MODE_REGULAR 0 //Regular polaroid camera mode #define CAPTURE_MODE_ALL 1 //Admin camera mode diff --git a/code/datums/expansions/multitool/items/cable.dm b/code/datums/expansions/multitool/items/cable.dm index b8d5ae71a61..406e850914f 100644 --- a/code/datums/expansions/multitool/items/cable.dm +++ b/code/datums/expansions/multitool/items/cable.dm @@ -3,10 +3,17 @@ ..() /datum/expansion/multitool/items/cable/get_interact_window(var/obj/item/device/multitool/M, var/mob/user) + var/obj/item/stack/cable_coil/cable_coil = holder . += "Available Colors
" . += "" for(var/cable_color in possible_cable_coil_colours) - . += "" + . += "" + . += "" + if(cable_coil.color == possible_cable_coil_colours[cable_color]) + . += "" + else + . += "" + . += "" . += "
[cable_color]Select
[cable_color]SelectedSelect
" /datum/expansion/multitool/items/cable/on_topic(href, href_list, user) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index e9f4e3ef6d3..2a948cbc050 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -22,7 +22,15 @@ If d1 = dir1 and d2 = dir2, it's a full X-X cable, getting from dir1 to dir2 By design, d1 is the smallest direction and d2 is the highest */ -var/list/possible_cable_coil_colours = list ("Yellow", "Green", "Pink", "Blue", "Orange", "Cyan", "Red") +var/list/possible_cable_coil_colours = list( + "Yellow" = COLOR_YELLOW, + "Green" = COLOR_LIME, + "Pink" = COLOR_PINK, + "Blue" = COLOR_BLUE, + "Orange" = COLOR_ORANGE, + "Cyan" = COLOR_CYAN, + "Red" = COLOR_RED + ) /obj/structure/cable level = 1 @@ -556,22 +564,11 @@ obj/structure/cable/proc/cableColor(var/colorC) if(!selected_color) return - switch(selected_color) - if("Yellow") - color = COLOR_YELLOW - if("Green") - color = COLOR_LIME - if("Pink") - color = COLOR_PINK - if("Blue") - color = COLOR_BLUE - if("Orange") - color = COLOR_ORANGE - if("Cyan") - color = COLOR_CYAN - else - color = COLOR_RED - selected_color = "red" + var/final_color = possible_cable_coil_colours[selected_color] + if(!final_color) + final_color = possible_cable_coil_colours["Red"] + selected_color = "red" + color = final_color user << "You change \the [src]'s color to [lowertext(selected_color)]." /obj/item/stack/cable_coil/proc/update_wclass() From d5447d9e954a937bc1a18c8baa2f76ad218aff44 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 10 Dec 2015 10:23:49 +1030 Subject: [PATCH 15/49] Fixes #10838 --- code/modules/materials/material_recipes.dm | 2 +- code/modules/materials/materials.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm index a5a0608f06f..f146e421654 100644 --- a/code/modules/materials/material_recipes.dm +++ b/code/modules/materials/material_recipes.dm @@ -11,7 +11,7 @@ recipes += new/datum/stack_recipe("[display_name] ashtray", /obj/item/weapon/material/ashtray, 2, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") recipes += new/datum/stack_recipe("[display_name] spoon", /obj/item/weapon/material/kitchen/utensil/spoon/plastic, 1, on_floor = 1, supplied_material = "[name]") - if(integrity>=100) + if(integrity>=50) recipes += new/datum/stack_recipe("[display_name] door", /obj/structure/simple_door, 10, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") recipes += new/datum/stack_recipe("[display_name] barricade", /obj/structure/barricade, 5, time = 50, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") recipes += new/datum/stack_recipe("[display_name] stool", /obj/item/weapon/stool, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") diff --git a/code/modules/materials/materials.dm b/code/modules/materials/materials.dm index 5247291f7c8..ffd1e6ffbc8 100644 --- a/code/modules/materials/materials.dm +++ b/code/modules/materials/materials.dm @@ -551,7 +551,7 @@ var/list/name_to_material name = "wood" stack_type = /obj/item/stack/material/wood icon_colour = "#824B28" - integrity = 25 + integrity = 50 icon_base = "solid" explosion_resistance = 2 shard_type = SHARD_SPLINTER From f1630108db7ebac8a3fa33cd88c982033b3df83a Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 10 Dec 2015 10:32:35 +1030 Subject: [PATCH 16/49] Fixes #10915 --- code/game/objects/items/robot/robot_items.dm | 4 ++++ code/modules/mob/living/silicon/robot/life.dm | 8 ++++++-- code/modules/mob/living/silicon/robot/robot_modules.dm | 2 +- code/setup.dm | 1 + 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index afe50bc2b76..3ccf1fb3a96 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -71,6 +71,10 @@ icon_state = "meson" icon = 'icons/obj/clothing/glasses.dmi' +/obj/item/borg/sight/material + name = "\proper material scanner vision" + sight_mode = BORGMATERIAL + /obj/item/borg/sight/hud name = "hud" var/obj/item/clothing/glasses/hud/hud = null diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index f13a09cf953..48f1fb7cc9e 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -145,13 +145,13 @@ /mob/living/silicon/robot/proc/handle_regular_hud_updates() - if (src.stat == 2 || XRAY in mutations || src.sight_mode & BORGXRAY) + if (src.stat == 2 || (XRAY in mutations) || (src.sight_mode & BORGXRAY)) src.sight |= SEE_TURFS src.sight |= SEE_MOBS src.sight |= SEE_OBJS src.see_in_dark = 8 src.see_invisible = SEE_INVISIBLE_MINIMUM - else if (src.sight_mode & BORGMESON && src.sight_mode & BORGTHERM) + else if ((src.sight_mode & BORGMESON) && (src.sight_mode & BORGTHERM)) src.sight |= SEE_TURFS src.sight |= SEE_MOBS src.see_in_dark = 8 @@ -160,6 +160,10 @@ src.sight |= SEE_TURFS src.see_in_dark = 8 see_invisible = SEE_INVISIBLE_MINIMUM + else if (src.sight_mode & BORGMATERIAL) + src.sight |= SEE_OBJS + src.see_in_dark = 8 + see_invisible = SEE_INVISIBLE_MINIMUM else if (src.sight_mode & BORGTHERM) src.sight |= SEE_MOBS src.see_in_dark = 8 diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 560bf09cc13..df91ca551ff 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -572,7 +572,7 @@ var/global/list/robot_modules = list( /obj/item/weapon/robot_module/miner/New() ..() src.modules += new /obj/item/device/flash(src) - src.modules += new /obj/item/borg/sight/meson(src) + src.modules += new /obj/item/borg/sight/material(src) src.modules += new /obj/item/weapon/wrench(src) src.modules += new /obj/item/weapon/screwdriver(src) src.modules += new /obj/item/weapon/storage/bag/ore(src) diff --git a/code/setup.dm b/code/setup.dm index dbb8a00beba..f501e736690 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -494,6 +494,7 @@ #define BORGMESON 1 #define BORGTHERM 2 #define BORGXRAY 4 +#define BORGMATERIAL 8 // Some arbitrary defines to be used by self-pruning global lists. (see master_controller) #define PROCESS_KILL 26 // Used to trigger removal from a processing list. From 7a9d7bf0c9701e6ef23862ded7e3fac36a33134c Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 10 Dec 2015 10:41:48 +1030 Subject: [PATCH 17/49] Fixes #10753 --- baystation12.dme | 1 - code/game/asteroid.dm | 162 -------------------------- code/modules/random_map/random_map.dm | 8 -- 3 files changed, 171 deletions(-) delete mode 100644 code/game/asteroid.dm diff --git a/baystation12.dme b/baystation12.dme index a79cce10948..b4eabf68c0d 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -203,7 +203,6 @@ #include "code\defines\procs\records.dm" #include "code\defines\procs\sd_Alert.dm" #include "code\defines\procs\statistics.dm" -#include "code\game\asteroid.dm" #include "code\game\atoms.dm" #include "code\game\atoms_movable.dm" #include "code\game\periodic_news.dm" diff --git a/code/game/asteroid.dm b/code/game/asteroid.dm deleted file mode 100644 index 8aa6b1cd64e..00000000000 --- a/code/game/asteroid.dm +++ /dev/null @@ -1,162 +0,0 @@ - -var/global/list/space_surprises = list( /obj/item/clothing/mask/facehugger =4, - /obj/item/weapon/pickaxe/silver =4, - /obj/item/weapon/pickaxe/drill =4, - /obj/item/weapon/pickaxe/jackhammer =4, - //mob/living/simple_animal/hostile/carp =3, - /obj/item/weapon/pickaxe/diamond =3, - /obj/item/weapon/pickaxe/diamonddrill =3, - /obj/item/weapon/pickaxe/gold =3, - /obj/item/weapon/pickaxe/plasmacutter =2, - /obj/structure/closet/syndicate/resources =2, - /obj/item/weapon/melee/energy/sword/pirate =1, - /obj/mecha/working/ripley/mining =1 - ) - -var/global/list/spawned_surprises = list() - -var/global/max_secret_rooms = 3 - -proc/spawn_room(var/atom/start_loc,var/x_size,var/y_size,var/wall,var/floor , var/clean = 0 , var/name) - var/list/room_turfs = list("walls"=list(),"floors"=list()) - - //world << "Room spawned at [start_loc.x],[start_loc.y],[start_loc.z]" - if(!wall) - wall = pick(/turf/simulated/wall/r_wall,/turf/simulated/wall,/obj/effect/alien/resin) - if(!floor) - floor = pick(/turf/simulated/floor,/turf/simulated/floor/engine) - - for(var/x = 0,x 100) - return 0 - - T=pick(turfs) - if(!T) - return 0 - - var/list/surroundings = list() - - surroundings += range(7, locate(T.x,T.y,T.z)) - surroundings += range(7, locate(T.x+size,T.y,T.z)) - surroundings += range(7, locate(T.x,T.y+size,T.z)) - surroundings += range(7, locate(T.x+size,T.y+size,T.z)) - - if(locate(/area/mine/explored) in surroundings) // +5s are for view range - valid = 0 - continue - - if(locate(/turf/space) in surroundings) - valid = 0 - continue - - if(locate(/area/asteroid/artifactroom) in surroundings) - valid = 0 - continue - - if(locate(/turf/simulated/floor/plating/airless/asteroid) in surroundings) - valid = 0 - continue - - if(!T) - return 0 - - room = spawn_room(T,size,size,,,1) - - if(room) - T = pick(room["floors"]) - if(T) - var/surprise = null - valid = 0 - while(!valid) - surprise = pickweight(space_surprises) - if(surprise in spawned_surprises) - if(prob(20)) - valid++ - else - continue - else - valid++ - - spawned_surprises.Add(surprise) - new surprise(T) - - return 1 - - diff --git a/code/modules/random_map/random_map.dm b/code/modules/random_map/random_map.dm index 81def6be14c..9de319a838e 100644 --- a/code/modules/random_map/random_map.dm +++ b/code/modules/random_map/random_map.dm @@ -162,12 +162,4 @@ var/global/list/random_maps = list() map[check_cell] = 3 ore_count-- - sleep(-1) - - // Place random asteroid rooms. - var/rooms_placed = 0 - for(var/i = 0, i < max_secret_rooms, i++) - if(make_mining_asteroid_secret()) - rooms_placed++ - admin_notice("Placed [rooms_placed] secrets.", R_DEBUG) return 1 \ No newline at end of file From e9cdc8a0f57a066c5fa588912ed1ebcc25327d45 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 10 Dec 2015 11:03:57 +1030 Subject: [PATCH 18/49] Fixes #9257 --- code/modules/mob/living/silicon/robot/robot_modules.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index df91ca551ff..42a35e89f66 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -322,6 +322,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/weapon/crowbar(src) src.modules += new /obj/item/weapon/pickaxe/plasmacutter(src) src.modules += new /obj/item/device/pipe_painter(src) + src.modules += new /obj/item/weapon/gripper/no_use/loader(src) var/datum/matter_synth/metal = new /datum/matter_synth/metal() var/datum/matter_synth/plasteel = new /datum/matter_synth/plasteel() @@ -675,6 +676,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/device/lightreplacer(src) src.modules += new /obj/item/weapon/gripper(src) src.modules += new /obj/item/weapon/soap(src) + src.modules += new /obj/item/weapon/gripper/no_use/loader(src) src.emag = new /obj/item/weapon/pickaxe/plasmacutter(src) src.emag.name = "Plasma Cutter" From 5ffa49d994132dd3ad72502d8acfb4507c2a40b3 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Wed, 9 Dec 2015 12:38:17 +0100 Subject: [PATCH 19/49] Blob tweaks. The blob no longer holds the entire obj process hostage while it sleeps. The blob now respects its own growth limit. Fixes #11627. Blobs still grow in an X-shape but this should now be much less distinct. --- code/modules/blob/blob.dm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/code/modules/blob/blob.dm b/code/modules/blob/blob.dm index a2de592b84c..72ee0daee6f 100644 --- a/code/modules/blob/blob.dm +++ b/code/modules/blob/blob.dm @@ -120,7 +120,8 @@ if(prob(health)) expand(T) return - B.pulse(forceLeft - 1, dirs) + if(forceLeft) + B.pulse(forceLeft - 1, dirs) /obj/effect/blob/bullet_act(var/obj/item/projectile/Proj) if(!Proj) @@ -158,6 +159,7 @@ fire_resist = 2 expandType = /obj/effect/blob/shield + var/blob_may_process = 1 /obj/effect/blob/core/update_icon() return @@ -171,10 +173,16 @@ return ..() /obj/effect/blob/core/process() + set waitfor = 0 + if(!blob_may_process) + return + blob_may_process = 0 + sleep(0) pulse(20, list(NORTH, EAST)) pulse(20, list(NORTH, WEST)) pulse(20, list(SOUTH, EAST)) pulse(20, list(SOUTH, WEST)) + blob_may_process = 1 /obj/effect/blob/shield name = "strong blob" From 0f2b17f7bbcd8cf8501f1548c102b88144728620 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Thu, 10 Dec 2015 13:01:06 +0000 Subject: [PATCH 20/49] fix #11631 --- code/modules/reagents/Chemistry-Machinery.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 726303273aa..354a6482691 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -27,6 +27,7 @@ var/pillsprite = "1" var/client/has_sprites = list() var/max_pill_count = 20 + flags = OPENCONTAINER /obj/machinery/chem_master/New() ..() From 45afae67ffe798c72d6daa0f5c61a2d539dae129 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Fri, 11 Dec 2015 11:05:55 +0100 Subject: [PATCH 21/49] Adds missing holder icons for cat2 and kitten. Beware, coder sprites. --- icons/mob/head.dmi | Bin 136920 -> 136123 bytes icons/mob/items/lefthand_holder.dmi | Bin 3886 -> 4199 bytes icons/mob/items/righthand_holder.dmi | Bin 3893 -> 4173 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 951be8509a87b8168745b506a890271083ef2476..6438148d33f195da0c0f2be9faabfec9d5eb09ef 100644 GIT binary patch delta 113077 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 VTtYm2aQgKHXlodtDv@@P{{fg0u5thX delta 3761 zcmY*ccTf||(+(IQ30;DcNJ)Uu6_BP#FF_CmLO>9usYsC~QeIjhROwQrLl7xaBb_K! zn$m&@p@Ri!VvvAJ&4=In{_~sJx!b$Bz31k3clOy8M2%p|Su6l_3IG6z{gpvWCFbVl;=TYn9pK~?rmCuHZte^yYqhrazD}j<=wJZh zN!!hg7Ut&C(n=?`C$~Kf#A34*0CXn+Kd;{mn4X^A&n5;ZOQS#q==}V=zoT$p@nsYWMTopWfB3>(jyFw+;T(9` z68uz|Y59?2nl6Jl?gUU+*k$|#h2b&ghB-j%+tdjvfEAx3P8+OU$=c-<=*YNS1hr2 zWKC2dSfFXr9sDLTITpGfP}AA^r?KKL*JQwqXZsonxGeodo!8HZ<@)lS@G_hjO*qm_ zqAHEg7BXCQ%00#r{GuKUw5`l^NM{i6Sy%Jm*oln4O8HejfyjSa}# z%#XLj!3|IMKd_f`0A&w|ZuA+{J$>Uh%=r9uPQYd6`a!39|G*6qv|?;QGo4=OH8JeQ zOnMD*fPLH-?tVD|g-|EQn?)Vi)-~4d~F{99}#e!5@`4}hnb+eOM!vGe^ssT0r{TPI+JX zj&yfpx?#yEJod}`KX4@VAM2kN-HbHrsyx57=O3WWj?Y*7;=IBp)RhZ0RB9jM7QB)& zf2jv#u}s!aTK;*&O{+(1`mn~c`b6}`$A9zQwX*tXdHzDIom14eGtaP_vgcu^tJ@Ml zf|T@|yy%WI&HM-*P3z$2QXz+t<>a*9vYec<4+`HNgc|b7&_>>9BQu?7n-ScWe`^FZoFO6V-f8>88Ys%`GW&+0~i^KH$6$3x-;&+-j`5BOB zi-zTKFRcs7!EGVJveb}<+jG?-9J=k7j{)>(o`q zUk9m2h(ftfqz-ggUzApCCO&_U>#(+#PnQ089M|Nk-_YS`xjM12eDmo39!1uU6S}UB zU>ufpp?ThON|a1SZ#gX|R_w&6=tV75InQPm$ZKkL7jtqs6O1`alO;{QWk;2bC1l}f zZ_77VmQ5O*V_~IPMJfsRd+~X=>w=Ar(F=0VEV@#~Szlxo{hKgsxc|?a<~*IEFlfSP zBi_;Ma5dS$UabI9GJ$bu^nY_pBIDYh776$n%WEYTL&O&5WXDDMA3^!#P_qC*>*w9; zCY27_T7?%?r5w;+N9HcP6Qn=1zR`0I;mXP?AV_sb@2o8TLEID?LS1N+HefcB$TXt% zaqBFRBKsY^D{(En+|KUqiCeE~>8Ct9Km{u3WP;9R5{3<0Zj#n?S1`P!KP?Q1(o`gx7AG{mQ4gR`;Of_YZ$qRr+atr>jo4pxx^ zSAsXUYzkCV8jyN}YEod|9ywK}{JY)oxjIUcU0}De9^c!(nHjVd!qiz;v+9_(8}G$E z=i%Y8F7VW+{{8YJE5f7fNtJZ`6jvknq)45+Hn5s~JXYHfd0grcy-ZUKU!d~@2x-7e zBhbRQf<~=@NTwNnBZP=sDd<+{&pbbt*CvDyd`yg#Zy`78V0R)WmHQ@-b0qQ43Of)B zpJme*JE$DR*g%sk-YGGP&!M2raNMI;v3gukv$J$VUH^;}189Z*9T#zi$#%OSj{H)T&0!&#CxVji=N@n^G> zul~jSpd~M`QD*z&jCbT|?pSBz`&Vg(WA78pmW9|&>x|->MGxf9nG~p@@ZAb=L|GnO zVvYTkf37k-&NUMw%KsOXCo!ookCnwV;^0LyGwj8u*3 zmO}u={7EA0aC<|x(Y3|?wPm%X@1#0Ntm7C{%{}xP^+a-Kwtq1+8EDJ|+z*j)k63{_ zH1)9wo7x{8b3co-W#I4Z7sT0n7!H2yztywrEBXg;tsiur=A67Q<(-LLl9#sd&$q50=|LW2I5WQU3kV?@!?dauZtN)I#CIdw+Q#>@fN}BC5FkXL zvD)_xrm$ArfMO%WxAdv2tIGjPI1&kl_yRvjKE~7v1v7`3zAVcdukDYCiRrg92|^Lk zR4O9AVWN$X%z95iQ2X$7Wcr^5#$;)cuTBjPo zc%qJukc6w^FoYdxsuSXNCT><49gdkC3WKgls-OzLU1-QgTCX_+*%4AH5?~_8C`EI( zr^Xe6%Dae=#c{0XSH>>TOi!i@4EihM6e;Gj5#sHn`^AEf4L@kgE7b9zACnNGiHJ2jqd>uE&5W+mBGwpdqcz9zE{fm!* zxqR8HP}Xw4Q()zv@_Ul#y@TSRG8l#KdI`=0m2hq&sKk=M%H~DnuS|8s17ZYN+56&{ zQaO7QE{aohs>hI@u?PxjNY62pd!r>eN`tP+OM0R$g7x9%^~vn0loji>^xsRzr&Kb| zuzYeT79i=>|GMX|r+WVD1^(8OsE@I9z0t(}U9}1JKA7|}DUCV|eLm#P^}KcZ@xf8g zfuftmkQCEtYvE+4UK`z{fz8gFsBloYlh8Z=W?RI~4507_=ipW#EY;Zqe7OW*JL7Ld zCnhRC`8K%}6sN`lDw;EXz2C(8La%%>2{9S-FL!KRJ`}R}lWK`7sj)w4)LkCnP2{lSg;Ih*ApW~n)gTas zmVvI(&Gz>8i(D{aVPOR>h@mizq@<*Zii(XSZGZ}+un)-42Sg@=ii(P`SgfPtV?{+p zEY=zHvcb&EQ|}iUiNt_H<9FVI|8N>(v0`F!f7qVgzk3q~gV~64fI#WwbdU^4hWrV% zfdOf1YUZf051?V>bQzg+&;}k9D8v4{p2E>Yr>9V1Zf?%+9$ZjRFfT&F*4Fmx*RRQp z6h=UzpRM{Ib_#EdJ{E*nnRfhhmPNlQsaSu?z@>8K{w_zc zY8$T6Yo9sbV>XIfnMaoc*VbMN!tWb0O1*DV!xHjTVgofGsSZ%I!}j7) zA>+^GMG}JJsI+FwATCH?K{Ij;Q z&aBzA&qX7%o@G%w&r{#W2CjYuKm)tFd zox95x#_%R5k$28mZf?QIkC~uqexXZ>;jdVGgLX3Nv@+T0X($BRA?x+FA%=GLw|kDijCXPPa_VkaVRZsv zJ_$Bqfk&N8;mhWgE*R08MlD2++TT(E|4~eeK}M&ihUDb^)ah&p3L7HkvUcvPQMdjk z=9bG*qA%H*k?nGP5fU5rPG8fw?%1SI?l#ZZb8i4U zgA<)~oyK#uP4Dzu6UDz@y5lY#zpsY-8Mx@W7^p9^m9xCbcsxue`)D6f!>Qh|NE=ul z0Gq|L_l}r8bvR3~xcXe@W|%7O_4iJV7x$OU$k|i6l;b6)dTL28Z;yVc)}gHY zx7GeO+&?)YUEvpn0OUE7%njOHw*(n8v*EArZk(sP>oqW;WfzBKsl*MoL>^lE&|7=S z_jL^b12G;{houE=1o0u_&&k8Lt^8K&LACq!424Y*B%)vMR9kqxBg51K`sxBcYYa|q zMrCbscCNu9qJ!e?ule`p;vWW7g!$`^5C1!zvS0?V#;liaGIH6=93)O~9e5 z?SuBMledPb&w=Ehl=v@{8mCH!+uctR81_*eL>sY$s zS9sJ4=#5M=2g{V?tT-MY3)5eNm>bQca$Hu!Tz#XJpy$cB58O~o+VFU!X_1@pI-ik8 zBY&r}0P`mmexM6|N}SCc+n>(}x>eB@K-`2)x<*ebl#6{$KOmx4IC6(2JXFjq5me_o zQ#d$sL?F_5z^0@!fV8RL;y*dIivH6t@ie`fq{Ty~QZ8vmP+gJipW^897-g=b%MLjk z=z6){S`D1SF+Eh~rtFe2kfhkOU_1n4Md0b$U875G*tIuoNU>pMma8Th#PhLaxP^AF z7jZeUCI~Kba1d{;im^C7f0Ws6TJ(<*bipM?SNNq8V9WFqrALZ&EzXy5AZja<<`-5^ z8;qL;D|e(viKDw#m;z0=(g_Fu;Yz?G|G=0v^4#*v2jRb_T;;N9)^=rFTvbk9piqYD z_Oj>fmo=$Tt*xDchlfYj9E-g$k&zgcI-p+4E(^QD#d&5 zmrFvPa|vEC*c!<7AdmYS*}T8napY1+DI=9YFnC|qdkYQg37XrYYcjcGk1QW~-6mu* zwxeSj>)PTPGrAQ+VA(`?ESR>AR>Dnmi$;0cE=!d?xvSXx96|EWkO;6B9_Be(c&x)_IkfmOlI>LtW+M0cSo}qk_+gv5M4} z<>kQa#{LM!JhUv{#KeR*NjhdHuUzipw*R4iz)e#w6sopk-wZi9oh1Jy@*P`J6h=39 z`8Kr~Jly+=SQA&-z>1nTM-UnPHKdsWepy<#S%iYuAVjcuNIFOTW0xh+Ht8&D;zQj< z`yH>MEa{s9dPDR6d`bM)sM!7@#C0;m!<%~kSPo z>Z76udA5%xN;)nOTJ-k5S2A^rH?Fdz3(0oEObl~(Lf|imKc=n(#9nB>em8EOIhJ!j z?S@g3kVx%%89D%+)ikaFSSdC$#UHUTNz={RCwFSHhbfGC6m`@Rv3of5cbhD!5R*(f zlvl5x7AjyPh-uCuPo1XnkZ?2F{JsB%aq<1sm6Fk_nW}Ed@_rKMebg4GOz-fNGNs8y z#&GfR`cszaY8$Wc7>mh&X~P|$E^K_Xq5EoKXIN9qy+Q5!rX5? z-gR%b6^!DfwP){*vQ)3X=(=&^;q$$*TDMn%xhdo5N!k0x9izqG>l3&S)okTx2enc2@z z=^%}vNS^uwBf5~84O-dn@IeEoT^-gM7Jm4Y)?CSX7q7K4NOCG|=#5ZuQ~4P(Lw@SZAaA94U}HWxzZ$Z0 z^n5Z9FHx%cpPA@|J0ht0ln&Stt!0@`57d=<7&=bd)t>x7pUqy&`7s4hth{~1qLrt= z8o|pBtS_7{r9Tos^?fkBb-s1260i6kz>*F;AQh(XAvF3)5`HNmywWqLIi zQiU-k$lq_r=FG&(c&RgfOqfH>Hdt~BH9s-O=lezxSkgj&=OG2itq5N_^0ZqOj8)|R zKw@!7nosqPb`|5b!gYWJOBw7+ecVYTARvGezZEvGOR;_ilkPLnsrczKEp$v3QphiL z$Gp_x-H$8vv~8E>z4fy8ppT@_hO|NvTT4NBeybZLn2B)t#(lFQGlGfEdX36wT;TJU+A7+l6{+)0> zzV%^(b1Zfyc$uwZhH{Yre5mRSq`ilYKPl-mWUbGGYx6W%@WIA$el%r!#^qHuQ$@Iu zyEL91rlgh(fYZzUDSn>jd=r{YD=I$tCM0RW2yVK*WuZG+aCv7mzo~iV&1q1wzNpOY zIew9(y*K4a!8adPWGeJyb+x75;HZ-`n|vA%?fx|jdE3`)hmihx*ZI&31z54P@4k0lvfi&HR)0a<^=+D?1%g*GJ?@y zLG9cK+VQh7yCim<6vSCVHPBEPD9% zp)U|>d;JCF^UlZubZ~CV;yQ8f*XpGGKU5(IC=&AM%N(< z{0<_6BN!cWkD{=n__c76ahHwxGm29tz$#XNxzE?4XorGCq2RzAc4I-jvpYs=APdKQ z4kkeL5FUxE>Mk!RWE>GzG|jbK|5f(0F!=0JDnR2xfPU}Hv`%5ZbMlj3W4J_Moc1Cz z_f!>25HJXHb%cV=9^%v~?r1A1Bntj|oS*E+A9*)4hNZxs+c=EQQ3U)xUv^tDP?@&$ z1*{HXM?-J__`ikuqYKMFyLp$C2J&P9Xf@O9i}IQezb$?Cjhb2uDjW1yT|iu_<@peQ w1NXW+D3R$l-wYYITY-FaZ1aDw4Brl*mNj8C+heNm=W`3vzNxSI8fg>uFL%t0VE_OC delta 3715 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 Date: Sat, 5 Dec 2015 15:15:53 -0500 Subject: [PATCH 22/49] Fixes the inability to use cargo tugs --- code/modules/mob/mob.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index b3eb428c43e..bec583cf2ad 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -735,8 +735,8 @@ if(istype(buckled, /obj/vehicle)) var/obj/vehicle/V = buckled if(cannot_stand()) - lying = 1 - canmove = 0 + lying = 0 + canmove = 1 pixel_y = V.mob_offset_y - 5 else if(buckled.buckle_lying != -1) lying = buckled.buckle_lying From 3127ee28b56430e1217380667720779531e50156 Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Thu, 10 Dec 2015 16:26:21 +0100 Subject: [PATCH 23/49] Fixes subcategories of floor tiles not being placable --- code/game/objects/items/stacks/stack.dm | 1 + code/game/objects/items/stacks/tiles/tile_types.dm | 1 - code/game/turfs/simulated/floor_attackby.dm | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index d70333bc436..afd8d99e01a 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -17,6 +17,7 @@ var/amount = 1 var/max_amount //also see stack recipes initialisation, param "max_res_amount" must be equal to this max_amount var/stacktype //determines whether different stack types can merge + var/build_type = null //used when directly applied to a turf var/uses_charge = 0 var/list/charge_costs = null var/list/datum/matter_synth/synths = null diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index f86ecbade96..4f4b53c7c0a 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -12,7 +12,6 @@ desc = "A non-descript floor tile" w_class = 3 max_amount = 60 - var/build_type = null /obj/item/stack/tile/New() ..() diff --git a/code/game/turfs/simulated/floor_attackby.dm b/code/game/turfs/simulated/floor_attackby.dm index 13e36882a34..c8cc2660c97 100644 --- a/code/game/turfs/simulated/floor_attackby.dm +++ b/code/game/turfs/simulated/floor_attackby.dm @@ -57,7 +57,7 @@ var/decl/flooring/F = flooring_types[flooring_type] if(!F.build_type) continue - if(C.type == F.build_type) + if((S.type == F.build_type) || (S.build_type == F.build_type)) use_flooring = F break if(!use_flooring) From 6b37b860d783294d55f3712936914df16e66f142 Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Thu, 10 Dec 2015 16:26:42 +0100 Subject: [PATCH 24/49] Fixes subcategories of cable coils not being mergeable --- code/modules/power/cable.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 7f2186dcd5d..b6432a4ca07 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -872,26 +872,34 @@ obj/structure/cable/proc/cableColor(var/colorC) update_wclass() /obj/item/stack/cable_coil/yellow + stacktype = /obj/item/stack/cable_coil color = COLOR_YELLOW /obj/item/stack/cable_coil/blue + stacktype = /obj/item/stack/cable_coil color = COLOR_BLUE /obj/item/stack/cable_coil/green + stacktype = /obj/item/stack/cable_coil color = COLOR_LIME /obj/item/stack/cable_coil/pink + stacktype = /obj/item/stack/cable_coil color = COLOR_PINK /obj/item/stack/cable_coil/orange + stacktype = /obj/item/stack/cable_coil color = COLOR_ORANGE /obj/item/stack/cable_coil/cyan + stacktype = /obj/item/stack/cable_coil color = COLOR_CYAN /obj/item/stack/cable_coil/white + stacktype = /obj/item/stack/cable_coil color = COLOR_WHITE /obj/item/stack/cable_coil/random/New() + stacktype = /obj/item/stack/cable_coil color = pick(COLOR_RED, COLOR_BLUE, COLOR_LIME, COLOR_WHITE, COLOR_PINK, COLOR_YELLOW, COLOR_CYAN) ..() From e0c092fc5475838278e52c007eb68e92e9a5ed33 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Fri, 11 Dec 2015 11:10:29 +0100 Subject: [PATCH 25/49] Cleans up the previous commit's use of stacktype. --- code/modules/power/cable.dm | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index b6432a4ca07..db245896c89 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -480,6 +480,7 @@ obj/structure/cable/proc/cableColor(var/colorC) slot_flags = SLOT_BELT item_state = "coil" attack_verb = list("whipped", "lashed", "disciplined", "flogged") + stacktype = /obj/item/stack/cable_coil /obj/item/stack/cable_coil/cyborg name = "cable coil synthesizer" @@ -488,7 +489,6 @@ obj/structure/cable/proc/cableColor(var/colorC) matter = null uses_charge = 1 charge_costs = list(1) - stacktype = /obj/item/stack/cable_coil /obj/item/stack/cable_coil/suicide_act(mob/user) if(locate(/obj/item/weapon/stool) in user.loc) @@ -872,34 +872,26 @@ obj/structure/cable/proc/cableColor(var/colorC) update_wclass() /obj/item/stack/cable_coil/yellow - stacktype = /obj/item/stack/cable_coil color = COLOR_YELLOW /obj/item/stack/cable_coil/blue - stacktype = /obj/item/stack/cable_coil color = COLOR_BLUE /obj/item/stack/cable_coil/green - stacktype = /obj/item/stack/cable_coil color = COLOR_LIME /obj/item/stack/cable_coil/pink - stacktype = /obj/item/stack/cable_coil color = COLOR_PINK /obj/item/stack/cable_coil/orange - stacktype = /obj/item/stack/cable_coil color = COLOR_ORANGE /obj/item/stack/cable_coil/cyan - stacktype = /obj/item/stack/cable_coil color = COLOR_CYAN /obj/item/stack/cable_coil/white - stacktype = /obj/item/stack/cable_coil color = COLOR_WHITE /obj/item/stack/cable_coil/random/New() - stacktype = /obj/item/stack/cable_coil color = pick(COLOR_RED, COLOR_BLUE, COLOR_LIME, COLOR_WHITE, COLOR_PINK, COLOR_YELLOW, COLOR_CYAN) ..() From ac0e70612feba38c1a3c479700bde0d679fce4ae Mon Sep 17 00:00:00 2001 From: Atlantis Date: Fri, 11 Dec 2015 12:15:53 +0100 Subject: [PATCH 26/49] Fixes #11621 - Fixes #11621 by ensuring reference to analyzed object is nulled even if the analyzed object is not reliable enough - Adds feedback message that warns the user that analyzed item wasn't reliable enough. --- code/modules/mob/living/silicon/robot/robot_items.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/robot_items.dm b/code/modules/mob/living/silicon/robot/robot_items.dm index 3e072d3d742..9346dbe5d4c 100644 --- a/code/modules/mob/living/silicon/robot/robot_items.dm +++ b/code/modules/mob/living/silicon/robot/robot_items.dm @@ -33,7 +33,9 @@ for(var/T in temp_tech) files.UpdateTech(T, temp_tech[T]) user << "\The [loaded_item] had level [temp_tech[T]] in [T]." - loaded_item = null + else + user << "\The [loaded_item] was not reliable enough to advance research." + loaded_item = null for(var/obj/I in contents) for(var/mob/M in I.contents) M.death() From 1b05724faf44d4e24396cf534212e3d5015422e5 Mon Sep 17 00:00:00 2001 From: Atlantis Date: Fri, 11 Dec 2015 12:44:25 +0100 Subject: [PATCH 27/49] Map fixes: Engineering outpost, Construction site - Removes incorrectly set ID tags on some emitters at construction site, this fixes #11527 - Unanchors emitters intended for mining at engineering outpost (as intended) - Turns off "Construction computer core" APC and unlocks it in similar way as the other APC in construction site teleporter room, to prevent power alarms on 3h+ rounds (since the construction site doesn't have working power supply). It is unlocked so anyone can turn it on if it's needed. --- maps/exodus-4.dmm | 4 ++-- maps/exodus-5.dmm | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/maps/exodus-4.dmm b/maps/exodus-4.dmm index 668fdc33a87..bce4896cbbd 100644 --- a/maps/exodus-4.dmm +++ b/maps/exodus-4.dmm @@ -87,7 +87,7 @@ "bI" = (/obj/machinery/drone_fabricator/derelict,/turf/simulated/floor/plating/airless,/area/constructionsite/ai) "bJ" = (/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/constructionsite/ai) "bK" = (/obj/machinery/computer/drone_control,/turf/simulated/floor/plating/airless,/area/constructionsite/ai) -"bL" = (/obj/machinery/power/apc/high{dir = 1; name = "north bump"; pixel_y = 24},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating/airless,/area/constructionsite/ai) +"bL" = (/obj/machinery/power/apc/high{dir = 1; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "north bump"; pixel_y = 24},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating/airless,/area/constructionsite/ai) "bM" = (/obj/machinery/door/airlock/highsecurity{name = "Messaging Server"; req_access = list(30)},/turf/simulated/floor/plating/airless,/area/constructionsite/hallway/fore) "bN" = (/obj/machinery/door/airlock/highsecurity{name = "Messaging Server"; req_access = list(30)},/turf/simulated/floor/plating/airless,/area/constructionsite/ai) "bO" = (/obj/machinery/door/airlock/highsecurity{name = "Cyborg Station"; req_access = list(16)},/turf/simulated/floor/plating/airless,/area/constructionsite/ai) @@ -116,7 +116,7 @@ "cl" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/constructionsite/engineering) "cm" = (/obj/structure/cable/blue,/turf/simulated/floor/plating/airless,/area/constructionsite/engineering) "cn" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/turf/simulated/floor/plating/airless,/area/space) -"co" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; id = "EngineEmitter"; state = 2},/turf/simulated/floor/plating/airless,/area/space) +"co" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; id = null; state = 2},/turf/simulated/floor/plating/airless,/area/space) "cs" = (/obj/machinery/recharge_station,/turf/simulated/floor/plating/airless,/area/constructionsite/ai) "cI" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/wall,/area/constructionsite/hallway/fore) "cJ" = (/obj/structure/lattice,/turf/space,/area/constructionsite/hallway/fore) diff --git a/maps/exodus-5.dmm b/maps/exodus-5.dmm index 17b6e221430..49e21dc47db 100644 --- a/maps/exodus-5.dmm +++ b/maps/exodus-5.dmm @@ -1160,7 +1160,7 @@ "wp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "wq" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "wr" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/wall,/area/outpost/engineering/hallway) -"ws" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) +"ws" = (/obj/machinery/power/emitter{anchored = 0; dir = 4; state = 0},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "wt" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor,/area/outpost/engineering/atmospherics) "wu" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/turf/simulated/floor,/area/outpost/engineering/atmospherics) "wv" = (/turf/simulated/floor,/area/outpost/engineering/atmospherics) From b13e445b40729684f12b21f511fc1ee3b63cf46a Mon Sep 17 00:00:00 2001 From: Atlantis Date: Fri, 11 Dec 2015 13:29:42 +0100 Subject: [PATCH 28/49] Fixes #11456 - Fixes #11456 by using wires.Interact() rather than current method. --- code/game/machinery/suit_storage_unit.dm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index d1e728e6767..e67a68d931f 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -819,15 +819,12 @@ dat += "
\[apply customisation routine\]


" if(panel_open) - dat += wires() + wires.Interact(user) user << browse(dat, "window=suit_cycler") onclose(user, "suit_cycler") return -/obj/machinery/suit_cycler/proc/wires() - return wires.GetInteractWindow() - /obj/machinery/suit_cycler/Topic(href, href_list) if(href_list["eject_suit"]) if(!suit) return From a29bbc28c04b5c035997a7e83f96c7ba4716eca0 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Fri, 11 Dec 2015 13:47:13 +0100 Subject: [PATCH 29/49] Cargo tugs now uses a more finally grained incapacitation check. --- code/__defines/mobs.dm | 5 +++-- code/modules/mob/mob.dm | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index 2a3c845bb71..a0a4a5b7e88 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -135,9 +135,10 @@ #define INCAPACITATION_RESTRAINED 1 #define INCAPACITATION_BUCKLED_PARTIALLY 2 #define INCAPACITATION_BUCKLED_FULLY 4 +#define INCAPACITATION_DISABLED 8 -#define INCAPACITATION_DEFAULT (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_FULLY) -#define INCAPACITATION_ALL (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_PARTIALLY|INCAPACITATION_BUCKLED_FULLY) +#define INCAPACITATION_DEFAULT (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_FULLY|INCAPACITATION_DISABLED) +#define INCAPACITATION_ALL (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_PARTIALLY|INCAPACITATION_BUCKLED_FULLY|INCAPACITATION_DISABLED) #define MOB_PULL_NONE 0 #define MOB_PULL_SMALLER 1 diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index bec583cf2ad..737fdca1787 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -160,7 +160,7 @@ return buckled ? FULLY_BUCKLED : UNBUCKLED /mob/proc/incapacitated(var/incapacitation_flags = INCAPACITATION_DEFAULT) - if (stat || paralysis || stunned || weakened || resting || sleeping || (status_flags & FAKEDEATH)) + if ((incapacitation_flags & INCAPACITATION_DISABLED) && (stat || paralysis || stunned || weakened || resting || sleeping || (status_flags & FAKEDEATH))) return 1 if((incapacitation_flags & INCAPACITATION_RESTRAINED) && restrained()) @@ -734,9 +734,9 @@ else if(istype(buckled, /obj/vehicle)) var/obj/vehicle/V = buckled - if(cannot_stand()) - lying = 0 - canmove = 1 + if(incapacitated(INCAPACITATION_DISABLED)) + lying = 1 + canmove = 0 pixel_y = V.mob_offset_y - 5 else if(buckled.buckle_lying != -1) lying = buckled.buckle_lying From 4d9b1ffcd06cc95347e09a8d985b69d2547d501d Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Fri, 11 Dec 2015 21:13:49 +0100 Subject: [PATCH 30/49] Adds the missing cargo department to the world Topic() manifest request. --- code/world.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/world.dm b/code/world.dm index 48640dccd11..9bc5ab52d9b 100644 --- a/code/world.dm +++ b/code/world.dm @@ -183,6 +183,7 @@ var/world_topic_spam_protect_time = world.timeofday "eng" = engineering_positions, "med" = medical_positions, "sci" = science_positions, + "car" = cargo_positions, "civ" = civilian_positions, "bot" = nonhuman_positions ) From 02d1a875d1445c7b86dc850288c72221376d566d Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Fri, 11 Dec 2015 18:26:52 -0700 Subject: [PATCH 31/49] Fixes #7075 Disposal holders will now be emptied if they get expelled from a disposal pipe, instead of sitting there hoarding their contents. --- code/modules/recycling/disposal.dm | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 9dd8d1f9560..8658815f5fb 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -740,16 +740,19 @@ // expel the held objects into a turf // called when there is a break in the pipe - // - proc/expel(var/obj/structure/disposalholder/H, var/turf/T, var/direction) - - var/turf/target - - if(T.density) // dense ouput turf, so stop holder - H.active = 0 - H.loc = src + if(!istype(H)) return + + // Empty the holder if it is expelled into a dense turf. + // Leaving it intact and sitting in a wall is stupid. + if(T.density) + for(var/atom/movable/AM in H) + AM.loc = T + AM.pipe_eject(0) + qdel(H) + return + if(T.intact && istype(T,/turf/simulated/floor)) //intact floor, pop the tile var/turf/simulated/floor/F = T //F.health = 100 @@ -759,6 +762,7 @@ new /obj/item/stack/tile(H) // add to holder so it will be thrown with other stuff F.icon_state = "Floor[F.burnt ? "1" : ""]" + var/turf/target if(direction) // direction is specified if(istype(T, /turf/space)) // if ended in space, then range is unlimited target = get_edge_target_turf(T, direction) From eae12b8f9c14e872c99e18a76c0bdde77ffd9de4 Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Fri, 11 Dec 2015 19:52:18 -0700 Subject: [PATCH 32/49] Fixes #8568 --- code/modules/admin/verbs/randomverbs.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 0561e53791e..b5bbdb8b69f 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -520,7 +520,8 @@ Traitors and the like can also be revived with the previous role mostly intact. if(! (C.stat & (BROKEN|NOPOWER) ) ) var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( C.loc ) P.name = "'[command_name()] Update.'" - P.info = input + P.info = replacetext(input, "\n", "
") + P.update_space(P.info) P.update_icon() C.messagetitle.Add("[command_name()] Update") C.messagetext.Add(P.info) From a97da84b185538f9678885ff72454bfcc8b87364 Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Fri, 11 Dec 2015 21:25:23 -0700 Subject: [PATCH 33/49] Fixes #11093 Also fixes a runtime error trying to disposal monkeys and the like. It was doing a type check too late. --- code/modules/mob/living/carbon/human/human.dm | 2 +- code/modules/recycling/disposal.dm | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index df1db58a343..c90d06c008a 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1379,7 +1379,7 @@ /mob/living/carbon/human/MouseDrop(var/atom/over_object) var/mob/living/carbon/human/H = over_object - if(holder_type && a_intent == "help" && H.a_intent == "help" && istype(H) && !issmall(H) && Adjacent(H)) + if(holder_type && a_intent == "help" && istype(H) && H == usr && H.a_intent == "help" && !issmall(H) && Adjacent(H)) get_scooped(H) return return ..() diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 8658815f5fb..a911a5572cf 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -145,9 +145,15 @@ // mouse drop another mob or self // /obj/machinery/disposal/MouseDrop_T(mob/target, mob/user) - if (!istype(target) || target.buckled || get_dist(user, src) > 1 || get_dist(user, target) > 1 || user.stat || istype(user, /mob/living/silicon/ai)) + if(user.stat || !user.canmove || !istype(target)) return - if(isanimal(user) && target != user) return //animals cannot put mobs other than themselves into disposal + if(target.buckled || get_dist(user, src) > 1 || get_dist(user, target) > 1) + return + + //animals cannot put mobs other than themselves into disposal + if(isanimal(user) && target != user) + return + src.add_fingerprint(user) var/target_loc = target.loc var/msg From 2f73635cf3cb31281150da04523325bce129bd5a Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Sat, 12 Dec 2015 10:59:29 +0100 Subject: [PATCH 34/49] Misc fixes. The station alert console no longer uses the old interact proc() to open the window interface. Makes the records computers use the ui_interact proc to show the window. This fixes https://github.com/PolarisSS13/Polaris/issues/537. The station alert console now registers alarms using the correct procs. The proper fingerprint type should now be applied during Topic() call (this means that admin observer object NanoUI interactions now have a degree of logging). --- code/game/machinery/computer/medical.dm | 3 +++ code/game/machinery/computer/security.dm | 3 +++ code/game/machinery/computer/skills.dm | 3 +++ code/game/machinery/computer/station_alert.dm | 23 ++++++++----------- code/game/objects/objs.dm | 16 +++++++++---- 5 files changed, 30 insertions(+), 18 deletions(-) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 15c504800a8..58643157d31 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -49,6 +49,9 @@ /obj/machinery/computer/med_data/attack_hand(mob/user as mob) if(..()) return + ui_interact(user) + +/obj/machinery/computer/med_data/ui_interact(mob/user) var/dat if (src.temp) dat = text("[src.temp]

Clear Screen") diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index eba129df262..468c6289194 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -56,6 +56,9 @@ /obj/machinery/computer/secure_data/attack_hand(mob/user as mob) if(..()) return + ui_interact(user) + +/obj/machinery/computer/secure_data/ui_interact(user) if (src.z > 6) user << "Unable to establish a connection: You're too far away from the station!" return diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm index 8e57548d6e2..f6290591f6f 100644 --- a/code/game/machinery/computer/skills.dm +++ b/code/game/machinery/computer/skills.dm @@ -39,6 +39,9 @@ /obj/machinery/computer/skills/attack_hand(mob/user as mob) if(..()) return + ui_interact(user) + +/obj/machinery/computer/skills/ui_interact(mob/user as mob) if (src.z > 6) user << "Unable to establish a connection: You're too far away from the station!" return diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm index 691214198fb..a2d6026e99c 100644 --- a/code/game/machinery/computer/station_alert.dm +++ b/code/game/machinery/computer/station_alert.dm @@ -23,18 +23,18 @@ alarm_monitor.register_alarm(src, /obj/machinery/computer/station_alert/update_icon) ..() if(monitor_type) - register(new monitor_type(src)) + register_monitor(new monitor_type(src)) /obj/machinery/computer/station_alert/Destroy() . = ..() - unregister() + unregister_monitor() /obj/machinery/computer/station_alert/proc/register_monitor(var/datum/nano_module/alarm_monitor/monitor) if(monitor.host != src) return alarm_monitor = monitor - alarm_monitor.register(src, /obj/machinery/computer/station_alert/update_icon) + alarm_monitor.register_alarm(src, /obj/machinery/computer/station_alert/update_icon) /obj/machinery/computer/station_alert/proc/unregister_monitor() if(alarm_monitor) @@ -43,23 +43,18 @@ alarm_monitor = null /obj/machinery/computer/station_alert/attack_ai(mob/user) - add_fingerprint(user) - if(stat & (BROKEN|NOPOWER)) - return - interact(user) - return + ui_interact(user) /obj/machinery/computer/station_alert/attack_hand(mob/user) - add_fingerprint(user) - if(stat & (BROKEN|NOPOWER)) - return - interact(user) - return + ui_interact(user) -/obj/machinery/computer/station_alert/interact(mob/user) +/obj/machinery/computer/station_alert/ui_interact(mob/user) if(alarm_monitor) alarm_monitor.ui_interact(user) +/obj/machinery/computer/station_alert/nano_container() + return alarm_monitor + /obj/machinery/computer/station_alert/update_icon() icon_screen = initial(icon_screen) if(!(stat & (BROKEN|NOPOWER))) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 8e67bb27554..1efcd0450af 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -45,11 +45,19 @@ return 1 /obj/proc/CouldUseTopic(var/mob/user) - if(!isAI(user) && src.Adjacent(user)) - // We are -probably- in physical contact with the object, better than how Topics() previously did it and always applied fingerprints. - add_fingerprint(user) + user.AddTopicPrint(src) + +/mob/proc/AddTopicPrint(var/obj/target) + target.add_hiddenprint(src) + +/mob/living/AddTopicPrint(var/obj/target) + if(Adjacent(target)) + target.add_fingerprint(src) else - add_hiddenprint(user) + target.add_hiddenprint(src) + +/mob/living/silicon/ai/AddTopicPrint(var/obj/target) + target.add_hiddenprint(src) /obj/proc/CouldNotUseTopic(var/mob/user) // Nada From 1927d1744fd46f71046d5e4036c49e231ba1fa3f Mon Sep 17 00:00:00 2001 From: Chinsky Date: Sat, 12 Dec 2015 13:57:26 +0300 Subject: [PATCH 35/49] Fixes #11667 --- code/modules/mob/emote.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index 54f31d5b5ba..0948befb2aa 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -2,9 +2,8 @@ //m_type == 1 --> visual. //m_type == 2 --> audible /mob/proc/custom_emote(var/m_type=1,var/message = null) - if(stat || !use_me && usr == src) - usr << "You are unable to emote." + src << "You are unable to emote." return var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle) From f74bd5e1d9e133f578993b8c6c5ac6fcfd798e53 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Sat, 12 Dec 2015 12:05:57 +0100 Subject: [PATCH 36/49] Observer fixups. Adds a proper proc for raising events. Now only creates the observer lists when an object registers itself. Multitools now unregister themselves properly from buffers on Destroy(). --- .../observer_listener/datum/observer.dm | 32 ++++++++++++------- code/game/objects/items/devices/multitool.dm | 14 +++++--- 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/code/controllers/observer_listener/datum/observer.dm b/code/controllers/observer_listener/datum/observer.dm index cc0ef0612a3..e6cca2049ce 100644 --- a/code/controllers/observer_listener/datum/observer.dm +++ b/code/controllers/observer_listener/datum/observer.dm @@ -4,28 +4,38 @@ var/list/observer_events /datum/Destroy() - var/list/destroy_listeners = get_listener_list_from_event(OBSERVER_EVENT_DESTROY) - if(destroy_listeners) - for(var/destroy_listener in destroy_listeners) - call(destroy_listener, destroy_listeners[destroy_listener])(src) - + raise_event(OBSERVER_EVENT_DESTROY, list(src)) for(var/list/listeners in observer_events) listeners.Cut() return ..() /datum/proc/register(var/event, var/procOwner, var/proc_call) - var/list/listeners = get_listener_list_from_event(event) + var/list/listeners = get_listener_list_from_event(event, TRUE) listeners[procOwner] = proc_call /datum/proc/unregister(var/event, var/procOwner) - var/list/listeners = get_listener_list_from_event(event) + var/list/listeners = get_listener_list_from_event(event, FALSE) listeners -= procOwner -/datum/proc/get_listener_list_from_event(var/observer_event) - if(!observer_events) observer_events = list() +/datum/proc/raise_event(var/event, var/list/args = list()) + var/list/listeners = get_listener_list_from_event(event, FALSE) + if(listeners) + for(var/listener in listeners) + call(listener, listeners[listener])(arglist(args)) + +/datum/proc/get_listener_list_from_event(var/observer_event, var/create_list) + if(!observer_events) + if(create_list) + observer_events = list() + else + return + var/list/listeners = observer_events[observer_event] if(!listeners) - listeners = list() - observer_events[observer_event] = listeners + if(create_list) + listeners = list() + observer_events[observer_event] = listeners + else + return return listeners diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index a804041694a..cc47b871661 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -23,6 +23,10 @@ var/buffer_name var/atom/buffer_object +/obj/item/device/multitool/Destroy() + unregister_buffer(buffer_object) + return ..() + /obj/item/device/multitool/proc/get_buffer(var/typepath) // Only allow clearing the buffer name when someone fetches the buffer. // Means you cannot be sure the source hasn't been destroyed until the very moment it's needed. @@ -41,16 +45,16 @@ if(!buffer || istype(buffer)) buffer_name = buffer ? buffer.name : null if(buffer != buffer_object) - if(buffer_object) - buffer_object.unregister(OBSERVER_EVENT_DESTROY, src) + unregister_buffer(buffer_object) buffer_object = buffer if(buffer_object) - buffer_object.register(OBSERVER_EVENT_DESTROY, src, /obj/item/device/multitool/proc/on_buffer_destroyed) + buffer_object.register(OBSERVER_EVENT_DESTROY, src, /obj/item/device/multitool/proc/unregister_buffer) -/obj/item/device/multitool/proc/on_buffer_destroyed(var/atom/destroyed_buffer) +/obj/item/device/multitool/proc/unregister_buffer(var/atom/buffer_to_unregister) // Only remove the buffered object, don't reset the name // This means one cannot know if the buffer has been destroyed until one attempts to use it. - if(destroyed_buffer == buffer_object) + if(buffer_to_unregister == buffer_object && buffer_object) + buffer_object.unregister(OBSERVER_EVENT_DESTROY, src) buffer_object = null /obj/item/device/multitool/resolve_attackby(atom/A, mob/user) From 37a93231d6c591f167cedc54d25b916026cf6115 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Sat, 12 Dec 2015 14:09:59 +0300 Subject: [PATCH 37/49] Fixes #8741 --- code/game/verbs/ooc.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 82fef02e97c..0cb18bb153c 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -105,7 +105,7 @@ log_ooc("(LOCAL) [mob.name]/[key] : [msg]") var/mob/source = src.mob - var/list/heard = get_mobs_in_view(7, source) + var/list/heard = get_mobs_in_view(7, get_turf(source)) var/display_name = source.key if(holder && holder.fakekey) From e89eae05bb99faed75a0785cb4c4f0e2871112b5 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Sat, 12 Dec 2015 14:23:00 +0300 Subject: [PATCH 38/49] Fixes #9197 --- .../mob/new_player/preferences_setup.dm | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 00b6a3b8e4a..8ea1444f830 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -6,15 +6,24 @@ datum/preferences gender = MALE else gender = FEMALE - s_tone = random_skin_tone() + var/datum/species/current_species = all_species[species] + + if(current_species) + if(current_species.flags & HAS_SKIN_TONE) + s_tone = random_skin_tone() + if(current_species.flags & HAS_EYE_COLOR) + randomize_eyes_color() + if(current_species.flags & HAS_SKIN_COLOR) + randomize_skin_color() + if(current_species.flags & HAS_UNDERWEAR) + underwear = rand(1,underwear_m.len) + undershirt = rand(1,undershirt_t.len) + h_style = random_hair_style(gender, species) f_style = random_facial_hair_style(gender, species) randomize_hair_color("hair") randomize_hair_color("facial") - randomize_eyes_color() - randomize_skin_color() - underwear = rand(1,underwear_m.len) - undershirt = rand(1,undershirt_t.len) + backbag = 2 age = rand(AGE_MIN,AGE_MAX) if(H) From 89407059213864f4dcb3c7ee7a2e88fad8356dba Mon Sep 17 00:00:00 2001 From: Chinsky Date: Sat, 12 Dec 2015 14:40:51 +0300 Subject: [PATCH 39/49] Fixes #9091 --- code/game/machinery/computer/medical.dm | 2 +- code/game/machinery/computer/security.dm | 2 +- code/game/machinery/computer3/computers/medical.dm | 2 +- code/game/machinery/computer3/computers/security.dm | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 65322b741da..2c44b6164c2 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -457,7 +457,7 @@ var/counter = 1 while(src.active2.fields[text("com_[]", counter)]) counter++ - src.active2.fields[text("com_[counter]")] = text("Made by [authenticated] ([rank]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [game_year]
[t1]") + src.active2.fields[text("com_[counter]")] = text("Made by [authenticated] ([rank]) on [time2text(world.realtime, "DDD MMM DD")] [worldtime2text()], [game_year]
[t1]") if (href_list["del_c"]) if ((istype(src.active2, /datum/data/record) && src.active2.fields[text("com_[]", href_list["del_c"])])) diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index f7327c2a887..92e03f01851 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -391,7 +391,7 @@ What a mess.*/ var/counter = 1 while(active2.fields[text("com_[]", counter)]) counter++ - active2.fields[text("com_[counter]")] = text("Made by [authenticated] ([rank]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [game_year]
[t1]") + active2.fields[text("com_[counter]")] = text("Made by [authenticated] ([rank]) on [time2text(world.realtime, "DDD MMM DD")] [worldtime2text()], [game_year]
[t1]") if ("Delete Record (ALL)") if (active1) diff --git a/code/game/machinery/computer3/computers/medical.dm b/code/game/machinery/computer3/computers/medical.dm index aec0b615f52..0533f7bc0ff 100644 --- a/code/game/machinery/computer3/computers/medical.dm +++ b/code/game/machinery/computer3/computers/medical.dm @@ -470,7 +470,7 @@ var/counter = 1 while(src.active2.fields[text("com_[]", counter)]) counter++ - src.active2.fields[text("com_[counter]")] = text("Made by [authenticated] ([rank]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [game_year]
[t1]") + src.active2.fields[text("com_[counter]")] = text("Made by [authenticated] ([rank]) on [time2text(world.realtime, "DDD MMM DD")] [worldtime2text()], [game_year]
[t1]") if (href_list["del_c"]) if ((istype(src.active2, /datum/data/record) && src.active2.fields[text("com_[]", href_list["del_c"])])) diff --git a/code/game/machinery/computer3/computers/security.dm b/code/game/machinery/computer3/computers/security.dm index f2de7648943..8a866586fd3 100644 --- a/code/game/machinery/computer3/computers/security.dm +++ b/code/game/machinery/computer3/computers/security.dm @@ -410,7 +410,7 @@ What a mess.*/ var/counter = 1 while(active2.fields[text("com_[]", counter)]) counter++ - active2.fields[text("com_[counter]")] = text("Made by [authenticated] ([rank]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [game_year]
[t1]") + active2.fields[text("com_[counter]")] = text("Made by [authenticated] ([rank]) on [time2text(world.realtime, "DDD MMM DD")] [worldtime2text()], [game_year]
[t1]") if ("Delete Record (ALL)") if (active1) From 0a4ebb276565f8a45dd42d411cecdbe2c49a1d44 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Sat, 12 Dec 2015 15:08:18 +0300 Subject: [PATCH 40/49] Fixes #10751 Thrown items now use last_move direction isntead of neverchanging dir --- code/game/atoms_movable.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index cd36a5ab0b8..07b2edc0a8e 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -78,7 +78,7 @@ else if(isobj(hit_atom)) var/obj/O = hit_atom if(!O.anchored) - step(O, src.dir) + step(O, src.last_move) O.hitby(src,speed) else if(isturf(hit_atom)) @@ -86,7 +86,7 @@ var/turf/T = hit_atom if(T.density) spawn(2) - step(src, turn(src.dir, 180)) + step(src, turn(src.last_move, 180)) if(istype(src,/mob/living)) var/mob/living/M = src M.turf_collision(T, speed) From 637abb5d124b4617534762d9c5d77db076553302 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Sat, 12 Dec 2015 15:12:44 +0300 Subject: [PATCH 41/49] Fixes #10597 --- code/modules/mob/living/carbon/human/human.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 589bcb0445d..b7a6f0219b5 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -764,7 +764,8 @@ if(!check_has_mouth()) return - + if(stat == DEAD) + return if(!lastpuke) lastpuke = 1 src << "You feel nauseous..." From 6c3972f979288aaeb47ea79f269d3faf287706b6 Mon Sep 17 00:00:00 2001 From: Kearel Date: Sat, 12 Dec 2015 12:47:08 -0600 Subject: [PATCH 42/49] Fixes #10550 From what I could tell the bugs were caused by the HUD not being removed and spells not being properly removed from players. --- code/modules/spells/targeted/mind_transfer.dm | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/code/modules/spells/targeted/mind_transfer.dm b/code/modules/spells/targeted/mind_transfer.dm index a3668a53d1d..1f20e6afbf8 100644 --- a/code/modules/spells/targeted/mind_transfer.dm +++ b/code/modules/spells/targeted/mind_transfer.dm @@ -48,13 +48,15 @@ victim.verbs -= V var/mob/dead/observer/ghost = victim.ghostize(0) - ghost.spell_list = victim.spell_list//If they have spells, transfer them. Now we basically have a backup mob. + ghost.spell_list += victim.spell_list//If they have spells, transfer them. Now we basically have a backup mob. caster.mind.transfer_to(victim) - victim.spell_list = list() //clear those out - for(var/spell/S in caster.spell_list) - victim.add_spell(S) //Now they are inside the victim's body - this also generates the HUD - caster.spell_list = list() //clean that out as well + for(var/spell/S in victim.spell_list) //get rid of spells the new way + victim.remove_spell(S) //This will make it so that players will not get the HUD and all that spell bugginess that caused copies of spells and stuff of that nature. + + for(var/spell/S in caster.spell_list) + victim.add_spell(S) //Now they are inside the victim's body - this also generates the HUD + caster.remove_spell(S) //remove the spells from the caster if(victim.mind.special_verbs.len)//To add all the special verbs for the original caster. for(var/V in caster.mind.special_verbs)//Not too important but could come into play. @@ -62,9 +64,9 @@ ghost.mind.transfer_to(caster) caster.key = ghost.key //have to transfer the key since the mind was not active - for(var/spell/S in ghost.spell_list) - caster.add_spell(S) - ghost.spell_list = list() + for(var/spell/S in ghost.spell_list) + caster.add_spell(S) + ghost.spell_list = list() if(caster.mind.special_verbs.len)//If they had any special verbs, we add them here. for(var/V in caster.mind.special_verbs) @@ -76,4 +78,4 @@ //After a certain amount of time the victim gets a message about being in a different body. spawn(msg_wait) - caster << "You feel woozy and lightheaded. Your body doesn't seem like your own." + caster << "You feel woozy and lightheaded. Your body doesn't seem like your own." From d10118e3d047091fc39e0468ffb5b718e9134846 Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Sat, 12 Dec 2015 12:03:15 -0700 Subject: [PATCH 43/49] Fixes #11346 Fixes #8123 Removes adminbus ability to call down the Icarus... because it's pretty broken. --- baystation12.dme | 1 - code/modules/admin/admin_verbs.dm | 3 - code/modules/admin/verbs/icarus.dm | 130 ------------------ .../projectiles/guns/energy/special.dm | 52 ------- .../modules/projectiles/projectile/special.dm | 13 -- 5 files changed, 199 deletions(-) delete mode 100644 code/modules/admin/verbs/icarus.dm diff --git a/baystation12.dme b/baystation12.dme index b4eabf68c0d..1c02e399cb1 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -835,7 +835,6 @@ #include "code\modules\admin\verbs\diagnostics.dm" #include "code\modules\admin\verbs\dice.dm" #include "code\modules\admin\verbs\getlogs.dm" -#include "code\modules\admin\verbs\icarus.dm" #include "code\modules\admin\verbs\mapping.dm" #include "code\modules\admin\verbs\massmodvar.dm" #include "code\modules\admin\verbs\modifyvariables.dm" diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 2c58b2dc828..064f10820d1 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -125,9 +125,6 @@ var/list/admin_verbs_spawn = list( /datum/admins/proc/spawn_plant, /datum/admins/proc/spawn_atom, /*allows us to spawn instances*/ /client/proc/respawn_character, - /client/proc/FireLaser, - /client/proc/FireCannons, - /client/proc/ChangeIcarusPosition, /client/proc/virus2_editor, /client/proc/spawn_chemdisp_cartridge ) diff --git a/code/modules/admin/verbs/icarus.dm b/code/modules/admin/verbs/icarus.dm deleted file mode 100644 index fd296dacee6..00000000000 --- a/code/modules/admin/verbs/icarus.dm +++ /dev/null @@ -1,130 +0,0 @@ -/client/proc/FireLaser() - set name = "Fire the Icarus lasers" - set desc = "Fires a laser bolt at your position. You should only do this as a(n) (a)ghost" - set category = "Fun" - - var/turf/target = get_turf(src.mob) - log_and_message_admins("has fired the Icarus point defense laser at [target.x]-[target.y]-[target.z]") - if(!src.holder) - src << "Only administrators may use this command." - return - - Icarus_FireLaser(target) - - -/client/proc/FireCannons() - set name = "Fire the Icarus cannons" - set desc = "Fires an explosive missile at your position. You should only do this as a(n) (a)ghost." - set category = "Fun" - - var/turf/target = get_turf(src.mob) - log_and_message_admins("has fired the Icarus main gun projectile at [target.x]-[target.y]-[target.z]") - if(!src.holder) - src << "Only administrators may use this command." - return - - Icarus_FireCannon(target) - - -/client/proc/ChangeIcarusPosition() - set name = "Adjust Icarus Position" - set desc = "Lets you chose the position of the Icarus in regards to the map." - set category = "Fun" - - log_and_message_admins("is changing the Icarus position.") - if(!src.holder) - src << "Only administrators may use this command." - return - - Icarus_SetPosition(src) - -var/icarus_position = SOUTH - -proc/Icarus_FireLaser(var/turf/target) - // Find the world edge to fire from. - var/x = icarus_position & EAST ? world.maxx : icarus_position & WEST ? 1 : target.x - var/y = icarus_position & NORTH ? world.maxy : icarus_position & SOUTH ? 1 : target.y - var/x_off = x != target.x ? abs(target.x - x) : INFINITY - var/y_off = y != target.y ? abs(target.y - y) : INFINITY - // Get the minimum number of steps using the rise/run shit. - var/iterations = round(min(x_off, y_off)) - 14 // We cannot fire straight from the edge since teleport thing. - - // Now we can get the location of the start. - x = target.x + (icarus_position & EAST ? iterations : icarus_position & WEST ? -iterations : 0) - y = target.y + (icarus_position & NORTH ? iterations : icarus_position & SOUTH ? -iterations : 0) - - var/turf/start = locate(x, y, target.z) - - // should step down as: - // 1000, 500, 333, 250, 200, 167, 142, 125, 111, 100, 90 - var/damage = 1000 - for(var/i in 2 to 12) - var/obj/item/projectile/beam/in_chamber = new (start) - in_chamber.original = target - in_chamber.starting = start - in_chamber.silenced = 1 - in_chamber.yo = icarus_position & NORTH ? -1 : icarus_position & SOUTH ? 1 : 0 - in_chamber.xo = icarus_position & EAST ? -1 : icarus_position & WEST ? 1 : 0 - in_chamber.damage = damage - in_chamber.kill_count = 500 - in_chamber.process() - damage -= damage / i - sleep(-1) - - // Let everyone know what hit them. - var/obj/item/projectile/beam/in_chamber = new (start) - in_chamber.original = target - in_chamber.starting = start - in_chamber.silenced = 0 - in_chamber.yo = icarus_position & NORTH ? -1 : icarus_position & SOUTH ? 1 : 0 - in_chamber.xo = icarus_position & EAST ? -1 : icarus_position & WEST ? 1 : 0 - in_chamber.kill_count = 500 - in_chamber.damage = 0 - in_chamber.name = "point defense laser" - in_chamber.firer = "Icarus" // Never displayed, but we want this to display the hit message. - in_chamber.process() - -proc/Icarus_FireCannon(var/turf/target) - // Find the world edge to fire from. - var/x = icarus_position & EAST ? world.maxx : icarus_position & WEST ? 1 : target.x - var/y = icarus_position & NORTH ? world.maxy : icarus_position & SOUTH ? 1 : target.y - var/x_off = x != target.x ? abs(target.x - x) : INFINITY - var/y_off = y != target.y ? abs(target.y - y) : INFINITY - // Get the minimum number of steps using the rise/run shit. - var/iterations = round(min(x_off, y_off)) - 14 // We cannot fire straight from the edge since teleport thing. - - // Now we can get the location of the start. - x = target.x + (icarus_position & EAST ? iterations : icarus_position & WEST ? -iterations : 0) - y = target.y + (icarus_position & NORTH ? iterations : icarus_position & SOUTH ? -iterations : 0) - - var/turf/start = locate(x, y, target.z) - - // Now we find the corresponding turf on the other side of the level. - // Yeah, yeah. Overuse of the terinary operator. So sue me. - x = icarus_position & EAST ? 1 : icarus_position & WEST ? world.maxx : target.x - y = icarus_position & NORTH ? 1 : icarus_position & SOUTH ? world.maxy : target.y - x_off = x != target.x ? abs(target.x - x) : INFINITY - y_off = y != target.y ? abs(target.y - y) : INFINITY - iterations = round(min(x_off, y_off)) - x = target.x + (icarus_position & EAST ? -iterations : icarus_position & WEST ? iterations : 0) - y = target.y + (icarus_position & NORTH ? -iterations : icarus_position & SOUTH ? iterations : 0) - target = locate(x, y, target.z) - - // Finally fire the fucker. - var/obj/effect/meteor/small/projectile = new (start) - projectile.dest = target - projectile.name = "main gun projectile" // stealthy - projectile.hits = 6 - projectile.detonation_chance = 99 // it's a missile/cannon round thing! - - // Make sure it travels - spawn(0) - walk_towards(projectile, projectile.dest, 1) - -proc/Icarus_SetPosition(var/user) - var/global/list/directions = list("North" = 1, "North East" = 5, "East" = 4, "South East" = 6, "South" = 2, "South West" = 10, "West" = 8, "North West" = 9) - var/direction = input(user, "Where should the Icarus fire from?", "Icarus Comms") as null|anything in directions - if(!direction) - return - - icarus_position = directions[direction] diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index d9ef1b95047..fce41f1d4bf 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -149,55 +149,3 @@ obj/item/weapon/gun/energy/staff/focus user << "The [src.name] will now strike only a single person." projectile_type = "/obj/item/projectile/forcebolt" */ - -/* Adminbus guns */ - -// Serves as a target spotter for the Icarus. -/obj/item/weapon/gun/energy/icarus - name = "rubber ducky" - desc = "It's a cute rubber duck. With an evil gleam in it's eye." - projectile_type = /obj/item/projectile/icarus/pointdefense - icon = 'icons/obj/watercloset.dmi' - item_icons = null - icon_state = "rubberducky" - item_state = "rubberducky" - charge_cost = 0 - silenced = 1 - -/obj/item/weapon/gun/energy/icarus/attack_self(mob/living/user as mob) - if(projectile_type == /obj/item/projectile/icarus/pointdefense) - projectile_type = /obj/item/projectile/icarus/guns - user << "You inform the Icarus to switch to the main guns." - else - projectile_type = /obj/item/projectile/icarus/pointdefense - user << "You inform the Icarus to switch to the point-defense lasers." - - . = ..() - -/obj/item/weapon/gun/energy/icarus/update_icon() - return - -/obj/item/weapon/gun/energy/icarus/verb/SetIcarusAngle() - set src in usr - set name = "Set Firing Angle" - set desc = "Sets the angle from which the icarus will fire." - set category = "Object" - - Icarus_SetPosition(usr) - - -/obj/item/weapon/gun/energy/variable - name = "abstract weapon" - desc = "It seems to shift and flow as you watch." - charge_cost = 0 - silenced = 1 - -/obj/item/weapon/gun/energy/variable/update_icon() - return - -/obj/item/weapon/gun/energy/variable/attack_self(mob/living/user as mob) - var/type = input(user,"What projectile type?","Projectile", null) as null|anything in typesof(/obj/item/projectile) - if(!type) - return ..() - projectile_type = type - . = ..() diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 9ef0aea43c5..8a4ddc2d6be 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -137,16 +137,3 @@ var/mob/living/carbon/human/M = target M.adjustBrainLoss(20) M.hallucination += 20 - -/obj/item/projectile/icarus/pointdefense/process() - Icarus_FireLaser(get_turf(original)) - spawn - qdel(src) - - return - -/obj/item/projectile/icarus/guns/process() - Icarus_FireCannon(get_turf(original)) - spawn - qdel(src) - return From f9af885ee1e06f0a391c808bcf42c1feb9eaec84 Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Sat, 12 Dec 2015 14:32:22 -0700 Subject: [PATCH 44/49] Admin created newscaster channels now function correctly. Fixes #8326 --- code/modules/admin/topic.dm | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 45397fa097b..de178bc2980 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2411,13 +2411,8 @@ else var/choice = alert("Please confirm Feed channel creation","Network Channel Handler","Confirm","Cancel") if(choice=="Confirm") - var/datum/feed_channel/newChannel = new /datum/feed_channel - newChannel.channel_name = src.admincaster_feed_channel.channel_name - newChannel.author = src.admincaster_signature - newChannel.locked = src.admincaster_feed_channel.locked - newChannel.is_admin_channel = 1 - feedback_inc("newscaster_channels",1) - news_network.network_channels += newChannel //Adding channel to the global network + news_network.CreateFeedChannel(admincaster_feed_channel.channel_name, admincaster_signature, admincaster_feed_channel.locked, 1) + feedback_inc("newscaster_channels",1) //Adding channel to the global network log_admin("[key_name_admin(usr)] created command feed channel: [src.admincaster_feed_channel.channel_name]!") src.admincaster_screen=5 src.access_news_network() From ddf66a5f39ec1c8d59dda19dcd233e90cb62de2a Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Sat, 12 Dec 2015 21:56:37 +0000 Subject: [PATCH 45/49] fix slime core injecting not working --- code/modules/mob/living/carbon/metroid/items.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/carbon/metroid/items.dm b/code/modules/mob/living/carbon/metroid/items.dm index 6739cb4e2b9..1271bb7da33 100644 --- a/code/modules/mob/living/carbon/metroid/items.dm +++ b/code/modules/mob/living/carbon/metroid/items.dm @@ -11,6 +11,7 @@ origin_tech = "biotech=4" var/Uses = 1 // uses before it goes inert var/enhanced = 0 //has it been enhanced before? + flags = OPENCONTAINER attackby(obj/item/O as obj, mob/user as mob) if(istype(O, /obj/item/weapon/slimesteroid2)) From a5b0f86c194db2ee190a48845a4bc4cf6b563a54 Mon Sep 17 00:00:00 2001 From: Joseph Heinemeyer Date: Sat, 12 Dec 2015 15:24:13 -0700 Subject: [PATCH 46/49] s/"help"/I_HELP/g --- code/modules/mob/living/carbon/human/human.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index c90d06c008a..cabbc1474f3 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1379,7 +1379,7 @@ /mob/living/carbon/human/MouseDrop(var/atom/over_object) var/mob/living/carbon/human/H = over_object - if(holder_type && a_intent == "help" && istype(H) && H == usr && H.a_intent == "help" && !issmall(H) && Adjacent(H)) + if(holder_type && a_intent == I_HELP && istype(H) && H == usr && H.a_intent == I_HELP && !issmall(H) && Adjacent(H)) get_scooped(H) return return ..() From 415f78ee186a3338261a9f9044f6bc69ae0c3dea Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Sat, 12 Dec 2015 16:29:05 -0700 Subject: [PATCH 47/49] Chem grenades are no longer melted by acid. Fixes #10478 --- code/game/objects/items/weapons/grenades/chem_grenade.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index b559527ef7e..d010e70b0ff 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -6,6 +6,7 @@ w_class = 2.0 force = 2.0 det_time = null + unacidable = 1 var/stage = 0 var/state = 0 var/path = 0 From b31a5ba836fa154e1db73c7dab551801329cf347 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Sun, 13 Dec 2015 10:21:00 +0100 Subject: [PATCH 48/49] Compilation fixes. --- code/__defines/mobs.dm | 1 + code/game/verbs/ooc.dm | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index ef268bf1e6b..d7db1726e30 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -25,6 +25,7 @@ #define BORGMESON 1 #define BORGTHERM 2 #define BORGXRAY 4 +#define BORGMATERIAL 8 #define HOSTILE_STANCE_IDLE 1 #define HOSTILE_STANCE_ALERT 2 diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 0cb0067eb5b..f2a2d74f117 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -108,7 +108,7 @@ log_ooc("(LOCAL) [mob.name]/[key] : [msg]") var/mob/source = mob.get_looc_source() - var/list/heard = get_mobs_in_view(7, get_turf(source)) + var/list/heard = get_mobs_or_objects_in_view(7, get_turf(source), 1, 0) var/display_name = key if(holder && holder.fakekey) From c997ef37e92c623ac4ee0b5dbd50eca97ae6da9f Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Sun, 13 Dec 2015 10:53:02 +0100 Subject: [PATCH 49/49] Updates changelog. --- html/changelog.html | 24 +++++++++++++++++++ html/changelogs/.all_changelog.yml | 24 +++++++++++++++++++ html/changelogs/Atlantis-PR-9274.yml | 9 ------- .../PsiOmegaDelta-MultitoolPower.yml | 8 ------- html/changelogs/TheWelp-fluff2.yml | 9 ------- 5 files changed, 48 insertions(+), 26 deletions(-) delete mode 100644 html/changelogs/Atlantis-PR-9274.yml delete mode 100644 html/changelogs/PsiOmegaDelta-MultitoolPower.yml delete mode 100644 html/changelogs/TheWelp-fluff2.yml diff --git a/html/changelog.html b/html/changelog.html index 3f90d54860b..5584d64f024 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,30 @@ -->
+

13 December 2015

+

Atlantis updated:

+
    +
  • Added Inflatables Dispenser(ID), an item that allows rapid deployment, transport and removal of inflatables.
  • +
  • Engineering, Construction and Crisis modules are now outfitted with ID.
  • +
  • Three boxes in engineering have been replaced by three IDs.
  • +
  • w_classes of inflatables readjusted. Boxes and IDs can be carried in backpack now. Individual inflatables are small enough to fit in pocket.
  • +
+

PsiOmegaDelta updated:

+
    +
  • Adds a system to allow objects to implement custom multitool interactions in a modular manner.
  • +
  • The AI can now toggle multitool mode on/off, using the new 'Toggle Multitool Mode' verb.
  • +
  • Cloning vats can now be connected to a cloning console by using a multitool.
  • +
  • Station alert console circuits can now be altered using a multitool, changing which alarm types are displayed.
  • +
  • Can now select the color of a cable coil using a multitool.
  • +
+

TheWelp updated:

+
    +
  • Added boardgame item for use with table-top board games.
  • +
  • Added Actors Guild, an alternate spawn that allows players to control actors.
  • +
  • Added differing card decks, including a Tarot deck and two trading card games.
  • +
  • Remade /TG/Station's Orion Trail arcade machine with bay-specific modifications.
  • +
+

06 December 2015

Hubblenaut updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index e096273005e..f6085c494d3 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -2421,3 +2421,27 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - tweak: Rewrote fireaxe cabinets. Click with a multitool to unlock or loc, click with a hand to open or close, smash with anything that does damage, and drag onto your icon to remove the fireaxe. +2015-12-13: + Atlantis: + - rscadd: Added Inflatables Dispenser(ID), an item that allows rapid deployment, + transport and removal of inflatables. + - rscadd: Engineering, Construction and Crisis modules are now outfitted with ID. + - rscadd: Three boxes in engineering have been replaced by three IDs. + - tweak: w_classes of inflatables readjusted. Boxes and IDs can be carried in backpack + now. Individual inflatables are small enough to fit in pocket. + PsiOmegaDelta: + - experiment: Adds a system to allow objects to implement custom multitool interactions + in a modular manner. + - rscadd: The AI can now toggle multitool mode on/off, using the new 'Toggle Multitool + Mode' verb. + - rscadd: Cloning vats can now be connected to a cloning console by using a multitool. + - rscadd: Station alert console circuits can now be altered using a multitool, changing + which alarm types are displayed. + - rscadd: Can now select the color of a cable coil using a multitool. + TheWelp: + - rscadd: Added boardgame item for use with table-top board games. + - rscadd: Added Actors Guild, an alternate spawn that allows players to control + actors. + - rscadd: Added differing card decks, including a Tarot deck and two trading card + games. + - rscadd: Remade /TG/Station's Orion Trail arcade machine with bay-specific modifications. diff --git a/html/changelogs/Atlantis-PR-9274.yml b/html/changelogs/Atlantis-PR-9274.yml deleted file mode 100644 index 9aba32e619c..00000000000 --- a/html/changelogs/Atlantis-PR-9274.yml +++ /dev/null @@ -1,9 +0,0 @@ -author: Atlantis - -delete-after: True - -changes: - - rscadd: "Added Inflatables Dispenser(ID), an item that allows rapid deployment, transport and removal of inflatables." - - rscadd: "Engineering, Construction and Crisis modules are now outfitted with ID." - - rscadd: "Three boxes in engineering have been replaced by three IDs." - - tweak: "w_classes of inflatables readjusted. Boxes and IDs can be carried in backpack now. Individual inflatables are small enough to fit in pocket." diff --git a/html/changelogs/PsiOmegaDelta-MultitoolPower.yml b/html/changelogs/PsiOmegaDelta-MultitoolPower.yml deleted file mode 100644 index 91f930f87c2..00000000000 --- a/html/changelogs/PsiOmegaDelta-MultitoolPower.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: PsiOmegaDelta -delete-after: True -changes: - - experiment: "Adds a system to allow objects to implement custom multitool interactions in a modular manner." - - rscadd: "The AI can now toggle multitool mode on/off, using the new 'Toggle Multitool Mode' verb." - - rscadd: "Cloning vats can now be connected to a cloning console by using a multitool." - - rscadd: "Station alert console circuits can now be altered using a multitool, changing which alarm types are displayed." - - rscadd: "Can now select the color of a cable coil using a multitool." diff --git a/html/changelogs/TheWelp-fluff2.yml b/html/changelogs/TheWelp-fluff2.yml deleted file mode 100644 index b4a96c500e1..00000000000 --- a/html/changelogs/TheWelp-fluff2.yml +++ /dev/null @@ -1,9 +0,0 @@ -author: TheWelp - -delete-after: True - -changes: - - rscadd: "Added boardgame item for use with table-top board games." - - rscadd: "Added Actors Guild, an alternate spawn that allows players to control actors." - - rscadd: "Added differing card decks, including a Tarot deck and two trading card games." - - rscadd: "Remade /TG/Station's Orion Trail arcade machine with bay-specific modifications."