Skip to content

Commit

Permalink
Merge branch 'release' of https://github.com/VOREStation/VOREStation
Browse files Browse the repository at this point in the history
  • Loading branch information
izac112 committed May 10, 2024
2 parents e0f1ef4 + 737c2ab commit b100ef5
Show file tree
Hide file tree
Showing 48 changed files with 3,301 additions and 1,119 deletions.
17 changes: 8 additions & 9 deletions code/datums/supplypacks/recreation_vr.dm
Original file line number Diff line number Diff line change
Expand Up @@ -108,66 +108,65 @@
containername = "Snack planets crate"

/datum/supply_pack/recreation/pinkpillows
name = "Pink Pillow Crate"
name = "Pillow Crate - Pink"
contains = list(
/obj/item/weapon/bedsheet/pillow = 6
)
cost = 10
containertype = /obj/structure/closet/crate

/datum/supply_pack/recreation/tealpillows
name = "Teal Pillow Crate"
name = "Pillow Crate - Teal"
contains = list(
/obj/item/weapon/bedsheet/pillow/teal = 6
)
cost = 10
containertype = /obj/structure/closet/crate

/datum/supply_pack/recreation/whitepillows
name = "White Pillow Crate"
name = "Pillow Crate - White"
contains = list(
/obj/item/weapon/bedsheet/pillow/white = 6
)
cost = 10
containertype = /obj/structure/closet/crate

/datum/supply_pack/recreation/blackpillows
name = "Black Pillow Crate"
name = "Pillow Crate - Black"
contains = list(
/obj/item/weapon/bedsheet/pillow/black = 6
)
cost = 10
containertype = /obj/structure/closet/crate

/datum/supply_pack/recreation/redpillows
name = "Red Pillow Crate"
name = "Pillow Crate - Red"
contains = list(
/obj/item/weapon/bedsheet/pillow/red = 6
)
cost = 10
containertype = /obj/structure/closet/crate

/datum/supply_pack/recreation/greenpillows
name = "Green Pillow Crate"
name = "Pillow Crate - Green"
contains = list(
/obj/item/weapon/bedsheet/pillow/green = 6
)
cost = 10
containertype = /obj/structure/closet/crate

/datum/supply_pack/recreation/orangepillows
name = "Orange Pillow Crate"
name = "Pillow Crate - Orange"
contains = list(
/obj/item/weapon/bedsheet/pillow/orange = 6
)
cost = 10
containertype = /obj/structure/closet/crate

/datum/supply_pack/recreation/yellowpillows
name = "Yellow Pillow Crate"
name = "Pillow Crate - Yellow"
contains = list(
/obj/item/weapon/bedsheet/pillow/yellow = 6
)
cost = 10
containertype = /obj/structure/closet/crate

8 changes: 8 additions & 0 deletions code/game/objects/items/falling_object_vr.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,14 @@
qdel(src)

/atom/movable/proc/end_fall(var/crushing = FALSE)
if(istype(src, /mob/living))
var/mob/living/L = src
if(L.vore_selected && L.can_be_drop_pred && L.drop_vore)
for(var/mob/living/P in loc)
if(P.can_be_drop_prey && P.drop_vore)
L.feed_grabbed_to_self_falling_nom(L,P)
L.visible_message("<span class='vdanger'>\The [L] falls right onto \the [P]!</span>")

if(crushing)
for(var/atom/movable/AM in loc)
if(AM != src)
Expand Down
113 changes: 113 additions & 0 deletions code/game/objects/structures/watercloset.dm
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,18 @@
icon = 'icons/obj/watercloset.dmi'
icon_state = "rubberducky"
honk_sound = 'sound/voice/quack.ogg' //VOREStation edit
var/honk_text = 0

/obj/item/weapon/bikehorn/rubberducky/attack_self(mob/user as mob)
if(spam_flag == 0)
spam_flag = 1
playsound(src, honk_sound, 50, 1)
if(honk_text)
audible_message(span_maroon("[honk_text]"))
src.add_fingerprint(user)
spawn(20)
spam_flag = 0
return

//Admin spawn duckies

Expand All @@ -317,6 +329,8 @@
spam_flag = 1
playsound(src, honk_sound, 50, 1)
src.add_fingerprint(user)
if(honk_text)
audible_message(span_maroon("[honk_text]"))
honk_count ++
spawn(20)
spam_flag = 0
Expand All @@ -336,6 +350,100 @@
whereweare.wet_floor(2)
spam_flag = 1
playsound(src, honk_sound, 50, 1)
if(honk_text)
audible_message(span_maroon("[honk_text]"))
src.add_fingerprint(user)
spawn(20)
spam_flag = 0
return

/obj/item/weapon/bikehorn/rubberducky/pink
name = "rubber ducky"
desc = "It's extra squishy!"
icon = 'icons/obj/watercloset.dmi'
icon_state = "rubberducky_pink"
honk_sound = 'sound/vore/sunesound/pred/insertion_01.ogg'
var/honk_count = 0

/obj/item/weapon/bikehorn/rubberducky/pink/attack_self(mob/user as mob)
if(spam_flag == 0)
if(!user.devourable)
to_chat(user, "<span class='vnotice'>You can't bring yourself to squeeze it...</span>")
return
spam_flag = 1
playsound(src, honk_sound, 50, 1)
if(honk_text)
audible_message(span_maroon("[honk_text]"))
src.add_fingerprint(user)
user.drop_item()
user.forceMove(src)
to_chat(user, "<span class='vnotice'>You have been swallowed alive by the rubber ducky. Your entire body compacted up and squeezed into the tiny space that makes up the oddly realistic and not at all rubbery stomach. The walls themselves are kneading over you, grinding some sort of fluids into your trapped body. You can even hear the sound of bodily functions echoing around you...</span>")
spawn(20)
spam_flag = 0
return

/obj/item/weapon/bikehorn/rubberducky/pink/container_resist(var/mob/living/escapee)
escapee.forceMove(get_turf(src))
to_chat(escapee, "<span class='vnotice'>You managed to crawl out of the rubber ducky!</span>")

/obj/item/weapon/bikehorn/rubberducky/grey
name = "rubber ducky"
desc = "There's something otherworldly about this particular duck..."
icon = 'icons/obj/watercloset.dmi'
icon_state = "rubberducky_grey"
honk_sound = 'sound/effects/ghost.ogg'
var/honk_count = 0

/obj/item/weapon/bikehorn/rubberducky/grey/attack_self(mob/user as mob)
if(spam_flag == 0)
for(var/obj/machinery/light/L in machines)
if(L.z != user.z || get_dist(user,L) > 10)
continue
else
L.flicker(10)
spam_flag = 1
playsound(src, honk_sound, 50, 1)
if(honk_text)
audible_message(span_maroon("[honk_text]"))
src.add_fingerprint(user)
user.drop_item()
var/turf/T = locate(rand(1, 140), rand(1, 140), user.z)
src.forceMove(T)
return

/obj/item/weapon/bikehorn/rubberducky/green
name = "rubber ducky"
desc = "Like a true Nature’s child, we were born, born to be wild."
icon = 'icons/obj/watercloset.dmi'
icon_state = "rubberducky_green"
honk_sound = 'sound/arcade/mana.ogg'
var/honk_count = 0
var/list/flora = list(/obj/structure/flora/ausbushes,
/obj/structure/flora/ausbushes/reedbush,
/obj/structure/flora/ausbushes/leafybush,
/obj/structure/flora/ausbushes/palebush,
/obj/structure/flora/ausbushes/stalkybush,
/obj/structure/flora/ausbushes/grassybush,
/obj/structure/flora/ausbushes/fernybush,
/obj/structure/flora/ausbushes/sunnybush,
/obj/structure/flora/ausbushes/genericbush,
/obj/structure/flora/ausbushes/pointybush,
/obj/structure/flora/ausbushes/lavendergrass,
/obj/structure/flora/ausbushes/ywflowers,
/obj/structure/flora/ausbushes/brflowers,
/obj/structure/flora/ausbushes/ppflowers,
/obj/structure/flora/ausbushes/sparsegrass,
/obj/structure/flora/ausbushes/fullgrass)

/obj/item/weapon/bikehorn/rubberducky/green/attack_self(mob/user as mob)
if(spam_flag == 0)
var/turf/simulated/whereweare = get_turf(src)
var/obj/P = pick(flora)
new P(whereweare)
spam_flag = 1
playsound(src, honk_sound, 50, 1)
if(honk_text)
audible_message(span_maroon("[honk_text]"))
src.add_fingerprint(user)
spawn(20)
spam_flag = 0
Expand All @@ -354,6 +462,8 @@
lightning_strike(get_turf(src), 1)
spam_flag = 1
playsound(src, honk_sound, 50, 1)
if(honk_text)
audible_message(span_maroon("[honk_text]"))
src.add_fingerprint(user)
spawn(20)
spam_flag = 0 //leaving this in incase it doesn't qdel somehow
Expand All @@ -366,6 +476,7 @@
icon = 'icons/obj/watercloset.dmi'
icon_state = "rubberducky_black"
det_time = 20
var/honk_text = 0

/obj/item/weapon/grenade/anti_photon/rubberducky/black/detonate()
playsound(src, 'sound/voice/quack.ogg', 50, 1, 5)
Expand All @@ -380,6 +491,8 @@
spawn(210)
..()
playsound(src, 'sound/voice/quack.ogg', 50, 1, 5)
if(honk_text)
audible_message(span_maroon("[honk_text]"))
qdel(src)

/obj/structure/sink
Expand Down
7 changes: 4 additions & 3 deletions code/game/turfs/turf.dm
Original file line number Diff line number Diff line change
Expand Up @@ -301,9 +301,10 @@

// Called when turf is hit by a thrown object
/turf/hitby(atom/movable/AM as mob|obj, var/speed)
if(src.density)
spawn(2)
step(AM, turn(AM.last_move, 180))
if(density)
if(!has_gravity(AM)) //Checked a different codebase for reference. Turns out it's only supposed to happen in no-gravity
spawn(2)
step(AM, turn(AM.last_move, 180)) //This makes it float away after hitting a wall in 0G
if(isliving(AM))
var/mob/living/M = AM
M.turf_collision(src, speed)
Expand Down
3 changes: 2 additions & 1 deletion code/modules/admin/admin_verb_lists_vr.dm
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,8 @@ var/list/admin_verbs_spawn = list(
/client/proc/map_template_load,
/client/proc/map_template_upload,
/client/proc/map_template_load_on_new_z,
/client/proc/eventkit_open_mob_spawner //VOREStation Add
/client/proc/eventkit_open_mob_spawner,
/client/proc/generic_structure //VOREStation Add
)

var/list/admin_verbs_server = list(
Expand Down
36 changes: 35 additions & 1 deletion code/modules/admin/verbs/buildmode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@
#define BUILDMODE_CONTENTS 7
#define BUILDMODE_LIGHTS 8
#define BUILDMODE_AI 9
#define BUILDMODE_DROP 10

#define LAST_BUILDMODE 9
#define LAST_BUILDMODE 10

/proc/togglebuildmode(mob/M as mob in player_list)
set name = "Toggle Build Mode"
Expand Down Expand Up @@ -171,6 +172,16 @@
Right Mouse Button + shift on tile = Command selected mobs to reposition to tile (will not be interrupted by enemies)<br>\
Right Mouse Button + alt on obj/turfs = Command selected mobs to attack obj/turf<br>\
***********************************************************</span>")

if(BUILDMODE_DROP)
to_chat(usr, "<span class='notice'>***********************************************************<br>\
Right Mouse Button on buildmode button = Set object type<br>\
Middle Mouse Button on buildmode button= On/Off object type saying<br>\
Middle Mouse Button on turf/obj = Capture object type<br>\
Left Mouse Button on turf/obj = Drop objects safely<br>\
Right Mouse Button = Drop objects unsafely<br>\
Mouse Button + ctrl = Copy object type<br><br>\
***********************************************************</span>")
return 1

/obj/effect/bmode/buildquit
Expand Down Expand Up @@ -315,6 +326,8 @@
var/input = input(usr, "New light color.","Light Maker",3) as null|color
if(input)
new_light_color = input
if(BUILDMODE_DROP)
objholder = get_path_from_partial_text()
return 1

/proc/build_click(var/mob/user, buildmode, params, var/obj/object)
Expand Down Expand Up @@ -637,6 +650,27 @@
flick_overlay(orderimage, list(user.client), 8, TRUE)
return


if(BUILDMODE_DROP)
if(ispath(holder.buildmode.objholder,/turf))
to_chat(user, "<span class='warning'>Cannot use turfs with this mode.</span>")
return
if(pa.Find("left") && !pa.Find("ctrl"))
if(ispath(holder.buildmode.objholder))
var/obj/effect/falling_effect/FE = new /obj/effect/falling_effect(get_turf(object), holder.buildmode.objholder)
FE.crushing = FALSE
else if(pa.Find("right"))
if(ispath(holder.buildmode.objholder))
var/obj/effect/falling_effect/FE = new /obj/effect/falling_effect(get_turf(object), holder.buildmode.objholder)
FE.crushing = TRUE
else if(pa.Find("ctrl"))
holder.buildmode.objholder = object.type
to_chat(user, "<span class='notice'>[object]([object.type]) copied to buildmode.</span>")
if(pa.Find("middle"))
holder.buildmode.objholder = text2path("[object.type]")
if(holder.buildmode.objsay)
to_chat(usr, "[object.type]")

/proc/build_drag(var/client/user, buildmode, var/atom/fromatom, var/atom/toatom, var/atom/fromloc, var/atom/toloc, var/fromcontrol, var/tocontrol, params)
var/obj/effect/bmode/buildholder/holder = null
for(var/obj/effect/bmode/buildholder/H)
Expand Down
3 changes: 3 additions & 0 deletions code/modules/client/client procs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -247,11 +247,14 @@
void = new()
screen += void

//disabled because we don't use the ingame changelog system any more
/*
if((prefs.lastchangelog != changelog_hash) && isnewplayer(src.mob)) //bolds the changelog button on the interface so we know there are updates.
to_chat(src, "<span class='info'>You have unread updates in the changelog.</span>")
winset(src, "rpane.changelog", "background-color=#eaeaea;font-style=bold")
if(config.aggressive_changelog)
src.changes()
*/

if(config.paranoia_logging)
var/alert = FALSE //VOREStation Edit start.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,3 +180,41 @@ Talon pin
"security-technician replikant chestplate" = /obj/item/clothing/accessory/replika/star
)
gear_tweaks += new/datum/gear_tweak/path(replika_vests)

/datum/gear/accessory/insignia
display_name = "Insignia Selection"
path = /obj/item/clothing/accessory/solgov/department

/datum/gear/accessory/insignia/New()
..()
var/insignia = list(
"Command - Crew" = /obj/item/clothing/accessory/solgov/department/command,
"Command - Crew Short" = /obj/item/clothing/accessory/solgov/department/command/service,
"Command - Bands" = /obj/item/clothing/accessory/solgov/department/command/fleet,
"Command - Echelons" = /obj/item/clothing/accessory/solgov/department/command/army,
"Security - Crew" = /obj/item/clothing/accessory/solgov/department/security,
"Security - Crew Short" = /obj/item/clothing/accessory/solgov/department/security/service,
"Security - Bands" = /obj/item/clothing/accessory/solgov/department/security/fleet,
"Security - Echelons" = /obj/item/clothing/accessory/solgov/department/security/army,
"Medical - Crew" = /obj/item/clothing/accessory/solgov/department/medical,
"Medical - Crew Short" = /obj/item/clothing/accessory/solgov/department/medical/service,
"Medical - Bands" = /obj/item/clothing/accessory/solgov/department/medical/fleet,
"Medical - Echelons" = /obj/item/clothing/accessory/solgov/department/medical/army,
"Science - Crew" = /obj/item/clothing/accessory/solgov/department/research,
"Science - Crew Short" = /obj/item/clothing/accessory/solgov/department/research/service,
"Science - Bands" = /obj/item/clothing/accessory/solgov/department/research/fleet,
"Science - Echelons" = /obj/item/clothing/accessory/solgov/department/research/army,
"Engineering - Crew" = /obj/item/clothing/accessory/solgov/department/engineering,
"Engineering - Crew Short" = /obj/item/clothing/accessory/solgov/department/engineering/service,
"Engineering - Bands" = /obj/item/clothing/accessory/solgov/department/engineering/fleet,
"Engineering - Echelons" = /obj/item/clothing/accessory/solgov/department/engineering/army,
"Supply - Crew" = /obj/item/clothing/accessory/solgov/department/supply,
"Supply - Crew Short" = /obj/item/clothing/accessory/solgov/department/supply/service,
"Supply - Bands" = /obj/item/clothing/accessory/solgov/department/supply/fleet,
"Supply - Echelons" = /obj/item/clothing/accessory/solgov/department/supply/army,
"Service - Crew" = /obj/item/clothing/accessory/solgov/department/service,
"Service - Crew Short" = /obj/item/clothing/accessory/solgov/department/service/service,
"Service - Bands" = /obj/item/clothing/accessory/solgov/department/service/fleet,
"Service - Echelons" = /obj/item/clothing/accessory/solgov/department/service/army
)
gear_tweaks += new/datum/gear_tweak/path(insignia)
Loading

0 comments on commit b100ef5

Please sign in to comment.