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

This commit is contained in:
LetterJay
2016-07-03 02:17:19 -05:00
commit 35a1723e98
4355 changed files with 2221257 additions and 0 deletions
+82
View File
@@ -0,0 +1,82 @@
/obj/vehicle/atv
name = "all-terrain vehicle"
desc = "An all-terrain vehicle built for traversing rough terrain with ease. One of the few old-earth technologies that are still relevant on most planet-bound outposts."
icon_state = "atv"
keytype = /obj/item/key
generic_pixel_x = 0
generic_pixel_y = 4
vehicle_move_delay = 1
var/static/image/atvcover = null
/obj/vehicle/atv/New()
..()
if(!atvcover)
atvcover = image("icons/obj/vehicles.dmi", "atvcover")
atvcover.layer = ABOVE_MOB_LAYER
obj/vehicle/atv/post_buckle_mob(mob/living/M)
if(has_buckled_mobs())
add_overlay(atvcover)
else
overlays -= atvcover
/obj/vehicle/atv/handle_vehicle_layer()
if(dir == SOUTH)
layer = ABOVE_MOB_LAYER
else
layer = OBJ_LAYER
//TURRETS!
/obj/vehicle/atv/turret
var/obj/machinery/porta_turret/syndicate/vehicle_turret/turret = null
/obj/machinery/porta_turret/syndicate/vehicle_turret
name = "mounted turret"
scan_range = 7
emp_vunerable = 1
density = 0
/obj/vehicle/atv/turret/New()
..()
turret = new(loc)
turret.base = src
/obj/vehicle/atv/turret/handle_vehicle_layer()
if(dir == SOUTH)
layer = ABOVE_MOB_LAYER
else
layer = OBJ_LAYER
if(turret)
if(dir == NORTH)
turret.layer = ABOVE_MOB_LAYER
else
turret.layer = OBJ_LAYER
/obj/vehicle/atv/turret/handle_vehicle_offsets()
..()
if(turret)
turret.loc = loc
switch(dir)
if(NORTH)
turret.pixel_x = 0
turret.pixel_y = 4
if(EAST)
turret.pixel_x = -12
turret.pixel_y = 4
if(SOUTH)
turret.pixel_x = 0
turret.pixel_y = 4
if(WEST)
turret.pixel_x = 12
turret.pixel_y = 4
+92
View File
@@ -0,0 +1,92 @@
//PIMP-CART
/obj/vehicle/janicart
name = "janicart (pimpin' ride)"
desc = "A brave janitor cyborg gave its life to produce such an amazing combination of speed and utility."
icon_state = "pussywagon"
keytype = /obj/item/key/janitor
var/obj/item/weapon/storage/bag/trash/mybag = null
var/floorbuffer = 0
/obj/vehicle/janicart/handle_vehicle_offsets()
..()
if(has_buckled_mobs())
for(var/m in buckled_mobs)
var/mob/living/buckled_mob = m
switch(buckled_mob.dir)
if(NORTH)
buckled_mob.pixel_x = 0
buckled_mob.pixel_y = 4
if(EAST)
buckled_mob.pixel_x = -12
buckled_mob.pixel_y = 7
if(SOUTH)
buckled_mob.pixel_x = 0
buckled_mob.pixel_y = 7
if(WEST)
buckled_mob.pixel_x = 12
buckled_mob.pixel_y = 7
/obj/item/key/janitor
desc = "A keyring with a small steel key, and a pink fob reading \"Pussy Wagon\"."
icon_state = "keyjanitor"
/obj/item/janiupgrade
name = "floor buffer upgrade"
desc = "An upgrade for mobile janicarts."
icon = 'icons/obj/vehicles.dmi'
icon_state = "upgrade"
origin_tech = "materials=3;engineering=4"
/obj/vehicle/janicart/Moved(atom/OldLoc, Dir)
if(floorbuffer)
var/turf/tile = loc
if(isturf(tile))
tile.clean_blood()
for(var/A in tile)
if(is_cleanable(A))
qdel(A)
/obj/vehicle/janicart/examine(mob/user)
..()
if(floorbuffer)
user << "It has been upgraded with a floor buffer."
/obj/vehicle/janicart/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/storage/bag/trash))
if(!user.drop_item())
return
user << "<span class='notice'>You hook the trashbag onto \the [name].</span>"
I.loc = src
mybag = I
update_icon()
else if(istype(I, /obj/item/janiupgrade))
floorbuffer = 1
qdel(I)
user << "<span class='notice'>You upgrade \the [name] with the floor buffer.</span>"
update_icon()
else
return ..()
/obj/vehicle/janicart/update_icon()
cut_overlays()
if(mybag)
add_overlay("cart_garbage")
if(floorbuffer)
add_overlay("cart_buffer")
/obj/vehicle/janicart/attack_hand(mob/user)
if(..())
return 1
else if(mybag)
mybag.loc = get_turf(user)
user.put_in_hands(mybag)
mybag = null
update_icon()
+137
View File
@@ -0,0 +1,137 @@
/obj/vehicle/scooter
name = "scooter"
desc = "A fun way to get around."
icon_state = "scooter"
/obj/vehicle/scooter/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/wrench))
user << "<span class='notice'>You begin to remove the handlebars...</span>"
playsound(get_turf(user), 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 40/I.toolspeed, target = src))
new /obj/vehicle/scooter/skateboard(get_turf(src))
new /obj/item/stack/rods(get_turf(src),2)
user << "<span class='notice'>You remove the handlebars from [src].</span>"
qdel(src)
/obj/vehicle/scooter/handle_vehicle_layer()
if(dir == SOUTH)
layer = ABOVE_MOB_LAYER
else
layer = OBJ_LAYER
/obj/vehicle/scooter/handle_vehicle_offsets()
..()
if(has_buckled_mobs())
for(var/m in buckled_mobs)
var/mob/living/buckled_mob = m
switch(buckled_mob.dir)
if(NORTH)
buckled_mob.pixel_x = 0
if(EAST)
buckled_mob.pixel_x = -2
if(SOUTH)
buckled_mob.pixel_x = 0
if(WEST)
buckled_mob.pixel_x = 2
if(buckled_mob.get_num_legs() > 0)
buckled_mob.pixel_y = 5
else
buckled_mob.pixel_y = -4
/obj/vehicle/scooter/post_buckle_mob(mob/living/M)
vehicle_move_delay = initial(vehicle_move_delay)
..()
if(M.get_num_legs() < 2)
vehicle_move_delay ++
if(M.get_num_arms() <= 0)
if(buckled_mobs.len)//to prevent the message displaying twice due to unbuckling
M << "<span class='warning'>Your limbless body flops off \the [src].</span>"
unbuckle_mob(M)
/obj/vehicle/scooter/skateboard
name = "skateboard"
desc = "An unfinished scooter which can only barely be called a skateboard. It's still rideable, but probably unsafe. Looks like you'll need to add a few rods to make handlebars."
icon_state = "skateboard"
vehicle_move_delay = 0//fast
density = 0
/obj/vehicle/scooter/skateboard/post_buckle_mob(mob/living/M)//allows skateboards to be non-dense but still allows 2 skateboarders to collide with each other
if(has_buckled_mobs())
density = 1
else
density = 0
..()
/obj/vehicle/scooter/skateboard/Bump(atom/A)
..()
if(A.density && has_buckled_mobs())
var/mob/living/carbon/H = buckled_mobs[1]
var/atom/throw_target = get_edge_target_turf(H, pick(cardinal))
unbuckle_mob(H)
H.throw_at_fast(throw_target, 4, 3)
H.Weaken(5)
H.adjustStaminaLoss(40)
visible_message("<span class='danger'>[src] crashes into [A], sending [H] flying!</span>")
playsound(src, 'sound/effects/bang.ogg', 50, 1)
/obj/vehicle/scooter/skateboard/MouseDrop(atom/over_object)
var/mob/living/carbon/M = usr
if(!istype(M) || M.incapacitated() || !Adjacent(M))
return
if(has_buckled_mobs() && over_object == M)
M << "<span class='warning'>You can't lift this up when somebody's on it.</span>"
return
if(over_object == M)
var/obj/item/weapon/melee/skateboard/board = new /obj/item/weapon/melee/skateboard()
M.put_in_hands(board)
qdel(src)
//CONSTRUCTION
/obj/item/scooter_frame
name = "scooter frame"
desc = "A metal frame for building a scooter. Looks like you'll need to add some metal to make wheels."
icon = 'icons/obj/vehicles.dmi'
icon_state = "scooter_frame"
w_class = 3
/obj/item/scooter_frame/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/wrench))
user << "<span class='notice'>You deconstruct [src].</span>"
new /obj/item/stack/rods(get_turf(src),10)
playsound(get_turf(user), 'sound/items/Ratchet.ogg', 50, 1)
qdel(src)
return
else if(istype(I, /obj/item/stack/sheet/metal))
var/obj/item/stack/sheet/metal/M = I
if(M.amount < 5)
user << "<span class='warning'>You need at least five metal sheets to make proper wheels!</span>"
return
user << "<span class='notice'>You begin to add wheels to [src].</span>"
if(do_after(user, 80, target = src))
M.use(5)
user << "<span class='notice'>You finish making wheels for [src].</span>"
new /obj/vehicle/scooter/skateboard(user.loc)
qdel(src)
/obj/vehicle/scooter/skateboard/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
user << "<span class='notice'>You begin to deconstruct and remove the wheels on [src]...</span>"
playsound(get_turf(user), 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20, target = src))
user << "<span class='notice'>You deconstruct the wheels on [src].</span>"
new /obj/item/stack/sheet/metal(get_turf(src),5)
new /obj/item/scooter_frame(get_turf(src))
qdel(src)
else if(istype(I, /obj/item/stack/rods))
var/obj/item/stack/rods/C = I
if(C.get_amount() < 2)
user << "<span class='warning'>You need at least two rods to make proper handlebars!</span>"
return
user << "<span class='notice'>You begin making handlebars for [src].</span>"
if(do_after(user, 25, target = src))
user << "<span class='notice'>You add the rods to [src], creating handlebars.</span>"
C.use(2)
new/obj/vehicle/scooter(get_turf(src))
qdel(src)
+13
View File
@@ -0,0 +1,13 @@
/obj/vehicle/secway
name = "secway"
desc = "A brave security cyborg gave its life to help you look like a complete tool."
icon_state = "secway"
keytype = /obj/item/key/security
generic_pixel_x = 0
generic_pixel_y = 4
/obj/item/key/security
desc = "A keyring with a small steel key, and a rubber stun baton accessory."
icon_state = "keysec"
+63
View File
@@ -0,0 +1,63 @@
/obj/vehicle/space/speedbike
name = "Speedbike"
icon = 'icons/obj/bike.dmi'
icon_state = "speedbike_blue"
layer = LYING_MOB_LAYER
keytype = null
vehicle_move_delay = 0
var/overlay_state = "cover_blue"
var/image/overlay = null
/obj/vehicle/space/speedbike/New()
..()
overlay = image("icons/obj/bike.dmi", overlay_state)
overlay.layer = ABOVE_MOB_LAYER
add_overlay(overlay)
/obj/effect/overlay/temp/speedbike_trail
name = "speedbike trails"
icon_state = "ion_fade"
layer = BELOW_MOB_LAYER
duration = 10
randomdir = 0
/obj/effect/overlay/temp/speedbike_trail/New(loc,move_dir)
..()
setDir(move_dir)
/obj/vehicle/space/speedbike/Move(newloc,move_dir)
if(has_buckled_mobs())
PoolOrNew(/obj/effect/overlay/temp/speedbike_trail,list(loc,move_dir))
. = ..()
/obj/vehicle/space/speedbike/handle_vehicle_layer()
switch(dir)
if(NORTH,SOUTH)
pixel_x = -16
pixel_y = -16
if(EAST,WEST)
pixel_x = -18
pixel_y = 0
/obj/vehicle/space/speedbike/handle_vehicle_offsets()
if(has_buckled_mobs())
for(var/m in buckled_mobs)
var/mob/living/buckled_mob = m
buckled_mob.setDir(dir)
switch(dir)
if(NORTH)
buckled_mob.pixel_x = 0
buckled_mob.pixel_y = -8
if(SOUTH)
buckled_mob.pixel_x = 0
buckled_mob.pixel_y = 4
if(EAST)
buckled_mob.pixel_x = -10
buckled_mob.pixel_y = 5
if(WEST)
buckled_mob.pixel_x = 10
buckled_mob.pixel_y = 5
/obj/vehicle/space/speedbike/red
icon_state = "speedbike_red"
overlay_state = "cover_red"
+144
View File
@@ -0,0 +1,144 @@
/obj/vehicle
name = "vehicle"
desc = "A basic vehicle, vroom"
icon = 'icons/obj/vehicles.dmi'
icon_state = "fuckyou"
density = 1
anchored = 0
can_buckle = 1
buckle_lying = 0
var/keytype = null //item typepath, if non-null an item of this type is needed in your hands to drive this vehicle
var/next_vehicle_move = 0 //used for move delays
var/vehicle_move_delay = 2 //tick delay between movements, lower = faster, higher = slower
var/auto_door_open = TRUE
var/view_range = 7
//Pixels
var/generic_pixel_x = 0 //All dirs show this pixel_x for the driver
var/generic_pixel_y = 0 //All dirs shwo this pixel_y for the driver
/obj/vehicle/New()
..()
handle_vehicle_layer()
//APPEARANCE
/obj/vehicle/proc/handle_vehicle_layer()
if(dir != NORTH)
layer = ABOVE_MOB_LAYER
else
layer = OBJ_LAYER
//Override this to set your vehicle's various pixel offsets
//if they differ between directions, otherwise use the
//generic variables
/obj/vehicle/proc/handle_vehicle_offsets()
if(has_buckled_mobs())
for(var/m in buckled_mobs)
var/mob/living/buckled_mob = m
buckled_mob.setDir(dir)
buckled_mob.pixel_x = generic_pixel_x
buckled_mob.pixel_y = generic_pixel_y
/obj/vehicle/update_icon()
return
//KEYS
/obj/vehicle/proc/keycheck(mob/user)
if(keytype)
if(istype(user.l_hand, keytype) || istype(user.r_hand, keytype))
return 1
else
return 1
return 0
/obj/item/key
name = "key"
desc = "A small grey key."
icon = 'icons/obj/vehicles.dmi'
icon_state = "key"
w_class = 1
//BUCKLE HOOKS
/obj/vehicle/unbuckle_mob(mob/living/buckled_mob,force = 0)
if(istype(buckled_mob))
buckled_mob.pixel_x = 0
buckled_mob.pixel_y = 0
if(buckled_mob.client)
buckled_mob.client.view = world.view
. = ..()
/obj/vehicle/user_buckle_mob(mob/living/M, mob/user)
if(user.incapacitated())
return
for(var/atom/movable/A in get_turf(src))
if(A.density)
if(A != src && A != M)
return
M.loc = get_turf(src)
..()
handle_vehicle_offsets()
if(user.client)
user.client.view = view_range
//MOVEMENT
/obj/vehicle/relaymove(mob/user, direction)
if(user.incapacitated())
unbuckle_mob(user)
if(keycheck(user))
if(!Process_Spacemove(direction) || world.time < next_vehicle_move || !isturf(loc))
return
next_vehicle_move = world.time + vehicle_move_delay
step(src, direction)
handle_vehicle_layer()
handle_vehicle_offsets()
else
user << "<span class='notice'>You'll need the keys in one of your hands to drive \the [name].</span>"
/obj/vehicle/Move(NewLoc,Dir=0,step_x=0,step_y=0)
. = ..()
handle_vehicle_layer()
handle_vehicle_offsets()
/obj/vehicle/attackby(obj/item/I, mob/user, params)
if(keytype && istype(I, keytype))
user << "Hold [I] in one of your hands while you drive \the [name]."
else
return ..()
/obj/vehicle/Bump(atom/movable/M)
. = ..()
if(auto_door_open)
if(istype(M, /obj/machinery/door) && has_buckled_mobs())
for(var/m in buckled_mobs)
M.Bumped(m)
/obj/vehicle/Process_Spacemove(direction)
if(has_gravity(src))
return 1
if(pulledby)
return 1
return 0
/obj/vehicle/space
pressure_resistance = INFINITY
/obj/vehicle/space/Process_Spacemove(direction)
return 1