Tg 2 11 sync (#215)

* first series of updates

* datums

* games folder

* admin and atmosia stuffs

* moar

* mob updates borg riding

* sprites and stuff

* fixes for various things

* oops. some missed fixes
This commit is contained in:
Poojawa
2017-02-12 03:56:14 -06:00
committed by GitHub
parent 30b3dff395
commit 6674f9fc15
153 changed files with 1651 additions and 1368 deletions
+20 -27
View File
@@ -522,43 +522,39 @@ var/global/list/RPD_recipes=list(
if(!user.IsAdvancedToolUser() || istype(A,/turf/open/space/transit))
return ..()
//make sure what we're clicking is valid for the current mode
var/is_paintable = (p_class == PAINT_MODE && istype(A, /obj/machinery/atmospherics/pipe))
var/is_consumable = (p_class == EATING_MODE && (istype(A, /obj/item/pipe) || istype(A, /obj/item/pipe_meter) || istype(A, /obj/structure/disposalconstruct)))
var/can_make_pipe = ((p_class == ATMOS_MODE || p_class == METER_MODE || p_class == DISPOSALS_MODE) && isturf(A))
if(!is_paintable && !is_consumable && !can_make_pipe)
return ..()
//So that changing the menu settings doesn't affect the pipes already being built.
var/queued_p_type = p_type
var/queued_p_dir = p_dir
var/queued_p_flipped = p_flipped
. = FALSE
switch(p_class)
if(PAINT_MODE) // Paint pipes
if(!istype(A,/obj/machinery/atmospherics/pipe))
// Avoid spewing errors about invalid mode -2 when clicking on stuff that aren't pipes.
user << "<span class='warning'>\The [src]'s error light flickers! Perhaps you need to only use it on pipes and pipe meters?</span>"
return
switch(p_class) //if we've gotten this var, the target is valid
if(PAINT_MODE) //Paint pipes
var/obj/machinery/atmospherics/pipe/P = A
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
P.add_atom_colour(paint_colors[paint_color], FIXED_COLOUR_PRIORITY)
P.pipe_color = paint_colors[paint_color]
user.visible_message("<span class='notice'>[user] paints \the [P] [paint_color].</span>","<span class='notice'>You paint \the [P] [paint_color].</span>")
//P.update_icon()
P.update_node_icon()
return
if(EATING_MODE) // Eating pipes
// Must click on an actual pipe or meter.
if(!(istype(A,/obj/item/pipe) || istype(A,/obj/item/pipe_meter) || istype(A,/obj/structure/disposalconstruct)))
// Avoid spewing errors about invalid mode -1 when clicking on stuff that aren't pipes.
user << "<span class='warning'>The [src]'s error light flickers! Perhaps you need to only use it on pipes and pipe meters?</span>"
return
user << "<span class='notice'>You start destroying pipe...</span>"
if(EATING_MODE) //Eating pipes
user << "<span class='notice'>You start destroying a pipe...</span>"
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
if(do_after(user, 2, target = A))
activate()
qdel(A)
if(ATMOS_MODE)
if(!isturf(A))
user << "<span class='warning'>The [src]'s error light flickers!</span>"
return
user << "<span class='notice'>You start building pipes...</span>"
if(ATMOS_MODE) //Making pipes
user << "<span class='notice'>You start building a pipe...</span>"
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
if(do_after(user, 2, target = A))
activate()
@@ -567,21 +563,18 @@ var/global/list/RPD_recipes=list(
P.update()
P.add_fingerprint(usr)
if(METER_MODE)
if(!isturf(A))
user << "<span class='warning'>The [src]'s error light flickers!</span>"
return 0
if(METER_MODE) //Making pipe meters
user << "<span class='notice'>You start building a meter...</span>"
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
if(do_after(user, 2, target = A))
activate()
new /obj/item/pipe_meter(A)
if(DISPOSALS_MODE)
if(!isturf(A) || is_anchored_dense_turf(A))
user << "<span class='warning'>The [src]'s error light flickers!</span>"
if(DISPOSALS_MODE) //Making disposals pipes
if(!is_anchored_dense_turf(A))
user << "<span class='warning'>The [src]'s error light flickers; there's something in the way!</span>"
return
user << "<span class='notice'>You start building pipes...</span>"
user << "<span class='notice'>You start building a disposals pipe...</span>"
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
if(do_after(user, 20, target = A))
var/obj/structure/disposalconstruct/C = new (A, queued_p_type ,queued_p_dir)
+1 -1
View File
@@ -172,7 +172,7 @@
user.visible_message("[user] has thrown [src]. It lands on [result]. [comment]", \
"<span class='notice'>You throw [src]. It lands on [result]. [comment]</span>", \
"<span class='italics'>You hear [src] rolling, it sounds like a [fake_result].</span>")
else if(src.throwing == 0) //Dice was thrown and is coming to rest
else if(!src.throwing) //Dice was thrown and is coming to rest
visible_message("<span class='notice'>[src] rolls to a stop, landing on [result]. [comment]</span>")
/obj/item/weapon/dice/d4/Crossed(mob/living/carbon/human/H)
@@ -37,12 +37,11 @@
//What does the implant do upon injection?
//return 1 if the implant injects
//return -1 if the implant fails to inject
//return 0 if there is no room for implant
//return 0 if there is no room for implant / it fails
/obj/item/weapon/implant/proc/implant(mob/living/target, mob/user, silent = 0)
LAZYINITLIST(target.implants)
if(!target.can_be_implanted() || !can_be_implanted_in(target))
return -1
return 0
for(var/X in target.implants)
if(istype(X, type))
var/obj/item/weapon/implant/imp_e = X
@@ -43,7 +43,7 @@
target.visible_message("<span class='warning'>[target] seems to resist the implant!</span>", "<span class='warning'>You feel the influence of your enemies try to invade your mind!</span>")
qdel(src)
return -1
return 0
/obj/item/weapon/implanter/gang
name = "implanter (gang)"
@@ -24,14 +24,14 @@
target.visible_message("<span class='warning'>[target] seems to resist the implant!</span>", "<span class='warning'>You feel something interfering with your mental conditioning, but you resist it!</span>")
removed(target, 1)
qdel(src)
return -1
return 0
if(target.mind in ticker.mode.get_gangsters())
ticker.mode.remove_gangster(target.mind)
if(!silent)
target.visible_message("<span class='warning'>[src] was destroyed in the process!</span>", "<span class='notice'>You feel a sense of peace and security. You are now protected from brainwashing.</span>")
removed(target, 1)
qdel(src)
return -1
return 0
if(target.mind in ticker.mode.revolutionaries)
ticker.mode.remove_revolutionary(target.mind)
if(!silent)
@@ -38,6 +38,8 @@
M.visible_message("[user] has implanted [M].", "<span class='notice'>[user] implants you.</span>")
imp = null
update_icon()
else
user << "<span class='warning'>[src] fails to implant [M].</span>"
/obj/item/weapon/implanter/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/weapon/pen))
@@ -574,7 +574,6 @@
user.changeNext_move(CLICK_CD_MELEE)
playsound(loc, "rustle", 50, 1, -5)
user.visible_message("<span class='notice'>[user] hugs \the [src].</span>","<span class='notice'>You hug \the [src].</span>")
return
/obj/item/weapon/storage/box/hug/medical/New()
..()
@@ -34,6 +34,10 @@
new /obj/item/device/flashlight/flare(src)
new /obj/item/device/radio/off(src)
/obj/item/weapon/storage/toolbox/emergency/old
name = "rusty red toolbox"
item_state = "toolbox_red_old"
/obj/item/weapon/storage/toolbox/mechanical
name = "mechanical toolbox"
icon_state = "blue"
@@ -48,6 +52,10 @@
new /obj/item/device/analyzer(src)
new /obj/item/weapon/wirecutters(src)
/obj/item/weapon/storage/toolbox/mechanical/old
name = "rusty blue toolbox"
item_state = "toolbox_blue_old"
/obj/item/weapon/storage/toolbox/electrical
name = "electrical toolbox"
icon_state = "yellow"
@@ -306,3 +306,7 @@
..()
for(var/i in 1 to 3)
new/obj/item/weapon/grenade/chem_grenade/ez_clean(src)
/obj/item/weapon/storage/box/hug/reverse_revolver/New()
..()
new /obj/item/weapon/gun/ballistic/revolver/reverse(src)
@@ -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()
@@ -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