Skip to content

Commit

Permalink
Merge pull request tgstation#127 from rainbowjose/master
Browse files Browse the repository at this point in the history
upd
  • Loading branch information
rainbowjose authored Feb 11, 2017
2 parents 45304bf + 3fa80df commit c647cec
Show file tree
Hide file tree
Showing 28 changed files with 368 additions and 456 deletions.
69 changes: 69 additions & 0 deletions _maps/shuttles/emergency_arena.dmm
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
"a" = (/turf/closed/indestructible/necropolis,/area/shuttle_arena)
"b" = (/turf/open/indestructible/necropolis/air,/area/shuttle_arena)
"c" = (/obj/effect/forcefield/arena_shuttle,/turf/open/indestructible/necropolis/air,/area/shuttle_arena)
"d" = (/turf/open/floor/plating/lava/smooth,/area/shuttle_arena)
"e" = (/obj/effect/landmark/shuttle_arena_entrance,/turf/open/indestructible/necropolis/air,/area/shuttle_arena)
"f" = (/turf/open/space,/area/space)
"g" = (/turf/closed/indestructible/necropolis,/area/shuttle/escape{noteleport = 1})
"h" = (/turf/open/indestructible{tag = "icon-cult"; icon_state = "cult"},/area/shuttle/escape{noteleport = 1})
"i" = (/obj/structure/closet/crate/necropolis/dragon,/turf/open/indestructible{tag = "icon-cult"; icon_state = "cult"},/area/shuttle/escape{noteleport = 1})
"j" = (/turf/open/indestructible/necropolis/air,/area/shuttle/escape{noteleport = 1})
"k" = (/obj/structure/fluff/drake_statue,/turf/open/indestructible{tag = "icon-cult"; icon_state = "cult"},/area/shuttle/escape{noteleport = 1})
"l" = (/obj/structure/closet/crate/necropolis/tendril,/turf/open/indestructible/necropolis/air,/area/shuttle/escape{noteleport = 1})
"m" = (/obj/structure/fluff/drake_statue,/turf/open/indestructible/necropolis/air,/area/shuttle/escape{noteleport = 1})
"n" = (/obj/effect/forcefield/arena_shuttle_entrance,/turf/open/indestructible/necropolis/air,/area/shuttle/escape{noteleport = 1})
"o" = (/obj/effect/forcefield/arena_shuttle_entrance,/obj/docking_port/mobile/emergency{name = "The Arena"; timid = 1},/turf/open/indestructible/necropolis/air,/area/shuttle/escape{noteleport = 1})
"p" = (/obj/structure/healingfountain,/turf/open/indestructible/necropolis/air,/area/shuttle/escape{noteleport = 1})

(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
abbbbabbbbbbbbbbbaaaccccaaabbbbbbbbbbbbbbbbbbbbdda
abbbebbbbbbbbbbebaaabbbbaaabbbbbbbbbbbbbbbbbbbbdda
abbbbbbbbbbbbbbbbaaabbbbaaabbbbbbbebbbbbbbbbbbbbba
aabbbabbbbbbbbbbbbaabbbbaabbbbbbbbbbbbbbabbbbbbbba
abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbabbbebbbba
abbbbbbbbbbbbabbbbbbbbbbbbbbbbbbbbbbbbbbabbbbbbbba
abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbabbbbbbbba
abbbbbbbbbbbbbbbbbbbbbbbbbebbaabbbbbbbbbaaaaaabbba
abbbbbabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba
abbbbbbbbbbbbebbbbbbbddbbbbbbbbbbbbbbbbbbbbbbbbbba
abbebbdddbbbbbbbbbbbbddbbbbbbbbbbbbbbbbbbbbbbbbbba
abbbbbdddbbbbbbbbbbbbbddbbbbbbbbbbaabbbbbbbbbbbbba
abbbbbdddbbbbaabbbbbbbbddbbbbbbbbbaabbbbbbbbbbbbba
abbbbbbddbbbbbbbbbbbbbbbbbbbbbbbbbaabbbbbbbbbbbbba
abbbbbbbdbbbbbbbbbbbbbbbbbbbbbbbbbaabbbbbbbbbbbbba
abbbbbbbbbbbbbbbebbbbbbbbbbbbbbbbbaabbbbbbbebbbbba
abbbaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba
abbbbbabbbbbbbbbbbbbbbbbbbbbbbbebbbbbbbbbbbbbbbbba
abbbbbbbbbbbbbbbbbbbbddddbbbbabbbbbbbbbbbbbbbbbbba
abbbbbbbbbbbbbbbbbbbbddddbbbbabbbbbbbbbbbbbbbbbbba
abbbbbebbbbbbbbbbbbbbbbbbbbbbabbbbbbbbbbbbbbbbbbba
abbbbbbbbbbbbbbddbbbbbbbbbbbbabbbbbbbbebbbbbbbbbba
abbbbbbbbbbbbbbddbbbbbbbbbbbbabbbbbbbbbbbbbbbbddda
abbebbbbbbbbbdddbbbbbbbbbbbbbabbbbbbbbbbbbbbbbddda
abbbbbbbbbbbddddbbbbbbbbbbaaaaabbbbbbbbbbbbbbbddda
aaaaaaaaaaaaadbbbbbbbbbbbbaaaaabbbbbbbbbbbbaabddda
ffffffffffffabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaebddda
gggggggggggfaaaaaabbbbebbbbbbbbbebbbbbbbbbbabbddda
gghhiiiihhgfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbabbddda
ggjkhiihkjgfabbbbbbbbbbbbbbbbbbbbbbbbbbbddddddddda
ggjlhhhhljgfabbbbbbbbbbbbbbbbbbbbbbbbbbbddddddddda
ggjjjjjjjjgfabbbbbbbbbbbbbbbbbbbbbbbbbbbddddddddda
ggjmjjjjmjgfabbbbbbbbbbbbdddbbbbbbbbbbbbddddddddda
ggjljjjjljgfabbbbbbbbdddddddbbbbbbbbbbbbddddddddda
ngjjjjjjjjgfabbbbbbbddbbbdddbbbbbbabbbbbbbbbbdddda
ggjmjjjjmjgfabbbbbbbdbbbbbbbbbbbbbabbbbbbbbbbdddda
ogjljjjjljgfabbebbbbbbbbbbbbbbbbbbabaaabbbbbbdddda
ggjjjjjjjjgfabbbbbbbbbbbbbbbbbbbbbabbbabbbbbbbbdda
ggjkhjjjmjgfabbbbbbbbbbbbbbbbbbebbabbeabbbbbbbbdda
ggjljjjjljgfabbbbbbbbbbbbbbbbbbbbbaaaaaaabbbbbbbba
ggjjjjjjjjgfabbbbbbaaaaaabbbbbbbbbabbbbbbbbbbbbbba
ggjmjjjhmjgfabbbbbbbbbbbabbbbbbbbbabbbbbbbbbbbbbba
ngjljjjjljgfabbbbbbbbbebabbbbbbbbbbbbbbbbbbbbbebba
ggjjjjjjjjgfabbbbbbabbbbabbbbbbbbbbbbbbbbbbbbbbbba
ngjmjjjjmjgfabbbbbbaaaaaabbbbbbbbbbbbbbbbbbbbbbbba
ggjjjjjjjjgfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaabbba
gghjjjjjjhgfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba
ggpppppppggfabbbbbbbbbbbbebbbbbbbbbbbbbbebbbbbbbba
fgggggggggffaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}
6 changes: 3 additions & 3 deletions code/controllers/configuration.dm
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
var/name = "Configuration" // datum name

var/server_name = null // server name (the name of the game window)
var/server_sql_name = null // short form server name used for the DB
var/station_name = null // station name (the name of the station in-game)
var/server_suffix = 0 // generate numeric suffix based on server port
var/lobby_countdown = 120 // In between round countdown.
var/round_end_countdown = 25 // Post round murder death kill countdown
var/hub = 0
Expand Down Expand Up @@ -351,10 +351,10 @@
config.respawn = 0
if("servername")
config.server_name = value
if("serversqlname")
config.server_sql_name = 1
if("stationname")
config.station_name = value
if("serversuffix")
config.server_suffix = 1
if("hostedby")
config.hostedby = value
if("server")
Expand Down
25 changes: 14 additions & 11 deletions code/controllers/subsystem/air.dm
Original file line number Diff line number Diff line change
Expand Up @@ -47,18 +47,21 @@ var/datum/subsystem/air/SSair

/datum/subsystem/air/stat_entry(msg)
msg += "C:{"
msg += "AT:[round(cost_turfs)]|"
msg += "EG:[round(cost_groups)]|"
msg += "HP:[round(cost_highpressure)]|"
msg += "HS:[round(cost_hotspots)]|"
msg += "SC:[round(cost_superconductivity)]|"
msg += "PN:[round(cost_pipenets)]|"
msg += "AM:[round(cost_atmos_machinery)]"
msg += "AT:[round(cost_turfs,1)]|"
msg += "EG:[round(cost_groups,1)]|"
msg += "HP:[round(cost_highpressure,1)]|"
msg += "HS:[round(cost_hotspots,1)]|"
msg += "SC:[round(cost_superconductivity,1)]|"
msg += "PN:[round(cost_pipenets,1)]|"
msg += "AM:[round(cost_atmos_machinery,1)]"
msg += "} "
msg += "AT:[active_turfs.len]|"
msg += "EG:[excited_groups.len]|"
msg += "HS:[hotspots.len]|"
msg += "AS:[active_super_conductivity.len]"
msg += "AT:[active_turfs.len]|"
msg += "EG:[excited_groups.len]|"
msg += "HS:[hotspots.len]|"
msg += "PN:[networks.len]|"
msg += "HP:[high_pressure_delta.len]|"
msg += "AS:[active_super_conductivity.len]|"
msg += "AT/ms:[round(active_turfs.len/cost,0.1)]"
..(msg)


Expand Down
1 change: 1 addition & 0 deletions code/datums/helper_datums/map_template.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
for(var/L in block(locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]),
locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ])))
var/turf/B = L
atoms += B
for(var/A in B)
atoms += A
if(istype(A,/obj/structure/cable))
Expand Down
17 changes: 15 additions & 2 deletions code/datums/shuttles.dm
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,19 @@
admin_notes = "Due to the limited space for non paying crew, this shuttle may cause a riot."
credit_cost = 10000


/datum/map_template/shuttle/emergency/arena
suffix = "arena"
name = "The Arena"
description = "The crew must pass through an otherworldy arena to board this shuttle. Expect massive casualties. The source of the Bloody Signal must be tracked down and eliminated to unlock this shuttle."
admin_notes = "RIP AND TEAR."
credit_cost = 10000

/datum/map_template/shuttle/emergency/arena/prerequisites_met()
if("bubblegum" in SSshuttle.shuttle_purchase_requirements_met)
return TRUE
return FALSE

/datum/map_template/shuttle/emergency/birdboat
suffix = "birdboat"
name = "Birdboat Station Emergency Shuttle"
Expand Down Expand Up @@ -160,8 +173,8 @@
/datum/map_template/shuttle/emergency/goon
suffix = "goon"
name = "NES Port"
description = "The Nanotrasen Emergency Shuttle Port(NES Port for short) is a shuttle used at other less known nanotrasen facilities and has a more open inside for larger crowds."
credit_cost = 3000
description = "The Nanotrasen Emergency Shuttle Port(NES Port for short) is a shuttle used at other less known Nanotrasen facilities and has a more open inside for larger crowds, but fewer onboard shuttle facilities."
credit_cost = 500

/datum/map_template/shuttle/emergency/wabbajack
suffix = "wabbajack"
Expand Down
1 change: 1 addition & 0 deletions code/game/machinery/doors/firedoor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@
/obj/machinery/door/firedoor/attack_hand(mob/user)
if(operating || !density)
return
user.changeNext_move(CLICK_CD_MELEE)

user.visible_message("[user] bangs on \the [src].",
"You bang on \the [src].")
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/vending.dm
Original file line number Diff line number Diff line change
Expand Up @@ -762,7 +762,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C

/obj/machinery/vending/cigarette
name = "\improper ShadyCigs Deluxe"
desc = "If you want to get cancer, might as well do it in style"
desc = "If you want to get cancer, might as well do it in style."
product_slogans = "Space cigs taste good like a cigarette should.;I'd rather toolbox than switch.;Smoke!;Don't believe the reports - smoke today!"
product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs."
icon_state = "cigs"
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/stacks/stack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@
//get amount from user
var/min = 0
var/max = src.get_amount()
var/stackmaterial = input(user,"How many sheets do you wish to take out of this stack? (Maximum [max]") as num
var/stackmaterial = round(input(user,"How many sheets do you wish to take out of this stack? (Maximum [max]") as num)
if(stackmaterial == null || stackmaterial <= min || stackmaterial >= src.get_amount())
return
else
Expand Down
2 changes: 2 additions & 0 deletions code/game/objects/items/weapons/tanks/jetpack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
var/gas_type = "o2"
var/on = FALSE
var/stabilizers = FALSE
var/full_speed = TRUE // If the jetpack will have a speedboost in space/nograv or not
var/datum/effect_system/trail_follow/ion/ion_trail

/obj/item/weapon/tank/jetpack/New()
Expand Down Expand Up @@ -133,6 +134,7 @@
volume = 1
slot_flags = null
gas_type = null
full_speed = FALSE
var/datum/gas_mixture/temp_air_contents
var/obj/item/weapon/tank/internals/tank = null

Expand Down
3 changes: 3 additions & 0 deletions code/game/turfs/open.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@
if(prob(12))
icon_state = "necro[rand(2,3)]"

/turf/open/indestructible/necropolis/air
initial_gas_mix = "o2=22;n2=82;TEMP=293.15"

/turf/open/indestructible/hierophant
icon = 'icons/turf/floors/hierophant_floor.dmi'
initial_gas_mix = "o2=14;n2=23;TEMP=300"
Expand Down
105 changes: 66 additions & 39 deletions code/modules/admin/fun_balloon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -100,44 +100,6 @@
qdel(src)


//Luxury Shuttle Blockers

/obj/effect/forcefield/luxury_shuttle
var/threshhold = 500
var/list/approved_passengers = list()

/obj/effect/forcefield/luxury_shuttle/CanPass(atom/movable/mover, turf/target, height=0)
if(mover in approved_passengers)
return 1

if(!isliving(mover)) //No stowaways
return 0

var/total_cash = 0
var/list/counted_money = list()

for(var/obj/item/weapon/coin/C in mover)
total_cash += C.value
counted_money += C
if(total_cash >= threshhold)
break
for(var/obj/item/stack/spacecash/S in mover)
total_cash += S.value * S.amount
counted_money += S
if(total_cash >= threshhold)
break

if(total_cash >= threshhold)
for(var/obj/I in counted_money)
qdel(I)

mover << "Thank you for your payment! Please enjoy your flight."
approved_passengers += mover
return 1
else
mover << "You don't have enough money to enter the main shuttle. You'll have to fly coach."
return 0

//Shuttle Build

/obj/effect/shuttle_build
Expand All @@ -149,4 +111,69 @@

/obj/effect/shuttle_build/New()
SSshuttle.emergency.dock(SSshuttle.getDock("emergency_home"))
qdel(src)
qdel(src)

//Arena

/obj/effect/forcefield/arena_shuttle
name = "portal"
var/list/warp_points = list()


/obj/effect/forcefield/arena_shuttle/Bumped(mob/M as mob|obj)
if(!warp_points.len)
warp_points = get_area_turfs(/area/shuttle/escape)
for(var/turf/T in warp_points)
for(var/atom/movable/AM in T)
if(AM.density && AM.anchored)
warp_points -= T
break
if(!isliving(M))
return
else
var/mob/living/L = M
if(L.pulling && istype(L.pulling, /obj/item/bodypart/head))
L << "Your offering is accepted. You may pass."
qdel(L.pulling)
var/turf/LA = pick(warp_points)
L.forceMove(LA)
L.hallucination = 0
L << "<span class='reallybig redtext'>The battle is won. Your bloodlust subsides.</span>"
for(var/obj/item/weapon/twohanded/required/chainsaw/doomslayer/chainsaw in L)
qdel(chainsaw)
else
L << "You are not yet worthy of passing. Drag a severed head to the barrier to be allowed entry to the hall of champions."

/obj/effect/landmark/shuttle_arena_safe
name = "hall of champions"
desc = "For the winners."

/obj/effect/landmark/shuttle_arena_entrance
name = "the arena"
desc = "A lava filled battlefield."


/obj/effect/forcefield/arena_shuttle_entrance
name = "portal"
var/list/warp_points = list()

/obj/effect/forcefield/arena_shuttle_entrance/Bumped(mob/M as mob|obj)
if(!warp_points.len)
for(var/obj/effect/landmark/shuttle_arena_entrance/S in landmarks_list)
warp_points |= S
if(!isliving(M))
return

var/obj/effect/landmark/LA = pick(warp_points)

M.forceMove(get_turf(LA))
M << "<span class='reallybig redtext'>You're trapped in a deadly arena! To escape, you'll need to drag a severed head to the escape portals.</span>"
spawn()
var/obj/effect/mine/pickup/bloodbath/B = new(M)
B.mineEffect(M)


/area/shuttle_arena
name = "arena"
has_gravity = 1
requires_power = 0
2 changes: 1 addition & 1 deletion code/modules/admin/player_panel.dm
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,7 @@
if(M.client)
observers_connected++
else
other_players += M
other_players++
dat += "<BR><b><font color='blue' size='3'>Players:|[connected_players - lobby_players] ingame|[connected_players] connected|[lobby_players] lobby|</font></b>"
dat += "<BR><b><font color='green'>Living Players:|[living_players_connected] active|[living_players - living_players_connected] disconnected|[living_players_antagonist] antagonists|</font></b>"
dat += "<BR><b><font color='red'>Dead/Observing players:|[observers_connected] active|[observers - observers_connected] disconnected|</font></b>"
Expand Down
8 changes: 4 additions & 4 deletions code/modules/admin/sql_message_system.dm
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@
if(!timestamp)
timestamp = SQLtime()
if(!server)
if (config && config.server_name)
server = config.server_name
if (config && config.server_sql_name)
server = config.server_sql_name
server = sanitizeSQL(server)
if(isnull(secret))
switch(alert("Hide note from being viewed by players?", "Secret note?","Yes","No","Cancel"))
Expand Down Expand Up @@ -352,8 +352,8 @@ proc/get_message_output(type, target_ckey)
var/notetext
notesfile >> notetext
var/server
if(config && config.server_name)
server = config.server_name
if(config && config.server_sql_name)
server = config.server_sql_name
var/regex/note = new("^(\\d{2}-\\w{3}-\\d{4}) \\| (.+) ~(\\w+)$", "i")
note.Find(notetext)
var/timestamp = note.group[1]
Expand Down
Loading

0 comments on commit c647cec

Please sign in to comment.