Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /obj/vehicle/segway/
- name = "segway"
- desc = "A fancy space segway."
- icon = 'icons/obj/segway.dmi'
- icon_state = "segway_off"
- dir = SOUTH
- load_item_visible = 1
- buckle_pixel_shift = "x=-1;y=2"
- health = 100
- maxhealth = 100
- locked = 0
- fire_dam_coeff = 0.6
- brute_dam_coeff = 0.5
- var/protection_percent = 60
- var/land_speed = 10
- var/space_speed = 0
- var/segway_icon = "segway"
- var/obj/item/weapon/engine/engine = null
- var/engine_type
- var/prefilled = 1
- /obj/vehicle/segway/New()
- ..()
- if(engine_type)
- load_engine(new engine_type(src.loc))
- if(prefilled)
- engine.prefill()
- update_icon()
- /obj/vehicle/segway/verb/toggle()
- set name = "Toggle Engine"
- set category = "Object"
- set src in view(0)
- if(usr.incapacitated()) return
- if(!engine)
- to_chat(usr, "<span class='warning'>\The [src] does not have an engine block installed...</span>")
- return
- if(!on)
- turn_on()
- else
- turn_off()
- /obj/vehicle/segway/proc/load_engine(var/obj/item/weapon/engine/E, var/mob/user)
- if(engine)
- return
- if(user)
- user.drop_from_inventory(E)
- engine = E
- engine.forceMove(src)
- /obj/vehicle/segway/proc/unload_engine()
- if(!engine)
- return
- engine.forceMove(get_turf(src))
- /obj/vehicle/segway/load(var/atom/movable/C)
- var/mob/living/M = C
- if(!istype(C)) return 0
- if(M.buckled || M.restrained() || !Adjacent(M) || !M.Adjacent(src))
- return 0
- return ..(M)
- /obj/vehicle/segway/emp_act(var/severity)
- if(engine)
- engine.emp_act(severity)
- ..()
- /obj/vehicle/segway/insert_cell(var/obj/item/weapon/cell/C, var/mob/living/carbon/human/H)
- return
- /obj/vehicle/segway/attackby(obj/item/W as obj, mob/user as mob)
- if(open)
- if(istype(W, /obj/item/weapon/engine))
- if(engine)
- to_chat(user, "<span class='warning'>There is already an engine block in \the [src].</span>")
- return 1
- user.visible_message("<span class='warning'>\The [user] installs \the [W] into \the [src].</span>")
- load_engine(W)
- return
- else if(engine && engine.attackby(W,user))
- return 1
- else if(isCrowbar(W) && engine)
- to_chat(user, "You pop out \the [engine] from \the [src].")
- unload_engine()
- return 1
- return ..()
- /obj/vehicle/segway/MouseDrop_T(var/atom/movable/C, mob/user as mob)
- if(!load(C))
- to_chat(user, "<span class='warning'> You were unable to load \the [C] onto \the [src].</span>")
- return
- /obj/vehicle/segway/attack_hand(var/mob/user as mob)
- if(user == load)
- unload(load)
- to_chat(user, "You unbuckle yourself from \the [src]")
- /obj/vehicle/segway/relaymove(mob/user, direction)
- if(user != load || !on || user.incapacitated())
- return
- return Move(get_step(src, direction))
- /obj/vehicle/segway/Move(var/turf/destination)
- if(!pulledby)
- if(istype(destination,/turf/space) || pulledby)
- if(!space_speed)
- return 0
- move_delay = space_speed
- else
- if(!land_speed)
- return 0
- move_delay = land_speed
- if(!engine || !engine.use_power())
- turn_off()
- return 0
- return ..()
- /obj/vehicle/segway/turn_on()
- if(!engine || on)
- return
- engine.rev_engine(src)
- anchored = 1
- update_icon()
- if(pulledby)
- pulledby.stop_pulling()
- ..()
- /obj/vehicle/segway/turn_off()
- if(!on)
- return
- if(engine)
- engine.putter(src)
- anchored = 1
- update_icon()
- ..()
- /obj/vehicle/segway/bullet_act(var/obj/item/projectile/Proj)
- if(buckled_mob && prob(protection_percent))
- buckled_mob.bullet_act(Proj)
- return
- ..()
- /obj/vehicle/segway/update_icon()
- overlays.Cut()
- if(on)
- icon_state = "[segway_icon]_on"
- else
- icon_state = "[segway_icon]_off"
- overlays += image('icons/obj/segway.dmi', "[icon_state]_overlay", MOB_LAYER + 1)
- ..()
- /obj/vehicle/segway/Destroy()
- qdel(engine)
- ..()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement