mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
[MIRROR] August 2024 various fixes (#8766)
Co-authored-by: Nadyr <41974248+Darlantanis@users.noreply.github.com>
This commit is contained in:
@@ -43,6 +43,13 @@
|
|||||||
|
|
||||||
else if(LAZYLEN(prizes))
|
else if(LAZYLEN(prizes))
|
||||||
var/prizeselect = pickweight(prizes)
|
var/prizeselect = pickweight(prizes)
|
||||||
|
//VOREstation edit - Randomized map objects were put in loot piles, so handle them...
|
||||||
|
if(istype(prizeselect,/obj/random))
|
||||||
|
var/obj/random/randy = prizeselect
|
||||||
|
var/new_I = randy.spawn_item()
|
||||||
|
qdel(prizeselect)
|
||||||
|
prizeselect = new_I // swap it
|
||||||
|
//VOREstation edit end
|
||||||
new prizeselect(src.loc)
|
new prizeselect(src.loc)
|
||||||
|
|
||||||
if(istype(prizeselect, /obj/item/clothing/suit/syndicatefake)) //Helmet is part of the suit
|
if(istype(prizeselect, /obj/item/clothing/suit/syndicatefake)) //Helmet is part of the suit
|
||||||
|
|||||||
@@ -132,6 +132,19 @@ Buildable meters
|
|||||||
src.set_dir(turn(src.dir, 270))
|
src.set_dir(turn(src.dir, 270))
|
||||||
fixdir()
|
fixdir()
|
||||||
|
|
||||||
|
//VOREstation edit: counter-clockwise rotation
|
||||||
|
/obj/item/pipe/verb/rotate_counterclockwise()
|
||||||
|
set category = "Object"
|
||||||
|
set name = "Rotate Pipe Counter-Clockwise"
|
||||||
|
set src in view(1)
|
||||||
|
|
||||||
|
if ( usr.stat || usr.restrained() || !usr.canmove )
|
||||||
|
return
|
||||||
|
|
||||||
|
src.set_dir(turn(src.dir, 90))
|
||||||
|
fixdir()
|
||||||
|
//VOREstation edit end
|
||||||
|
|
||||||
// Don't let pulling a pipe straighten it out.
|
// Don't let pulling a pipe straighten it out.
|
||||||
/obj/item/pipe/binary/bendable/Move()
|
/obj/item/pipe/binary/bendable/Move()
|
||||||
var/old_bent = !IS_CARDINAL(dir)
|
var/old_bent = !IS_CARDINAL(dir)
|
||||||
|
|||||||
@@ -173,12 +173,18 @@
|
|||||||
M.client.perspective = EYE_PERSPECTIVE
|
M.client.perspective = EYE_PERSPECTIVE
|
||||||
M.client.eye = src
|
M.client.eye = src
|
||||||
M.loc = src
|
M.loc = src
|
||||||
update_use_power(USE_POWER_ACTIVE)
|
// update_use_power(USE_POWER_ACTIVE) //VOREstation edit: borer VR crash fix
|
||||||
occupant = M
|
occupant = M
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
enter_vr()
|
//VOREstation edit - crashes borers
|
||||||
|
if(!M.has_brain_worms())
|
||||||
|
update_use_power(USE_POWER_ACTIVE)
|
||||||
|
enter_vr()
|
||||||
|
else
|
||||||
|
to_chat(user, "<span class='warning'>\The [src] rejects [M] with a sharp beep.</span>")
|
||||||
|
//VOREstation edit end
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/machinery/vr_sleeper/proc/go_out(var/forced = TRUE)
|
/obj/machinery/vr_sleeper/proc/go_out(var/forced = TRUE)
|
||||||
|
|||||||
@@ -49,7 +49,13 @@ var/global/list/image/splatter_cache=list()
|
|||||||
if (B.blood_DNA)
|
if (B.blood_DNA)
|
||||||
blood_DNA |= B.blood_DNA.Copy()
|
blood_DNA |= B.blood_DNA.Copy()
|
||||||
qdel(B)
|
qdel(B)
|
||||||
addtimer(CALLBACK(src, PROC_REF(dry)), DRYING_TIME * (amount+1))
|
|
||||||
|
//VOREstation edit - Moved timer call to Init, and made it not call on mapload
|
||||||
|
/obj/effect/decal/cleanable/blood/Initialize(var/mapload, var/_age)
|
||||||
|
. = ..()
|
||||||
|
if(!mapload)
|
||||||
|
addtimer(CALLBACK(src, PROC_REF(dry)), DRYING_TIME * (amount+1))
|
||||||
|
//VOREstation edit end
|
||||||
|
|
||||||
/obj/effect/decal/cleanable/blood/update_icon()
|
/obj/effect/decal/cleanable/blood/update_icon()
|
||||||
if(basecolor == "rainbow") basecolor = get_random_colour(1)
|
if(basecolor == "rainbow") basecolor = get_random_colour(1)
|
||||||
|
|||||||
@@ -7,91 +7,97 @@
|
|||||||
w_class = ITEMSIZE_HUGE
|
w_class = ITEMSIZE_HUGE
|
||||||
|
|
||||||
/obj/item/stolenpackage/attack_self(mob/user as mob)
|
/obj/item/stolenpackage/attack_self(mob/user as mob)
|
||||||
// Another way of doing this. Commented out because the other method is better for this application.
|
// Another way of doing this. Commented out because the other method is better for this application.
|
||||||
/*var/spawn_chance = rand(1,100)
|
/*var/spawn_chance = rand(1,100)
|
||||||
switch(spawn_chance)
|
switch(spawn_chance)
|
||||||
if(0 to 49)
|
if(0 to 49)
|
||||||
new /obj/random/gun/guarenteed(usr.loc)
|
new /obj/random/gun/guarenteed(usr.loc)
|
||||||
to_chat(usr, "You got a thing!")
|
to_chat(usr, "You got a thing!")
|
||||||
if(50 to 99)
|
if(50 to 99)
|
||||||
new /obj/item/weapon/bikehorn/rubberducky(usr.loc)
|
new /obj/item/weapon/bikehorn/rubberducky(usr.loc)
|
||||||
new /obj/item/weapon/bikehorn(usr.loc)
|
new /obj/item/weapon/bikehorn(usr.loc)
|
||||||
to_chat(usr, "You got two things!")
|
to_chat(usr, "You got two things!")
|
||||||
if(100)
|
if(100)
|
||||||
to_chat(usr, "The box contained nothing!")
|
to_chat(usr, "The box contained nothing!")
|
||||||
return
|
return
|
||||||
*/
|
*/
|
||||||
var/loot = pick(/obj/effect/landmark/costume,
|
var/loot = pick(/obj/effect/landmark/costume,
|
||||||
/obj/item/clothing/glasses/thermal,
|
/obj/item/clothing/glasses/thermal,
|
||||||
/obj/item/clothing/gloves/combat,
|
/obj/item/clothing/gloves/combat,
|
||||||
/obj/item/clothing/head/bearpelt,
|
/obj/item/clothing/head/bearpelt,
|
||||||
/obj/item/clothing/mask/balaclava,
|
/obj/item/clothing/mask/balaclava,
|
||||||
/obj/item/clothing/mask/horsehead,
|
/obj/item/clothing/mask/horsehead,
|
||||||
/obj/item/clothing/mask/muzzle,
|
/obj/item/clothing/mask/muzzle,
|
||||||
/obj/item/clothing/suit/armor/heavy,
|
/obj/item/clothing/suit/armor/heavy,
|
||||||
/obj/item/clothing/suit/armor/laserproof,
|
/obj/item/clothing/suit/armor/laserproof,
|
||||||
/obj/item/clothing/suit/armor/vest,
|
/obj/item/clothing/suit/armor/vest,
|
||||||
/obj/item/device/chameleon,
|
/obj/item/device/chameleon,
|
||||||
/obj/item/device/pda/clown,
|
/obj/item/device/pda/clown,
|
||||||
/obj/item/device/pda/mime,
|
/obj/item/device/pda/mime,
|
||||||
/obj/item/device/pda/syndicate,
|
/obj/item/device/pda/syndicate,
|
||||||
/obj/item/mecha_parts/chassis/phazon,
|
/obj/item/mecha_parts/chassis/phazon,
|
||||||
/obj/item/mecha_parts/part/phazon_head,
|
/obj/item/mecha_parts/part/phazon_head,
|
||||||
/obj/item/mecha_parts/part/phazon_left_arm,
|
/obj/item/mecha_parts/part/phazon_left_arm,
|
||||||
/obj/item/mecha_parts/part/phazon_left_leg,
|
/obj/item/mecha_parts/part/phazon_left_leg,
|
||||||
/obj/item/mecha_parts/part/phazon_right_arm,
|
/obj/item/mecha_parts/part/phazon_right_arm,
|
||||||
/obj/item/mecha_parts/part/phazon_right_leg,
|
/obj/item/mecha_parts/part/phazon_right_leg,
|
||||||
/obj/item/mecha_parts/part/phazon_torso,
|
/obj/item/mecha_parts/part/phazon_torso,
|
||||||
/obj/item/weapon/circuitboard/mecha/phazon/targeting,
|
/obj/item/weapon/circuitboard/mecha/phazon/targeting,
|
||||||
/obj/item/weapon/circuitboard/mecha/phazon/peripherals,
|
/obj/item/weapon/circuitboard/mecha/phazon/peripherals,
|
||||||
/obj/item/weapon/circuitboard/mecha/phazon/main,
|
/obj/item/weapon/circuitboard/mecha/phazon/main,
|
||||||
/obj/item/device/bodysnatcher,
|
/obj/item/device/bodysnatcher,
|
||||||
/obj/item/device/mindbinder, //CHOMPAdd
|
/obj/item/weapon/bluespace_harpoon,
|
||||||
/obj/item/weapon/bluespace_harpoon,
|
/obj/item/clothing/accessory/permit/gun,
|
||||||
/obj/item/clothing/accessory/permit/gun,
|
/obj/item/device/perfect_tele,
|
||||||
/obj/item/device/perfect_tele,
|
/obj/item/device/sleevemate,
|
||||||
/obj/item/device/sleevemate,
|
/obj/item/weapon/disk/nifsoft/compliance,
|
||||||
/obj/item/weapon/disk/nifsoft/compliance,
|
/obj/item/weapon/implanter/compliance,
|
||||||
/obj/item/weapon/implanter/compliance,
|
/obj/item/seeds/ambrosiadeusseed,
|
||||||
/obj/item/seeds/ambrosiadeusseed,
|
/obj/item/seeds/ambrosiavulgarisseed,
|
||||||
/obj/item/seeds/ambrosiavulgarisseed,
|
/obj/item/seeds/libertymycelium,
|
||||||
/obj/item/seeds/libertymycelium,
|
/obj/fiftyspawner/platinum,
|
||||||
/obj/fiftyspawner/platinum,
|
/obj/item/toy/nanotrasenballoon,
|
||||||
/obj/item/toy/nanotrasenballoon,
|
/obj/item/toy/syndicateballoon,
|
||||||
/obj/item/toy/syndicateballoon,
|
/obj/item/weapon/aiModule/syndicate,
|
||||||
/obj/item/weapon/aiModule/syndicate,
|
/obj/item/weapon/book/manual/wiki/engineering_hacking, // CHOMPEdit
|
||||||
/obj/item/weapon/book/manual/wiki/engineering_hacking, // CHOMPEdit
|
/obj/item/weapon/card/emag,
|
||||||
/obj/item/weapon/card/emag,
|
/obj/item/weapon/card/emag_broken,
|
||||||
/obj/item/weapon/card/emag_broken,
|
/obj/item/weapon/card/id/syndicate,
|
||||||
/obj/item/weapon/card/id/syndicate,
|
/obj/item/poster,
|
||||||
/obj/item/poster,
|
/obj/item/weapon/disposable_teleporter,
|
||||||
/obj/item/weapon/disposable_teleporter,
|
/obj/item/weapon/grenade/flashbang/clusterbang,
|
||||||
/obj/item/weapon/grenade/flashbang/clusterbang,
|
/obj/item/weapon/grenade/flashbang/clusterbang,
|
||||||
/obj/item/weapon/grenade/flashbang/clusterbang,
|
/obj/item/weapon/grenade/spawnergrenade/spesscarp,
|
||||||
/obj/item/weapon/grenade/spawnergrenade/spesscarp,
|
/obj/item/weapon/melee/energy/sword,
|
||||||
/obj/item/weapon/melee/energy/sword,
|
/obj/item/weapon/melee/telebaton,
|
||||||
/obj/item/weapon/melee/telebaton,
|
/obj/item/weapon/pen/reagent/paralysis,
|
||||||
/obj/item/weapon/pen/reagent/paralysis,
|
/obj/item/weapon/pickaxe/diamonddrill,
|
||||||
/obj/item/weapon/pickaxe/diamonddrill,
|
/obj/item/weapon/reagent_containers/food/drinks/bottle/pwine,
|
||||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/pwine,
|
/obj/item/weapon/reagent_containers/food/snacks/carpmeat,
|
||||||
/obj/item/weapon/reagent_containers/food/snacks/carpmeat,
|
/obj/item/weapon/reagent_containers/food/snacks/clownstears,
|
||||||
/obj/item/weapon/reagent_containers/food/snacks/clownstears,
|
/obj/item/weapon/reagent_containers/food/snacks/xenomeat,
|
||||||
/obj/item/weapon/reagent_containers/food/snacks/xenomeat,
|
/obj/item/weapon/reagent_containers/glass/beaker/neurotoxin,
|
||||||
/obj/item/weapon/reagent_containers/glass/beaker/neurotoxin,
|
/obj/item/weapon/rig/combat,
|
||||||
/obj/item/weapon/rig/combat,
|
/obj/item/weapon/shield/energy,
|
||||||
/obj/item/weapon/shield/energy,
|
/obj/item/weapon/stamp/centcomm,
|
||||||
/obj/item/weapon/stamp/centcomm,
|
/obj/item/weapon/stamp/solgov,
|
||||||
/obj/item/weapon/stamp/solgov,
|
/obj/item/weapon/storage/fancy/cigar/havana,
|
||||||
/obj/item/weapon/storage/fancy/cigar/havana,
|
/obj/item/xenos_claw,
|
||||||
/obj/item/xenos_claw,
|
/obj/random/contraband,
|
||||||
/obj/random/contraband,
|
/obj/random/contraband,
|
||||||
/obj/random/contraband,
|
/obj/random/contraband,
|
||||||
/obj/random/contraband,
|
/obj/random/contraband,
|
||||||
/obj/random/contraband,
|
/obj/random/weapon/guarenteed)
|
||||||
/obj/random/weapon/guarenteed)
|
//VOREstation edit - Randomized map objects were put in loot piles, so handle them...
|
||||||
new loot(usr.loc)
|
if(istype(loot,/obj/random))
|
||||||
to_chat(user, "You unwrap the package.")
|
var/obj/random/randy = loot
|
||||||
qdel(src)
|
var/new_I = randy.spawn_item()
|
||||||
|
qdel(loot)
|
||||||
|
loot = new_I // swap it
|
||||||
|
//VOREstation edit end
|
||||||
|
new loot(usr.loc)
|
||||||
|
to_chat(user, "You unwrap the package.")
|
||||||
|
qdel(src)
|
||||||
|
|
||||||
/obj/item/weapon/miscdisc
|
/obj/item/weapon/miscdisc
|
||||||
name = "strange artefact"
|
name = "strange artefact"
|
||||||
|
|||||||
@@ -97,6 +97,8 @@
|
|||||||
return
|
return
|
||||||
if(W.loc != user) // This should stop mounted modules ending up outside the module.
|
if(W.loc != user) // This should stop mounted modules ending up outside the module.
|
||||||
return
|
return
|
||||||
|
if(istype(W, /obj/item/weapon/grab)) //VOREstation edit: we don't want to drop grabs into the crate
|
||||||
|
return
|
||||||
user.drop_item()
|
user.drop_item()
|
||||||
if(W)
|
if(W)
|
||||||
W.forceMove(src.loc)
|
W.forceMove(src.loc)
|
||||||
@@ -746,4 +748,4 @@
|
|||||||
icon = 'icons/obj/closets/miningcar.dmi'
|
icon = 'icons/obj/closets/miningcar.dmi'
|
||||||
closet_appearance = null
|
closet_appearance = null
|
||||||
open_sound = 'sound/effects/wooden_closet_open.ogg'
|
open_sound = 'sound/effects/wooden_closet_open.ogg'
|
||||||
close_sound = 'sound/effects/wooden_closet_close.ogg'
|
close_sound = 'sound/effects/wooden_closet_close.ogg'
|
||||||
|
|||||||
@@ -127,3 +127,22 @@
|
|||||||
|
|
||||||
src.set_dir(turn(src.dir, 270))
|
src.set_dir(turn(src.dir, 270))
|
||||||
return
|
return
|
||||||
|
|
||||||
|
//VOREstation edit: counter-clockwise rotation
|
||||||
|
/obj/structure/gravemarker/verb/rotate_counterclockwise()
|
||||||
|
set name = "Rotate Grave Marker Counter-Clockwise"
|
||||||
|
set category = "Object"
|
||||||
|
set src in oview(1)
|
||||||
|
|
||||||
|
if(anchored)
|
||||||
|
return
|
||||||
|
|
||||||
|
if(!usr || !isturf(usr.loc))
|
||||||
|
return
|
||||||
|
if(usr.stat || usr.restrained())
|
||||||
|
return
|
||||||
|
if(ismouse(usr) || (isobserver(usr) && !CONFIG_GET(flag/ghost_interaction))) // CHOMPEdit
|
||||||
|
return
|
||||||
|
|
||||||
|
src.set_dir(turn(src.dir, 90))
|
||||||
|
return
|
||||||
|
|||||||
@@ -93,6 +93,14 @@ Loot piles can be depleted, if loot_depleted is turned on. Note that players wh
|
|||||||
else // Welp.
|
else // Welp.
|
||||||
loot = produce_common_item()
|
loot = produce_common_item()
|
||||||
|
|
||||||
|
//VOREstation edit - Randomized map objects were put in loot piles, so handle them...
|
||||||
|
if(istype(loot,/obj/random))
|
||||||
|
var/obj/random/randy = loot
|
||||||
|
var/new_I = randy.spawn_item()
|
||||||
|
qdel(loot)
|
||||||
|
loot = new_I // swap it
|
||||||
|
//VOREstation edit end
|
||||||
|
|
||||||
if(loot)
|
if(loot)
|
||||||
searched_by |= user.ckey
|
searched_by |= user.ckey
|
||||||
loot.forceMove(get_turf(src))
|
loot.forceMove(get_turf(src))
|
||||||
|
|||||||
@@ -159,6 +159,14 @@
|
|||||||
else if(luck <= chance_alpha+chance_beta+chance_gamma)
|
else if(luck <= chance_alpha+chance_beta+chance_gamma)
|
||||||
I = produce_gamma_item()
|
I = produce_gamma_item()
|
||||||
|
|
||||||
|
//VOREstation edit - Randomized map objects were put in loot piles, so handle them...
|
||||||
|
if(istype(I,/obj/random))
|
||||||
|
var/obj/random/randy = I
|
||||||
|
var/new_I = randy.spawn_item()
|
||||||
|
qdel(I)
|
||||||
|
I = new_I // swap it
|
||||||
|
//VOREstation edit end
|
||||||
|
|
||||||
//We either have an item to hand over or we don't, at this point!
|
//We either have an item to hand over or we don't, at this point!
|
||||||
if(I)
|
if(I)
|
||||||
searchedby += user.ckey
|
searchedby += user.ckey
|
||||||
|
|||||||
@@ -290,6 +290,27 @@
|
|||||||
update_icon()
|
update_icon()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
//VOREstation edit: counter-clockwise rotation
|
||||||
|
/obj/structure/windoor_assembly/verb/rotate_counterclockwise()
|
||||||
|
set name = "Rotate Windoor Assembly Counter-Clockwise"
|
||||||
|
set category = "Object"
|
||||||
|
set src in oview(1)
|
||||||
|
|
||||||
|
if (src.anchored)
|
||||||
|
to_chat(usr,"It is fastened to the floor; therefore, you can't rotate it!")
|
||||||
|
return 0
|
||||||
|
if(src.state != "01")
|
||||||
|
update_nearby_tiles(need_rebuild=1) //Compel updates before
|
||||||
|
|
||||||
|
src.set_dir(turn(src.dir, 90))
|
||||||
|
|
||||||
|
if(src.state != "01")
|
||||||
|
update_nearby_tiles(need_rebuild=1)
|
||||||
|
|
||||||
|
update_icon()
|
||||||
|
return
|
||||||
|
//VOREstation edit end
|
||||||
|
|
||||||
//Flips the windoor assembly, determines whather the door opens to the left or the right
|
//Flips the windoor assembly, determines whather the door opens to the left or the right
|
||||||
/obj/structure/windoor_assembly/verb/flip()
|
/obj/structure/windoor_assembly/verb/flip()
|
||||||
set name = "Flip Windoor Assembly"
|
set name = "Flip Windoor Assembly"
|
||||||
|
|||||||
@@ -139,6 +139,15 @@
|
|||||||
|
|
||||||
set_dir(turn(dir, 270))
|
set_dir(turn(dir, 270))
|
||||||
|
|
||||||
|
//VOREstation edit: counter-clockwise rotation
|
||||||
|
/obj/item/device/assembly/infra/verb/rotate_counterclockwise()
|
||||||
|
set name = "Rotate Infrared Laser Counter-Clockwise"
|
||||||
|
set category = "Object"
|
||||||
|
set src in usr
|
||||||
|
|
||||||
|
set_dir(turn(dir, 90))
|
||||||
|
//VOREstation edit end
|
||||||
|
|
||||||
/***************************IBeam*********************************/
|
/***************************IBeam*********************************/
|
||||||
|
|
||||||
/obj/effect/beam/i_beam
|
/obj/effect/beam/i_beam
|
||||||
|
|||||||
@@ -684,6 +684,23 @@ GLOBAL_LIST_EMPTY(vending_products)
|
|||||||
src.set_dir(turn(src.dir, 270))
|
src.set_dir(turn(src.dir, 270))
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
//VOREstation edit: counter-clockwise rotation
|
||||||
|
/obj/machinery/vending/verb/rotate_counterclockwise()
|
||||||
|
set name = "Rotate Vending Machine Counter-Clockwise"
|
||||||
|
set category = "Object"
|
||||||
|
set src in oview(1)
|
||||||
|
|
||||||
|
if (src.can_rotate == 0)
|
||||||
|
to_chat(usr, "<span class='warning'>\The [src] cannot be rotated.</span>")
|
||||||
|
return 0
|
||||||
|
|
||||||
|
if (src.anchored || usr:stat)
|
||||||
|
to_chat(usr, "<span class='filter_notice'>It is bolted down!</span>")
|
||||||
|
return 0
|
||||||
|
src.set_dir(turn(src.dir, 90))
|
||||||
|
return 1
|
||||||
|
//VOREstation edit end
|
||||||
|
|
||||||
/obj/machinery/vending/verb/check_logs()
|
/obj/machinery/vending/verb/check_logs()
|
||||||
set name = "Check Vending Logs"
|
set name = "Check Vending Logs"
|
||||||
set category = "Object"
|
set category = "Object"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
else // They're outside and hopefully on a planet.
|
else // They're outside and hopefully on a planet.
|
||||||
if(!(T.z in SSplanets.z_to_planet) || !(SSplanets.z_to_planet[T.z]))
|
if(T.z <= 0 || SSplanets.z_to_planet.len < T.z || !(SSplanets.z_to_planet[T.z])) //VOREstation edit - removed broken in list check; use length limit instead.
|
||||||
to_chat(usr, span("warning", "You appear to be outside, but not on a planet... Something is wrong."))
|
to_chat(usr, span("warning", "You appear to be outside, but not on a planet... Something is wrong."))
|
||||||
return
|
return
|
||||||
var/datum/planet/P = SSplanets.z_to_planet[T.z]
|
var/datum/planet/P = SSplanets.z_to_planet[T.z]
|
||||||
|
|||||||
@@ -515,3 +515,18 @@
|
|||||||
|
|
||||||
src.set_dir(turn(src.dir, 270))
|
src.set_dir(turn(src.dir, 270))
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
//VOREstation edit: counter-clockwise rotation
|
||||||
|
/obj/machinery/mining/brace/verb/rotate_counterclockwise()
|
||||||
|
set name = "Rotate Brace Counter-Clockwise"
|
||||||
|
set category = "Object"
|
||||||
|
set src in oview(1)
|
||||||
|
|
||||||
|
if(usr.stat) return
|
||||||
|
|
||||||
|
if (src.anchored)
|
||||||
|
to_chat(usr, "It is anchored in place!")
|
||||||
|
return 0
|
||||||
|
|
||||||
|
src.set_dir(turn(src.dir, 90))
|
||||||
|
return 1
|
||||||
|
|||||||
@@ -47,9 +47,9 @@
|
|||||||
|
|
||||||
/mob/living/bot/New()
|
/mob/living/bot/New()
|
||||||
..()
|
..()
|
||||||
update_icons()
|
//update_icons() //VOREstation edit: moved to Init
|
||||||
|
|
||||||
default_language = GLOB.all_languages[LANGUAGE_GALCOM]
|
//default_language = GLOB.all_languages[LANGUAGE_GALCOM] //VOREstation edit: moved to Init
|
||||||
|
|
||||||
botcard = new /obj/item/weapon/card/id(src)
|
botcard = new /obj/item/weapon/card/id(src)
|
||||||
botcard.access = botcard_access.Copy()
|
botcard.access = botcard_access.Copy()
|
||||||
@@ -66,6 +66,8 @@
|
|||||||
. = ..()
|
. = ..()
|
||||||
if(on)
|
if(on)
|
||||||
turn_on() // Update lights and other stuff
|
turn_on() // Update lights and other stuff
|
||||||
|
update_icons() //VOREstation edit - overlay runtime fix
|
||||||
|
default_language = GLOB.all_languages[LANGUAGE_GALCOM] //VOREstation edit - runtime fix
|
||||||
|
|
||||||
/mob/living/bot/Life()
|
/mob/living/bot/Life()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -340,6 +340,11 @@
|
|||||||
/obj/mecha/can_fall()
|
/obj/mecha/can_fall()
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
|
// VOREstation edit - Falling vehicles.
|
||||||
|
/obj/vehicle/can_fall()
|
||||||
|
return TRUE
|
||||||
|
// VOREstation edit end
|
||||||
|
|
||||||
/obj/item/pipe/can_fall()
|
/obj/item/pipe/can_fall()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
|
|||||||
@@ -85,6 +85,16 @@
|
|||||||
|
|
||||||
src.set_dir(turn(src.dir, 270))
|
src.set_dir(turn(src.dir, 270))
|
||||||
|
|
||||||
|
/obj/machinery/light_construct/floortube/verb/rotate_counterclockwise()
|
||||||
|
set name = "Rotate Fixture Counter-Clockwise"
|
||||||
|
set category = "Object"
|
||||||
|
set src in view(1)
|
||||||
|
|
||||||
|
if (usr.stat || usr.restrained() || anchored)
|
||||||
|
return
|
||||||
|
|
||||||
|
src.set_dir(turn(src.dir, 90))
|
||||||
|
|
||||||
/obj/machinery/light_construct/floortube/update_icon()
|
/obj/machinery/light_construct/floortube/update_icon()
|
||||||
switch(stage)
|
switch(stage)
|
||||||
if(1)
|
if(1)
|
||||||
@@ -260,4 +270,3 @@
|
|||||||
/obj/machinery/light/broken/small/Initialize()
|
/obj/machinery/light/broken/small/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
broken()
|
broken()
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
caliber = "nsfw"
|
caliber = "nsfw"
|
||||||
|
|
||||||
origin_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 6, TECH_MAGNETS = 4)
|
origin_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 6, TECH_MAGNET = 4)
|
||||||
|
|
||||||
fire_sound = 'sound/weapons/Taser.ogg'
|
fire_sound = 'sound/weapons/Taser.ogg'
|
||||||
|
|
||||||
@@ -66,8 +66,8 @@
|
|||||||
chambered = new_batt
|
chambered = new_batt
|
||||||
update_charge()
|
update_charge()
|
||||||
update_icon()
|
update_icon()
|
||||||
var/mob/living/M = loc // TGMC Ammo HUD
|
var/mob/living/M = loc // TGMC Ammo HUD
|
||||||
if(istype(M)) // TGMC Ammo HUD
|
if(istype(M)) // TGMC Ammo HUD
|
||||||
M?.hud_used.update_ammo_hud(M, src)
|
M?.hud_used.update_ammo_hud(M, src)
|
||||||
|
|
||||||
/obj/item/weapon/gun/projectile/cell_loaded/attack_self(mob/user)
|
/obj/item/weapon/gun/projectile/cell_loaded/attack_self(mob/user)
|
||||||
@@ -144,7 +144,7 @@
|
|||||||
desc = "A microbattery holder for a cell-based variable weapon."
|
desc = "A microbattery holder for a cell-based variable weapon."
|
||||||
icon = 'icons/obj/ammo_vr.dmi'
|
icon = 'icons/obj/ammo_vr.dmi'
|
||||||
icon_state = "cell_mag"
|
icon_state = "cell_mag"
|
||||||
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 5, TECH_MAGNETS = 3)
|
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 5, TECH_MAGNET = 3)
|
||||||
caliber = "nsfw"
|
caliber = "nsfw"
|
||||||
ammo_type = /obj/item/ammo_casing/microbattery
|
ammo_type = /obj/item/ammo_casing/microbattery
|
||||||
initial_ammo = 0
|
initial_ammo = 0
|
||||||
@@ -285,7 +285,7 @@
|
|||||||
new /obj/item/ammo_casing/microbattery/medical/stabilize2(src)
|
new /obj/item/ammo_casing/microbattery/medical/stabilize2(src)
|
||||||
new /obj/item/ammo_casing/microbattery/medical/haste(src)
|
new /obj/item/ammo_casing/microbattery/medical/haste(src)
|
||||||
new /obj/item/ammo_casing/microbattery/medical/resist(src)
|
new /obj/item/ammo_casing/microbattery/medical/resist(src)
|
||||||
|
|
||||||
// TGMC Ammo HUD: Custom handling for cell-loaded weaponry.
|
// TGMC Ammo HUD: Custom handling for cell-loaded weaponry.
|
||||||
/*
|
/*
|
||||||
/obj/item/weapon/gun/projectile/cell_loaded/get_ammo_type()
|
/obj/item/weapon/gun/projectile/cell_loaded/get_ammo_type()
|
||||||
@@ -300,7 +300,7 @@
|
|||||||
return 0 // We're not chambered, so we have 0 rounds loaded.
|
return 0 // We're not chambered, so we have 0 rounds loaded.
|
||||||
|
|
||||||
var/obj/item/ammo_casing/microbattery/batt = chambered
|
var/obj/item/ammo_casing/microbattery/batt = chambered
|
||||||
|
|
||||||
var/shots
|
var/shots
|
||||||
if(ammo_magazine) // Check how much ammo we have
|
if(ammo_magazine) // Check how much ammo we have
|
||||||
for(var/obj/item/ammo_casing/microbattery/bullet as anything in ammo_magazine.stored_ammo)
|
for(var/obj/item/ammo_casing/microbattery/bullet as anything in ammo_magazine.stored_ammo)
|
||||||
@@ -311,4 +311,4 @@
|
|||||||
else // We're out of shots.
|
else // We're out of shots.
|
||||||
return 0
|
return 0
|
||||||
else // Else, we're unloaded/don't have a magazine.
|
else // Else, we're unloaded/don't have a magazine.
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -0,0 +1,356 @@
|
|||||||
|
// The Casing //
|
||||||
|
/obj/item/ammo_casing/microbattery/medical
|
||||||
|
name = "\'ML-3/M\' nanite cell - UNKNOWN"
|
||||||
|
desc = "A miniature nanite fabricator for a medigun."
|
||||||
|
catalogue_data = list(/datum/category_item/catalogue/information/organization/vey_med)
|
||||||
|
icon_state = "ml3m_batt"
|
||||||
|
origin_tech = list(TECH_BIO = 2, TECH_MATERIAL = 1, TECH_MAGNET = 2)
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell
|
||||||
|
name = "\improper healing beam"
|
||||||
|
icon_state = "medbeam"
|
||||||
|
nodamage = 1
|
||||||
|
damage = 0
|
||||||
|
check_armour = "laser"
|
||||||
|
light_color = "#80F5FF"
|
||||||
|
hud_state = "laser_disabler"
|
||||||
|
|
||||||
|
combustion = FALSE
|
||||||
|
|
||||||
|
can_miss = FALSE
|
||||||
|
|
||||||
|
muzzle_type = /obj/effect/projectile/muzzle/medigun
|
||||||
|
tracer_type = /obj/effect/projectile/tracer/medigun
|
||||||
|
impact_type = /obj/effect/projectile/impact/medigun
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/on_hit(var/mob/living/carbon/human/target) //what does it do when it hits someone?
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/brute
|
||||||
|
name = "\'ML-3/M\' nanite cell - BRUTE"
|
||||||
|
type_color = "#BF0000"
|
||||||
|
type_name = "<span style='color:#BF0000;font-weight:bold;'>BRUTE</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/brute
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/brute/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
if(target.stat != DEAD)
|
||||||
|
target.adjustBruteLoss(-10)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/burn
|
||||||
|
name = "\'ML-3/M\' nanite cell - BURN"
|
||||||
|
type_color = "#FF8000"
|
||||||
|
type_name = "<span style='color:#FF8000;font-weight:bold;'>BURN</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/burn
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/burn/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
if(target.stat != DEAD)
|
||||||
|
target.adjustFireLoss(-10)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/stabilize
|
||||||
|
name = "\'ML-3/M\' nanite cell - STABILIZE" //Disinfects all open wounds, cures oxy damage
|
||||||
|
type_color = "#0080FF"
|
||||||
|
type_name = "<span style='color:#0080FF;font-weight:bold;'>STABILIZE</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/stabilize
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/stabilize/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
target.adjustOxyLoss(-30)
|
||||||
|
for(var/name in list(BP_HEAD, BP_L_HAND, BP_R_HAND, BP_L_ARM, BP_R_ARM, BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG, BP_GROIN, BP_TORSO))
|
||||||
|
var/obj/item/organ/external/O = target.organs_by_name[name]
|
||||||
|
for (var/datum/wound/W in O.wounds)
|
||||||
|
if (W.internal)
|
||||||
|
continue
|
||||||
|
W.disinfect()
|
||||||
|
target.add_modifier(/datum/modifier/stabilize, 20 SECONDS)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/datum/modifier/stabilize
|
||||||
|
name = "stabilize"
|
||||||
|
desc = "Your injuries are stabilized and your pain abates!"
|
||||||
|
mob_overlay_state = "cyan_sparkles"
|
||||||
|
stacks = MODIFIER_STACK_EXTEND
|
||||||
|
pain_immunity = TRUE
|
||||||
|
bleeding_rate_percent = 0.1 //only a little
|
||||||
|
incoming_oxy_damage_percent = 0
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/toxin
|
||||||
|
name = "\'ML-3/M\' nanite cell - TOXIN"
|
||||||
|
type_color = "#00A000"
|
||||||
|
type_name = "<span style='color:#00A000;font-weight:bold;'>TOXIN</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/toxin
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/toxin/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
if(target.stat != DEAD)
|
||||||
|
target.adjustToxLoss(-10)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/omni
|
||||||
|
name = "\'ML-3/M\' nanite cell - OMNI"
|
||||||
|
type_color = "#8040FF"
|
||||||
|
type_name = "<span style='color:#8040FF;font-weight:bold;'>OMNI</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/omni
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/omni/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
if(target.stat != DEAD)
|
||||||
|
target.adjustBruteLoss(-5)
|
||||||
|
target.adjustFireLoss(-5)
|
||||||
|
target.adjustToxLoss(-5)
|
||||||
|
target.adjustOxyLoss(-20)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/antirad
|
||||||
|
name = "\'ML-3/M\' nanite cell - ANTIRAD"
|
||||||
|
type_color = "#008000"
|
||||||
|
type_name = "<span style='color:#008000;font-weight:bold;'>ANTIRAD</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/antirad
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/antirad/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
if(target.stat != DEAD)
|
||||||
|
target.adjustToxLoss(-5)
|
||||||
|
target.radiation = max(target.radiation - 350, 0) //same as 5 units of arithrazine, sans the brute damage
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/brute2
|
||||||
|
name = "\'ML-3/M\' nanite cell - BRUTE-II"
|
||||||
|
type_color = "#BF0000"
|
||||||
|
type_name = "<span style='color:#BF0000;font-weight:bold;'>BRUTE-II</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/brute2
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/brute2/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
if(target.stat != DEAD)
|
||||||
|
target.adjustBruteLoss(-20)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/burn2
|
||||||
|
name = "\'ML-3/M\' nanite cell - BURN-II"
|
||||||
|
type_color = "#FF8000"
|
||||||
|
type_name = "<span style='color:#FF8000;font-weight:bold;'>BURN-II</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/burn2
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/burn2/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
if(target.stat != DEAD)
|
||||||
|
target.adjustFireLoss(-20)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/stabilize2
|
||||||
|
name = "\'ML-3/M\' nanite cell - STABILIZE-II" //Disinfects and bandages all open wounds, cures all oxy damage
|
||||||
|
type_color = "#0080FF"
|
||||||
|
type_name = "<span style='color:#0080FF;font-weight:bold;'>STABILIZE-II</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/stabilize2
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/stabilize2/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
target.adjustOxyLoss(-200)
|
||||||
|
for(var/name in list(BP_HEAD, BP_L_HAND, BP_R_HAND, BP_L_ARM, BP_R_ARM, BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG, BP_GROIN, BP_TORSO))
|
||||||
|
var/obj/item/organ/external/O = target.organs_by_name[name]
|
||||||
|
for (var/datum/wound/W in O.wounds)
|
||||||
|
if(W.internal)
|
||||||
|
continue
|
||||||
|
if(O.is_bandaged() == FALSE)
|
||||||
|
W.bandage()
|
||||||
|
if(O.is_salved() == FALSE)
|
||||||
|
W.salve()
|
||||||
|
W.disinfect()
|
||||||
|
target.add_modifier(/datum/modifier/stabilize, 20 SECONDS)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/omni2
|
||||||
|
name = "\'ML-3/M\' nanite cell - OMNI-II"
|
||||||
|
type_color = "#8040FF"
|
||||||
|
type_name = "<span style='color:#8040FF;font-weight:bold;'>OMNI-II</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/omni2
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/omni2/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
if(target.stat != DEAD)
|
||||||
|
target.adjustBruteLoss(-10)
|
||||||
|
target.adjustFireLoss(-10)
|
||||||
|
target.adjustToxLoss(-10)
|
||||||
|
target.adjustOxyLoss(-60)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/toxin2
|
||||||
|
name = "\'ML-3/M\' nanite cell - TOXIN-II"
|
||||||
|
type_color = "#00A000"
|
||||||
|
type_name = "<span style='color:#00A000;font-weight:bold;'>TOXIN-II</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/toxin2
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/toxin2/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
if(target.stat != DEAD)
|
||||||
|
target.adjustToxLoss(-20)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/haste
|
||||||
|
name = "\'ML-3/M\' nanite cell - HASTE"
|
||||||
|
type_color = "#FF3300"
|
||||||
|
type_name = "<span style='color:#FF3300;font-weight:bold;'>HASTE</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/haste
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/haste/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
target.add_modifier(/datum/modifier/ml3mhaste, 20 SECONDS)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/datum/modifier/ml3mhaste
|
||||||
|
name = "haste"
|
||||||
|
desc = "You can move much faster!"
|
||||||
|
mob_overlay_state = "haste"
|
||||||
|
stacks = MODIFIER_STACK_EXTEND
|
||||||
|
slowdown = -0.5 //a little faster!
|
||||||
|
evasion = 1.15 //and a little harder to hit!
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/resist
|
||||||
|
name = "\'ML-3/M\' nanite cell - RESIST"
|
||||||
|
type_color = "#555555"
|
||||||
|
type_name = "<span style='color:#555555;font-weight:bold;'>RESIST</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/resist
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/resist/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
target.add_modifier(/datum/modifier/resistance, 20 SECONDS)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/datum/modifier/resistance
|
||||||
|
name = "resistance"
|
||||||
|
desc = "You resist 15% of all incoming damage and stuns!"
|
||||||
|
mob_overlay_state = "repel_missiles"
|
||||||
|
stacks = MODIFIER_STACK_EXTEND
|
||||||
|
disable_duration_percent = 0.85
|
||||||
|
incoming_damage_percent = 0.85
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/corpse_mend
|
||||||
|
name = "\'ML-3/M\' nanite cell - CORPSE MEND"
|
||||||
|
type_color = "#669900"
|
||||||
|
type_name = "<span style='color:#669900;font-weight:bold;'>CORPSE MEND</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/corpse_mend
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/corpse_mend/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
if(target.stat == DEAD)
|
||||||
|
target.adjustBruteLoss(-50)
|
||||||
|
target.adjustFireLoss(-50)
|
||||||
|
target.adjustToxLoss(-50)
|
||||||
|
target.adjustOxyLoss(-200)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/brute3
|
||||||
|
name = "\'ML-3/M\' nanite cell - BRUTE-III"
|
||||||
|
type_color = "#BF0000"
|
||||||
|
type_name = "<span style='color:#BF0000;font-weight:bold;'>BRUTE-III</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/brute3
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/brute3/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
if(target.stat != DEAD)
|
||||||
|
target.adjustBruteLoss(-40)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/burn3
|
||||||
|
name = "\'ML-3/M\' nanite cell - BURN-III"
|
||||||
|
type_color = "#FF8000"
|
||||||
|
type_name = "<span style='color:#FF8000;font-weight:bold;'>BURN-III</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/burn3
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/burn3/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
if(target.stat != DEAD)
|
||||||
|
target.adjustFireLoss(-40)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/toxin3
|
||||||
|
name = "\'ML-3/M\' nanite cell - TOXIN-III"
|
||||||
|
type_color = "#00A000"
|
||||||
|
type_name = "<span style='color:#00A000;font-weight:bold;'>TOXIN-III</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/toxin3
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/toxin3/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
if(target.stat != DEAD)
|
||||||
|
target.adjustToxLoss(-40)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/omni3
|
||||||
|
name = "\'ML-3/M\' nanite cell - OMNI-III"
|
||||||
|
type_color = "#8040FF"
|
||||||
|
type_name = "<span style='color:#8040FF;font-weight:bold;'>OMNI-III</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/omni3
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/omni3/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
if(target.stat != DEAD)
|
||||||
|
target.adjustBruteLoss(-20)
|
||||||
|
target.adjustFireLoss(-20)
|
||||||
|
target.adjustToxLoss(-20)
|
||||||
|
target.adjustOxyLoss(-120)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
// Illegal cells!
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/shrink
|
||||||
|
name = "\'ML-3/M\' nanite cell - SHRINK"
|
||||||
|
type_color = "#910ffc"
|
||||||
|
type_name = "<span style='color:#910ffc;font-weight:bold;'>SHRINK</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/shrink
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/shrink/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
target.resize(0.5)
|
||||||
|
target.show_message(span_blue("The beam fires into your body, changing your size!"))
|
||||||
|
target.update_icon()
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/grow
|
||||||
|
name = "\'ML-3/M\' nanite cell - GROW"
|
||||||
|
type_color = "#fc0fdc"
|
||||||
|
type_name = "<span style='color:#fc0fdc;font-weight:bold;'>GROW</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/grow
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/grow/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
target.resize(2.0)
|
||||||
|
target.show_message(span_blue("The beam fires into your body, changing your size!"))
|
||||||
|
target.update_icon()
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/microbattery/medical/normalsize
|
||||||
|
name = "\'ML-3/M\' nanite cell - NORMALSIZE"
|
||||||
|
type_color = "#C70FEC"
|
||||||
|
type_name = "<span style='color:#C70FEC;font-weight:bold;'>NORMALSIZE</span>"
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/normalsize
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/normalsize/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
target.resize(1)
|
||||||
|
target.show_message(span_blue("The beam fires into your body, changing your size!"))
|
||||||
|
target.update_icon()
|
||||||
|
else
|
||||||
|
return 1
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
desc = "A miniature nanite fabricator for a medigun."
|
desc = "A miniature nanite fabricator for a medigun."
|
||||||
catalogue_data = list(/datum/category_item/catalogue/information/organization/vey_med)
|
catalogue_data = list(/datum/category_item/catalogue/information/organization/vey_med)
|
||||||
icon_state = "nerd_batt" // CH edit - Changes ML3M to NERD
|
icon_state = "nerd_batt" // CH edit - Changes ML3M to NERD
|
||||||
origin_tech = list(TECH_BIO = 2, TECH_MATERIAL = 1, TECH_MAGNETS = 2)
|
origin_tech = list(TECH_BIO = 2, TECH_MATERIAL = 1, TECH_MAGNET = 2)
|
||||||
|
|
||||||
/obj/item/projectile/beam/medical_cell
|
/obj/item/projectile/beam/medical_cell
|
||||||
name = "\improper healing beam"
|
name = "\improper healing beam"
|
||||||
@@ -357,4 +357,4 @@
|
|||||||
target.show_message(span_blue("The beam fires into your body, changing your size!"))
|
target.show_message(span_blue("The beam fires into your body, changing your size!"))
|
||||||
target.update_icon()
|
target.update_icon()
|
||||||
else
|
else
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
description_antag = ""
|
description_antag = ""
|
||||||
allowed_magazines = list(/obj/item/ammo_magazine/cell_mag/combat/prototype)
|
allowed_magazines = list(/obj/item/ammo_magazine/cell_mag/combat/prototype)
|
||||||
|
|
||||||
origin_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 4, TECH_MAGNETS = 3)
|
origin_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 4, TECH_MAGNET = 3)
|
||||||
|
|
||||||
|
|
||||||
// The Magazine //
|
// The Magazine //
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
max_ammo = 2
|
max_ammo = 2
|
||||||
x_offset = 6
|
x_offset = 6
|
||||||
catalogue_data = null
|
catalogue_data = null
|
||||||
origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_MAGNETS = 2)
|
origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_MAGNET = 2)
|
||||||
|
|
||||||
|
|
||||||
// The Pack //
|
// The Pack //
|
||||||
@@ -76,4 +76,4 @@
|
|||||||
new /obj/item/ammo_casing/microbattery/combat/stun(src)
|
new /obj/item/ammo_casing/microbattery/combat/stun(src)
|
||||||
new /obj/item/ammo_casing/microbattery/combat/stun(src)
|
new /obj/item/ammo_casing/microbattery/combat/stun(src)
|
||||||
new /obj/item/ammo_casing/microbattery/combat/net(src)
|
new /obj/item/ammo_casing/microbattery/combat/net(src)
|
||||||
new /obj/item/ammo_casing/microbattery/combat/ion(src)
|
new /obj/item/ammo_casing/microbattery/combat/ion(src)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
name = "\'NSCW\' microbattery - UNKNOWN"
|
name = "\'NSCW\' microbattery - UNKNOWN"
|
||||||
desc = "A miniature battery for an energy weapon."
|
desc = "A miniature battery for an energy weapon."
|
||||||
catalogue_data = list(/datum/category_item/catalogue/information/organization/hephaestus)
|
catalogue_data = list(/datum/category_item/catalogue/information/organization/hephaestus)
|
||||||
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 1, TECH_MAGNETS = 2)
|
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 1, TECH_MAGNET = 2)
|
||||||
|
|
||||||
/obj/item/ammo_casing/microbattery/combat/lethal
|
/obj/item/ammo_casing/microbattery/combat/lethal
|
||||||
name = "\'NSCW\' microbattery - LETHAL"
|
name = "\'NSCW\' microbattery - LETHAL"
|
||||||
@@ -112,4 +112,4 @@
|
|||||||
SStranscore.m_backup(L.mind,nif,one_time = TRUE)
|
SStranscore.m_backup(L.mind,nif,one_time = TRUE)
|
||||||
L.gib()
|
L.gib()
|
||||||
|
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -47,6 +47,19 @@
|
|||||||
src.set_dir(turn(src.dir, 270))
|
src.set_dir(turn(src.dir, 270))
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
//VOREstation edit: counter-clockwise rotation
|
||||||
|
/obj/machinery/chemical_dispenser/verb/rotate_counterclockwise()
|
||||||
|
set name = "Rotate Dispenser Counter-Clockwise"
|
||||||
|
set category = "Object"
|
||||||
|
set src in oview(1)
|
||||||
|
|
||||||
|
if (src.anchored || usr:stat)
|
||||||
|
to_chat(usr, "It is fastened down!")
|
||||||
|
return 0
|
||||||
|
src.set_dir(turn(src.dir, 90))
|
||||||
|
return 1
|
||||||
|
//VOREstation edit end
|
||||||
|
|
||||||
/obj/machinery/chemical_dispenser/proc/add_cartridge(obj/item/weapon/reagent_containers/chem_disp_cartridge/C, mob/user)
|
/obj/machinery/chemical_dispenser/proc/add_cartridge(obj/item/weapon/reagent_containers/chem_disp_cartridge/C, mob/user)
|
||||||
if(!istype(C))
|
if(!istype(C))
|
||||||
if(user)
|
if(user)
|
||||||
|
|||||||
@@ -359,6 +359,19 @@
|
|||||||
src.set_dir(turn(src.dir, 270))
|
src.set_dir(turn(src.dir, 270))
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
//VOREstation edit: counter-clockwise rotation
|
||||||
|
/obj/structure/reagent_dispensers/water_cooler/verb/rotate_counterclockwise()
|
||||||
|
set name = "Rotate Cooler Counter-Clockwise"
|
||||||
|
set category = "Object"
|
||||||
|
set src in oview(1)
|
||||||
|
|
||||||
|
if (src.anchored || usr:stat)
|
||||||
|
to_chat(usr, "It is fastened to the floor!")
|
||||||
|
return 0
|
||||||
|
src.set_dir(turn(src.dir, 90))
|
||||||
|
return 1
|
||||||
|
//VOREstation edit end
|
||||||
|
|
||||||
/obj/structure/reagent_dispensers/water_cooler/attackby(obj/item/I as obj, mob/user as mob)
|
/obj/structure/reagent_dispensers/water_cooler/attackby(obj/item/I as obj, mob/user as mob)
|
||||||
if(I.has_tool_quality(TOOL_WRENCH))
|
if(I.has_tool_quality(TOOL_WRENCH))
|
||||||
src.add_fingerprint(user)
|
src.add_fingerprint(user)
|
||||||
|
|||||||
@@ -136,6 +136,23 @@
|
|||||||
src.set_dir(turn(src.dir, 270))
|
src.set_dir(turn(src.dir, 270))
|
||||||
update()
|
update()
|
||||||
|
|
||||||
|
//VOREstation edit: counter-clockwise rotation
|
||||||
|
/obj/structure/disposalconstruct/verb/rotate_counterclockwise()
|
||||||
|
set category = "Object"
|
||||||
|
set name = "Rotate Pipe Counter-Clockwise"
|
||||||
|
set src in view(1)
|
||||||
|
|
||||||
|
if(usr.stat)
|
||||||
|
return
|
||||||
|
|
||||||
|
if(anchored)
|
||||||
|
to_chat(usr, "You must unfasten the pipe before rotating it.")
|
||||||
|
return
|
||||||
|
|
||||||
|
src.set_dir(turn(src.dir, 90))
|
||||||
|
update()
|
||||||
|
//VOREstation edit end
|
||||||
|
|
||||||
/obj/structure/disposalconstruct/verb/flip()
|
/obj/structure/disposalconstruct/verb/flip()
|
||||||
set category = "Object"
|
set category = "Object"
|
||||||
set name = "Flip Pipe"
|
set name = "Flip Pipe"
|
||||||
|
|||||||
@@ -146,3 +146,16 @@
|
|||||||
|
|
||||||
src.set_dir(turn(src.dir, 270))
|
src.set_dir(turn(src.dir, 270))
|
||||||
return
|
return
|
||||||
|
|
||||||
|
//VOREstation edit: counter-clockwise rotation
|
||||||
|
/obj/machinery/shield_capacitor/verb/rotate_counterclockwise()
|
||||||
|
set name = "Rotate Capacitor Counter-Clockwise"
|
||||||
|
set category = "Object"
|
||||||
|
set src in oview(1)
|
||||||
|
|
||||||
|
if (src.anchored)
|
||||||
|
to_chat(usr, "It is fastened to the floor!")
|
||||||
|
return
|
||||||
|
|
||||||
|
src.set_dir(turn(src.dir, 90))
|
||||||
|
return
|
||||||
|
|||||||
@@ -38,6 +38,8 @@
|
|||||||
unattach()
|
unattach()
|
||||||
|
|
||||||
/obj/vehicle/train/Bump(atom/Obstacle)
|
/obj/vehicle/train/Bump(atom/Obstacle)
|
||||||
|
if(istype(Obstacle,/obj/structure/stairs)) // VOREstation edit - Stair support for towing vehicles
|
||||||
|
return ..()
|
||||||
if(!istype(Obstacle, /atom/movable))
|
if(!istype(Obstacle, /atom/movable))
|
||||||
return
|
return
|
||||||
var/atom/movable/A = Obstacle
|
var/atom/movable/A = Obstacle
|
||||||
|
|||||||
@@ -80,16 +80,20 @@
|
|||||||
riding_datum.handle_vehicle_offsets() // So the person in back goes to the front.
|
riding_datum.handle_vehicle_offsets() // So the person in back goes to the front.
|
||||||
|
|
||||||
/obj/vehicle/Move(var/newloc, var/direction, var/movetime)
|
/obj/vehicle/Move(var/newloc, var/direction, var/movetime)
|
||||||
if(world.time < l_move_time + move_delay) //This AND the riding datum move speed limit?
|
// VOREstation edit - Zmoving for falling
|
||||||
|
var/turf/newturf = newloc
|
||||||
|
var/zmove = (newturf && z != newturf.z)
|
||||||
|
|
||||||
|
if(!zmove && world.time < l_move_time + move_delay) //This AND the riding datum move speed limit? // VOREstation edit end
|
||||||
return
|
return
|
||||||
|
|
||||||
if(mechanical && on && powered && cell.charge < charge_use)
|
if(!zmove && mechanical && on && powered && cell.charge < charge_use) // VOREstation edit - zmove doesn't run this
|
||||||
turn_off()
|
turn_off()
|
||||||
return
|
return
|
||||||
|
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
if(mechanical && on && powered)
|
if(!zmove && mechanical && on && powered) // VOREstation edit - zmove doesn't run this
|
||||||
cell.use(charge_use)
|
cell.use(charge_use)
|
||||||
|
|
||||||
//Dummy loads do not have to be moved as they are just an overlay
|
//Dummy loads do not have to be moved as they are just an overlay
|
||||||
|
|||||||
@@ -56,8 +56,10 @@
|
|||||||
|
|
||||||
/obj/item/weapon/virusdish/attackby(var/obj/item/weapon/W as obj,var/mob/living/carbon/user as mob)
|
/obj/item/weapon/virusdish/attackby(var/obj/item/weapon/W as obj,var/mob/living/carbon/user as mob)
|
||||||
if(istype(W,/obj/item/weapon/hand_labeler) || istype(W,/obj/item/weapon/reagent_containers/syringe))
|
if(istype(W,/obj/item/weapon/hand_labeler) || istype(W,/obj/item/weapon/reagent_containers/syringe))
|
||||||
return
|
//VOREstation edit - Actually functional virus dishes
|
||||||
..()
|
// Originally this returns, THEN calls ..() instead of returning the value of ..()
|
||||||
|
return ..()
|
||||||
|
//VOREstation edit end
|
||||||
if(prob(50))
|
if(prob(50))
|
||||||
to_chat(user, "<span class='danger'>\The [src] shatters!</span>")
|
to_chat(user, "<span class='danger'>\The [src] shatters!</span>")
|
||||||
if(virus2.infectionchance > 0)
|
if(virus2.infectionchance > 0)
|
||||||
|
|||||||
@@ -14,14 +14,14 @@
|
|||||||
/mob/living/Bump(atom/movable/AM)
|
/mob/living/Bump(atom/movable/AM)
|
||||||
//. = ..()
|
//. = ..()
|
||||||
if(istype(AM, /mob/living))
|
if(istype(AM, /mob/living))
|
||||||
if(((confused || is_blind()) && stat == CONSCIOUS && prob(50) && m_intent=="run") || flying && flight_vore)
|
if(buckled != AM && (((confused || is_blind()) && stat == CONSCIOUS && prob(50) && m_intent=="run") || flying && flight_vore))
|
||||||
AM.stumble_into(src)
|
AM.stumble_into(src)
|
||||||
return ..()
|
return ..()
|
||||||
// Because flips toggle density
|
// Because flips toggle density
|
||||||
/mob/living/Crossed(var/atom/movable/AM)
|
/mob/living/Crossed(var/atom/movable/AM)
|
||||||
if(istype(AM, /mob/living) && isturf(loc) && AM != src)
|
if(istype(AM, /mob/living) && isturf(loc) && AM != src)
|
||||||
var/mob/living/AMV = AM
|
var/mob/living/AMV = AM
|
||||||
if(((AMV.confused || AMV.is_blind()) && AMV.stat == CONSCIOUS && prob(50) && AMV.m_intent=="run") || AMV.flying && AMV.flight_vore)
|
if(AMV.buckled != src && (((AMV.confused || AMV.is_blind()) && AMV.stat == CONSCIOUS && prob(50) && AMV.m_intent=="run") || AMV.flying && AMV.flight_vore))
|
||||||
stumble_into(AMV)
|
stumble_into(AMV)
|
||||||
..()
|
..()
|
||||||
|
|
||||||
|
|||||||
@@ -132,6 +132,14 @@
|
|||||||
return
|
return
|
||||||
src.set_dir(turn(src.dir, 270))
|
src.set_dir(turn(src.dir, 270))
|
||||||
|
|
||||||
|
/obj/structure/smoletrack/verb/rotate_counterclockwise()
|
||||||
|
set name = "Rotate Road Counter-Clockwise"
|
||||||
|
set category = "Object"
|
||||||
|
set src in oview(1)
|
||||||
|
if(ismouse(usr) || (isobserver(usr) && !CONFIG_GET(flag/ghost_interaction))) // CHOMPEdit
|
||||||
|
return
|
||||||
|
src.set_dir(turn(src.dir, 90))
|
||||||
|
|
||||||
//color roads
|
//color roads
|
||||||
/obj/structure/smoletrack/verb/colorpieces()
|
/obj/structure/smoletrack/verb/colorpieces()
|
||||||
set name = "Use Color Pieces"
|
set name = "Use Color Pieces"
|
||||||
|
|||||||
@@ -178,12 +178,18 @@
|
|||||||
M.client.perspective = EYE_PERSPECTIVE
|
M.client.perspective = EYE_PERSPECTIVE
|
||||||
M.client.eye = src
|
M.client.eye = src
|
||||||
M.loc = src
|
M.loc = src
|
||||||
update_use_power(USE_POWER_ACTIVE)
|
//update_use_power(USE_POWER_ACTIVE)
|
||||||
occupant = M
|
occupant = M
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
enter_vr()
|
//VOREstation edit - crashes borers
|
||||||
|
if(!M.has_brain_worms())
|
||||||
|
update_use_power(USE_POWER_ACTIVE)
|
||||||
|
enter_vr()
|
||||||
|
else
|
||||||
|
to_chat(user, "<span class='warning'>\The [src] rejects [M] with a sharp beep.</span>")
|
||||||
|
//VOREstation edit end
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/machinery/vr_sleeper/proc/go_out(var/forced = TRUE)
|
/obj/machinery/vr_sleeper/proc/go_out(var/forced = TRUE)
|
||||||
|
|||||||
Reference in New Issue
Block a user