Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3/31/24 - Map swap #198

Merged
merged 20 commits into from
Mar 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions code/datums/outfits/outfit.dm
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,8 @@ var/list/outfits_decls_by_type_
if(gloves)
H.equip_to_slot_or_del(new gloves(H),slot_gloves)
if(shoes)
if(H.client?.prefs?.shoe_hater) //RS ADD
return
H.equip_to_slot_or_del(new shoes(H),slot_shoes)
if(mask)
H.equip_to_slot_or_del(new mask(H),slot_wear_mask)
Expand Down
4 changes: 4 additions & 0 deletions code/game/jobs/job_controller.dm
Original file line number Diff line number Diff line change
Expand Up @@ -434,6 +434,8 @@ var/global/datum/controller/occupations/job_master
//if(G.slot == slot_wear_mask || G.slot == slot_wear_suit || G.slot == slot_head)
// custom_equip_leftovers += thing
//else
if(G.slot == slot_shoes && H.client?.prefs?.shoe_hater) //RS ADD
continue
if(H.equip_to_slot_or_del(G.spawn_item(H, metadata), G.slot))
to_chat(H, "<span class='notice'>Equipping you with \the [thing]!</span>")
if(G.slot != slot_tie)
Expand All @@ -459,6 +461,8 @@ var/global/datum/controller/occupations/job_master
// If some custom items could not be equipped before, try again now.
for(var/thing in custom_equip_leftovers)
var/datum/gear/G = gear_datums[thing]
if(G.slot == slot_shoes && H.client?.prefs?.shoe_hater) //RS ADD
continue
if(G.slot in custom_equip_slots)
spawn_in_storage += thing
else
Expand Down
3 changes: 3 additions & 0 deletions code/game/objects/items/weapons/material/shards.dm
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,8 @@

to_chat(H, "<span class='danger'>You step on \the [src]!</span>")

return //RS Removal start - Let's just not
/*
var/list/check = list("l_foot", "r_foot")
while(check.len)
var/picked = pick(check)
Expand All @@ -142,6 +144,7 @@
return
check -= picked
return
*/

// Preset types - left here for the code that uses them
/obj/item/weapon/material/shard/shrapnel/New(loc)
Expand Down
9 changes: 8 additions & 1 deletion code/modules/client/preference_setup/general/04_equipment.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,15 @@
S["backbag"] >> pref.backbag
S["pdachoice"] >> pref.pdachoice
S["communicator_visibility"] >> pref.communicator_visibility
S["shoe_hater"] >> pref.shoe_hater //RS ADD

/datum/category_item/player_setup_item/general/equipment/save_character(var/savefile/S)
S["all_underwear"] << pref.all_underwear
S["all_underwear_metadata"] << pref.all_underwear_metadata
S["backbag"] << pref.backbag
S["pdachoice"] << pref.pdachoice
S["communicator_visibility"] << pref.communicator_visibility
S["shoe_hater"] << pref.shoe_hater //RS ADD

// Moved from /datum/preferences/proc/copy_to()
/datum/category_item/player_setup_item/general/equipment/copy_to_mob(var/mob/living/carbon/human/character)
Expand Down Expand Up @@ -89,6 +91,7 @@
. += "Backpack Type: <a href='?src=\ref[src];change_backpack=1'><b>[backbaglist[pref.backbag]]</b></a><br>"
. += "PDA Type: <a href='?src=\ref[src];change_pda=1'><b>[pdachoicelist[pref.pdachoice]]</b></a><br>"
. += "Communicator Visibility: <a href='?src=\ref[src];toggle_comm_visibility=1'><b>[(pref.communicator_visibility) ? "Yes" : "No"]</b></a><br>"
. += "Shoes:<a href='?src=\ref[src];toggle_shoes=1'><b>[(pref.shoe_hater) ? "No" : "Yes"]</b></a><br>"

return jointext(.,null)

Expand Down Expand Up @@ -146,6 +149,10 @@
if(CanUseTopic(user))
pref.communicator_visibility = !pref.communicator_visibility
return TOPIC_REFRESH

else if(href_list["toggle_shoes"]) //RS ADD START
if(CanUseTopic(user))
pref.shoe_hater = !pref.shoe_hater
return TOPIC_REFRESH
//RS ADD END

return ..()
1 change: 1 addition & 0 deletions code/modules/client/preferences.dm
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ var/list/preferences_datums = list()
var/blood_reagents = "iron" //blood restoration reagents
var/backbag = 2 //backpack type
var/pdachoice = 1 //PDA type
var/shoe_hater = FALSE //RS ADD - if true, will spawn with no shoes
var/h_style = "Bald" //Hair type
var/r_hair = 0 //Hair color
var/g_hair = 0 //Hair color
Expand Down
8 changes: 8 additions & 0 deletions code/modules/mob/living/carbon/human/human_defense.dm
Original file line number Diff line number Diff line change
Expand Up @@ -423,6 +423,14 @@ emp_act

if(istype(AM,/obj/))
var/obj/O = AM
//RSEdit Start || Ports trash eater throw vore from CHOMPStation, PR#5987
if(stat != DEAD && istype(O,/obj/item) && trash_catching && vore_selected)
var/obj/item/I = O
if(adminbus_trash || is_type_in_list(I,edible_trash) && I.trash_eatable && !is_type_in_list(I,item_vore_blacklist))
visible_message("<span class='warning'>[I] is thrown directly into [src]'s [lowertext(vore_selected.name)]!</span>")
I.throwing = 0
I.forceMove(vore_selected)
return //RSEdit End
if(in_throw_mode && speed <= THROWFORCE_SPEED_DIVISOR) //empty active hand and we're in throw mode
if(canmove && !restrained())
if(isturf(O.loc))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@
/datum/trait/neutral/trashcan/apply(var/datum/species/S,var/mob/living/carbon/human/H)
..()
H.verbs |= /mob/living/proc/eat_trash
H.verbs |= /mob/living/proc/toggle_trash_catching //RSEdit || Ports trash eater throw vore from CHOMPStation, PR#5987

/datum/trait/neutral/gem_eater
name = "Expensive Taste"
Expand Down Expand Up @@ -1000,3 +1001,10 @@
/datum/trait/neutral/food_pref/coffee
)
our_allergens = list(ALLERGEN_STIMULANT)

//RS MOVE - Removed damage from stepping on glass shards, so this only really prevents the scary red text now, and will also protect you from barbed wire, apparently
/datum/trait/neutral/hardfeet
name = "Hard Feet"
desc = "Makes your nice clawed, scaled, hooved, armored, or otherwise just awfully calloused feet immune to glass shards."
cost = 0
var_changes = list("flags" = NO_MINOR_CUT) //Checked the flag is only used by shard stepping.
Original file line number Diff line number Diff line change
Expand Up @@ -122,12 +122,6 @@
var_changes = list("soft_landing" = TRUE)
custom_only = FALSE

/datum/trait/positive/hardfeet
name = "Hard Feet"
desc = "Makes your nice clawed, scaled, hooved, armored, or otherwise just awfully calloused feet immune to glass shards."
cost = 0
var_changes = list("flags" = NO_MINOR_CUT) //Checked the flag is only used by shard stepping.

/datum/trait/positive/antiseptic_saliva
name = "Antiseptic Saliva"
desc = "Your saliva has especially strong antiseptic properties that can be used to heal small wounds."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
category = 0
custom_only = FALSE

/datum/trait/positive/hardfeet/xenochimera
/datum/trait/neutral/hardfeet/xenochimera
sort = TRAIT_SORT_SPECIES
allowed_species = list(SPECIES_XENOCHIMERA)
name = "Xenochimera: Hard Feet"
Expand Down
10 changes: 10 additions & 0 deletions code/modules/mob/living/living_defense.dm
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,13 @@
/mob/living/hitby(atom/movable/AM as mob|obj,var/speed = THROWFORCE_SPEED_DIVISOR)//Standardization and logging -Sieve
if(istype(AM,/obj/))
var/obj/O = AM
if(stat != DEAD && istype(O,/obj/item) && trash_catching && vore_selected) //RSEdit Start || Ports trasheater throw vore from CHOMPStation PR#5987
var/obj/item/I = O
if(adminbus_trash || is_type_in_list(I,edible_trash) && I.trash_eatable && !is_type_in_list(I,item_vore_blacklist))
visible_message("<span class='warning'>[I] is thrown directly into [src]'s [lowertext(vore_selected.name)]!</span>")
I.throwing = 0
I.forceMove(vore_selected)
return //RSEdit End
var/dtype = O.damtype
var/throw_damage = O.throwforce*(speed/THROWFORCE_SPEED_DIVISOR)

Expand Down Expand Up @@ -348,6 +355,9 @@
return
//VORESTATION EDIT END - Allows for thrown vore!




/mob/living/proc/on_throw_vore_special(var/pred = TRUE, var/mob/living/target)
return

Expand Down
40 changes: 32 additions & 8 deletions code/modules/mob/living/silicon/robot/sprites/_sprite_datum.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
var/has_custom_open_sprites = FALSE
var/has_vore_belly_sprites = FALSE
var/has_vore_belly_resting_sprites = FALSE
var/has_sleeper_light_indicator = FALSE //Moved here because there's no reason lights should be limited to just medical borgs. Or redefined every time they ARE used.
var/max_belly_size = 1 //If larger bellies are made, set this to the value of the largest size
var/has_rest_sprites = FALSE
var/list/rest_sprite_options
var/has_dead_sprite = FALSE
Expand All @@ -28,11 +30,25 @@
/datum/robot_sprite/proc/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg)
return

/datum/robot_sprite/proc/get_belly_overlay(var/mob/living/silicon/robot/ourborg)
return "[sprite_icon_state]-sleeper"
/datum/robot_sprite/proc/get_belly_overlay(var/mob/living/silicon/robot/ourborg, var/size = 1)
//Size
if(has_sleeper_light_indicator)
var/sleeperColor = "g"
if(ourborg.sleeper_state == 1) // Is our belly safe, or gurgling cuties?
sleeperColor = "r"
return "[sprite_icon_state]-sleeper-[size]-[sleeperColor]"
return "[sprite_icon_state]-sleeper-[size]"

/datum/robot_sprite/proc/get_belly_resting_overlay(var/mob/living/silicon/robot/ourborg)
return
/datum/robot_sprite/proc/get_belly_resting_overlay(var/mob/living/silicon/robot/ourborg, var/size = 1)
if(!(ourborg.rest_style in rest_sprite_options))
ourborg.rest_style = "Default"
switch(ourborg.rest_style)
if("Sit")
return "[get_belly_overlay(ourborg, size)]-sit"
if("Bellyup")
return "[get_belly_overlay(ourborg, size)]-bellyup"
else
return "[get_belly_overlay(ourborg, size)]-rest"

/datum/robot_sprite/proc/get_eyes_overlay(var/mob/living/silicon/robot/ourborg)
if(!(ourborg.resting && has_rest_sprites))
Expand All @@ -47,7 +63,15 @@
return

/datum/robot_sprite/proc/get_rest_sprite(var/mob/living/silicon/robot/ourborg)
return
if(!(ourborg.rest_style in rest_sprite_options))
ourborg.rest_style = "Default"
switch(ourborg.rest_style)
if("Sit")
return "[sprite_icon_state]-sit"
if("Bellyup")
return "[sprite_icon_state]-bellyup"
else
return "[sprite_icon_state]-rest"

/datum/robot_sprite/proc/get_dead_sprite(var/mob/living/silicon/robot/ourborg)
return "[sprite_icon_state]-wreck"
Expand Down Expand Up @@ -88,7 +112,7 @@
has_dead_sprite_overlay = TRUE
has_custom_equipment_sprites = TRUE
pixel_x = -16

/* //Does not need to be dogborg-only, letting all borgs use these -Reo
/datum/robot_sprite/dogborg/get_rest_sprite(var/mob/living/silicon/robot/ourborg)
if(!(ourborg.rest_style in rest_sprite_options))
ourborg.rest_style = "Default"
Expand All @@ -102,7 +126,7 @@

/datum/robot_sprite/dogborg/get_belly_overlay(var/mob/living/silicon/robot/ourborg)
return "[sprite_icon_state]-sleeper"

*/
/datum/robot_sprite/dogborg/do_equipment_glamour(var/obj/item/weapon/robot_module/module)
if(!has_custom_equipment_sprites)
return
Expand Down Expand Up @@ -130,4 +154,4 @@
module_type = "Default"
sprite_icon = 'icons/mob/robot/default.dmi'
sprite_icon_state = "default"
default_sprite = TRUE
default_sprite = TRUE
20 changes: 14 additions & 6 deletions code/modules/mob/living/silicon/robot/sprites/civilian.dm
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Clerical and Service modules have a lot of shared sprites so they're in same file
// Clerical and Service modules have a lot of shared sprites so they're in same file
// (some of those sprites are also shared with Standard, but ive already done it as its own thing, so some duplicates are fine)

// Both Service and Clerical
Expand Down Expand Up @@ -220,11 +220,11 @@
else
ourborg.icon_state = booze_options[ourborg.sprite_extra_customization["boozehound"]]

/datum/robot_sprite/dogborg/service/booze/get_belly_overlay(var/mob/living/silicon/robot/ourborg)
/datum/robot_sprite/dogborg/service/booze/get_belly_overlay(var/mob/living/silicon/robot/ourborg, var/size = 1)
if(!("boozehound" in ourborg.sprite_extra_customization) || !ourborg.sprite_extra_customization["boozehound"])
return ..()
else
return "[booze_options[ourborg.sprite_extra_customization["boozehound"]]]-sleeper"
return "[booze_options[ourborg.sprite_extra_customization["boozehound"]]]-sleeper-[size]"

/datum/robot_sprite/dogborg/service/booze/get_rest_sprite(var/mob/living/silicon/robot/ourborg)
if(!(ourborg.rest_style in rest_sprite_options))
Expand Down Expand Up @@ -364,13 +364,21 @@
has_dead_sprite = TRUE

// Wide/dogborg sprites
/*

/datum/robot_sprite/dogborg/clerical
module_type = "Clerical"
sprite_icon = 'icons/mob/robot/clerical_wide.dmi'

// None yet
*/
/datum/robot_sprite/dogborg/clerical/vale
name = "Hound V2"
sprite_icon_state = "vale"
has_eye_light_sprites = TRUE

/datum/robot_sprite/dogborg/clerical/otie
name = "Otieborg"
sprite_icon_state = "otie"
has_eye_light_sprites = TRUE

// Tall sprites
/*
/datum/robot_sprite/dogborg/tall/clerical
Expand Down
43 changes: 39 additions & 4 deletions code/modules/mob/living/silicon/robot/sprites/combat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@
var/has_shield_sprite = FALSE

/datum/robot_sprite/combat/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg)
if(has_speed_sprite)
if(istype(ourborg.module_active,/obj/item/borg/combat/mobility))
ourborg.icon_state = "[sprite_icon_state]-roll"
if(has_speed_sprite && istype(ourborg.module_active, /obj/item/borg/combat/mobility))
ourborg.icon_state = "[sprite_icon_state]-roll"
if(has_shield_sprite)
if(ourborg.has_active_type(/obj/item/borg/combat/shield))
var/obj/item/borg/combat/shield/shield = locate() in ourborg
Expand Down Expand Up @@ -90,10 +89,20 @@
has_custom_equipment_sprites = TRUE

var/has_gun_sprite = FALSE
var/has_speed_sprite = FALSE
var/has_shield_sprite = FALSE

/datum/robot_sprite/dogborg/tall/combat/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg)
if(has_gun_sprite && (istype(ourborg.module_active, /obj/item/weapon/gun/energy/laser/mounted) || istype(ourborg.module_active, /obj/item/weapon/gun/energy/taser/mounted/cyborg/ertgun) || istype(ourborg.module_active, /obj/item/weapon/gun/energy/lasercannon/mounted)))
ourborg.add_overlay("[sprite_icon_state]-gun")
if(has_speed_sprite && (istype(ourborg.module_active, /obj/item/borg/combat/mobility)))
ourborg.icon_state = "[sprite_icon_state]-roll"
if(has_shield_sprite)
if(ourborg.has_active_type(/obj/item/borg/combat/shield))
var/obj/item/borg/combat/shield/shield = locate() in ourborg
if(shield && shield.active)
ourborg.add_overlay("[sprite_icon_state]-shield")


/datum/robot_sprite/dogborg/tall/combat/do_equipment_glamour(var/obj/item/weapon/robot_module/module)
if(!has_custom_equipment_sprites)
Expand Down Expand Up @@ -132,4 +141,30 @@
sprite_hud_icon_state = "ert"
rest_sprite_options = list("Default")
has_eye_sprites = FALSE
has_eye_light_sprites = TRUE
has_eye_light_sprites = TRUE

/datum/robot_sprite/dogborg/tall/combat/raptor
name = "Raptor V-4"
sprite_icon_state = "raptor"
sprite_hud_icon_state = "ert"
rest_sprite_options = list("Default", "Bellyup")
has_gun_sprite = TRUE
has_eye_light_sprites = TRUE
has_shield_sprite = TRUE
has_speed_sprite = TRUE

/datum/robot_sprite/dogborg/tall/combat/raptor/get_eyes_overlay(var/mob/living/silicon/robot/ourborg)
if(istype(ourborg.module_active,/obj/item/borg/combat/mobility))
return
else
return ..()
/datum/robot_sprite/dogborg/tall/combat/raptor/get_eye_light_overlay(var/mob/living/silicon/robot/ourborg)
if(istype(ourborg.module_active,/obj/item/borg/combat/mobility))
return
else
return ..()
/datum/robot_sprite/dogborg/tall/combat/raptor/get_belly_overlay(var/mob/living/silicon/robot/ourborg)
if(istype(ourborg.module_active,/obj/item/borg/combat/mobility))
return
else
return ..()
Loading