diff --git a/code/modules/keybindings/bindings_atom.dm b/code/modules/keybindings/bindings_atom.dm index 4aac76bd..5f3e8792 100644 --- a/code/modules/keybindings/bindings_atom.dm +++ b/code/modules/keybindings/bindings_atom.dm @@ -15,4 +15,4 @@ movement_dir &= ~(NORTH|SOUTH) if((movement_dir & EAST) && (movement_dir & WEST)) movement_dir &= ~(EAST|WEST) - user.Move(get_step(src, movement_dir), movement_dir) \ No newline at end of file + user.Move(get_step(src, movement_dir), movement_dir) diff --git a/code/modules/keybindings/bindings_client.dm b/code/modules/keybindings/bindings_client.dm index 0b1e526d..3233005b 100644 --- a/code/modules/keybindings/bindings_client.dm +++ b/code/modules/keybindings/bindings_client.dm @@ -88,4 +88,4 @@ if(holder) holder.keyLoop(src) if(mob.focus) - mob.focus.keyLoop(src) \ No newline at end of file + mob.focus.keyLoop(src) diff --git a/code/modules/keybindings/bindings_mob.dm b/code/modules/keybindings/bindings_mob.dm index 1e97d4d3..069e23da 100644 --- a/code/modules/keybindings/bindings_mob.dm +++ b/code/modules/keybindings/bindings_mob.dm @@ -58,31 +58,20 @@ user.body_l_leg() return - if(client.keys_held["Ctrl"]) + //!shift for pixel shifting + if(client.keys_held["Ctrl"] && !client.keys_held["Shift"]) switch(SSinput.movement_keys[_key]) if(NORTH) - if(client.keys_held["Shift"]) - northshift() - else - northface() + northface() return if(SOUTH) - if(client.keys_held["Shift"]) - southshift() - else - southface() + southface() return if(WEST) - if(client.keys_held["Shift"]) - westshift() - else - westface() + westface() return if(EAST) - if(client.keys_held["Shift"]) - eastshift() - else - eastface() + eastface() return return ..() @@ -91,4 +80,21 @@ if("Alt") toggle_move_intent() return - return ..() \ No newline at end of file + return ..() + +/// Mostly used for pixel shift right now +/mob/keyLoop(client/user) + ..() //Oops! You need this to move, don't you? + if(user.keys_held["Ctrl"] && user.keys_held["Shift"]) + var/direction = NONE + for(var/_key in user.keys_held) + direction = direction | SSinput.movement_keys[_key] + switch(direction) + if(NORTH) + northshift() + if(SOUTH) + southshift() + if(WEST) + westshift() + if(EAST) + eastshift() diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 4a93a0e0..c22b2de1 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -57,6 +57,15 @@ if(HAS_TRAIT(user, TRAIT_SOOTHED_THROAT)) return FALSE +/datum/emote/living/cough/run_emote(mob/user, params) + . = ..() + if(. && ishuman(user)) + var/mob/living/carbon/C = user + if(user.gender == FEMALE) + playsound(C, pick('hyperstation/sound/voice/emotes/female_cough1.ogg', 'hyperstation/sound/voice/emotes/female_cough2.ogg', 'hyperstation/sound/voice/emotes/female_cough3.ogg', 'hyperstation/sound/voice/emotes/female_cough4.ogg', 'hyperstation/sound/voice/emotes/female_cough5.ogg', 'hyperstation/sound/voice/emotes/female_cough6.ogg'), 50, 1) + else + playsound(C, pick('hyperstation/sound/voice/emotes/male_cough1.ogg', 'hyperstation/sound/voice/emotes/male_cough2.ogg', 'hyperstation/sound/voice/emotes/male_cough3.ogg', 'hyperstation/sound/voice/emotes/male_cough4.ogg'), 50, 1) + /datum/emote/living/dance key = "dance" key_third_person = "dances" @@ -214,6 +223,10 @@ 'sound/voice/catpeople/nyahehe.ogg'), 50, 1) return + if(isinsect(C)) + playsound(C, pick('sound/voice/mothlaugh.ogg'), + 50, 1) + return if(ishumanbasic(C)) if(user.gender == FEMALE) playsound(C, 'sound/voice/human/womanlaugh.ogg', 50, 1) @@ -289,6 +302,13 @@ message = "sighs." emote_type = EMOTE_AUDIBLE +/datum/emote/living/sigh/run_emote(mob/user, params) + . = ..() + if(. && iscarbon(user)) + var/mob/living/carbon/C = user + if(!C.mind || C.mind.miming) + return + /datum/emote/living/sit key = "sit" key_third_person = "sits" @@ -305,6 +325,19 @@ message = "sneezes." emote_type = EMOTE_AUDIBLE +/datum/emote/living/sneeze/can_run_emote(mob/living/user, status_check = TRUE) + . = ..() + if(. && iscarbon(user)) + var/mob/living/carbon/C = user + return !C.silent + +/datum/emote/living/sneeze/run_emote(mob/user, params) + . = ..() + if(. && iscarbon(user)) + var/mob/living/carbon/C = user + if(!C.mind || C.mind.miming)//mimes can't sneeze because fuck you that's why + return + /datum/emote/living/smug key = "smug" key_third_person = "smugs" @@ -316,6 +349,16 @@ message = "sniffs." emote_type = EMOTE_AUDIBLE +/datum/emote/living/sniff/run_emote(mob/user, params) + . = ..() + if(. && iscarbon(user)) + var/mob/living/carbon/C = user + if(!C.mind || C.mind.miming) + return + if(ishumanbasic(C)) + playsound(C, pick('hyperstation/sound/voice/emotes/sniff.ogg'), 50, 1) + + /datum/emote/living/snore key = "snore" key_third_person = "snores" @@ -382,6 +425,13 @@ message = "whimpers." message_mime = "appears hurt." +/datum/emote/living/whimper/run_emote(mob/user, params) + . = ..() + if(. && iscarbon(user)) + var/mob/living/carbon/C = user + if(!C.mind || C.mind.miming) + return + /datum/emote/living/wsmile key = "wsmile" key_third_person = "wsmiles" @@ -393,6 +443,13 @@ message = "yawns." emote_type = EMOTE_AUDIBLE +/datum/emote/living/yawn/run_emote(mob/user, params) + . = ..() + if(. && iscarbon(user)) + var/mob/living/carbon/C = user + if(!C.mind || C.mind.miming) + return + /datum/emote/living/custom key = "me" key_third_person = "custom" @@ -504,3 +561,91 @@ to_chat(user, "You ready your slapping hand.") else to_chat(user, "You're incapable of slapping in your current state.") + +//Carl wuz here +//FUCK YOU CARL SUCK MY BALLS YOU WHORE +/datum/emote/living/tesh_sneeze + key = "tesh_sneeze" + key_third_person = "sneezes" + message = "sneezes." + emote_type = EMOTE_AUDIBLE + +/datum/emote/living/tesh_sneeze/can_run_emote(mob/living/user, status_check = TRUE) + . = ..() + if(. && iscarbon(user)) + var/mob/living/carbon/C = user + return !C.silent + +/datum/emote/living/tesh_sneeze/run_emote(mob/user, params) + . = ..() + if(. && iscarbon(user)) + var/mob/living/carbon/C = user + if(!C.mind || C.mind.miming)//no cute sneezing for you. + return + if(ishumanbasic(C)) + playsound(C, pick('hyperstation/sound/voice/emotes/tesh_sneeze1.ogg', 'hyperstation/sound/voice/emotes/tesh_sneeze1b.ogg'), 50, 1) + if(is_species(user, /datum/species/avian))//This is required(related to subtypes), otherwise it doesn't play the noises. Sometimes. Always sometimes. Just how it be. + playsound(C, pick('hyperstation/sound/voice/emotes/tesh_sneeze1.ogg', 'hyperstation/sound/voice/emotes/tesh_sneeze1b.ogg'), 50, 1) + if(is_species(user, /datum/species/mammal))//Just because the avian subspecies doesn't have proper sprites. Some people can't use it. + playsound(C, pick('hyperstation/sound/voice/emotes/tesh_sneeze1.ogg', 'hyperstation/sound/voice/emotes/tesh_sneeze1b.ogg'), 50, 1) + +/datum/emote/living/racc + key = "racc_chitter" + key_third_person = "chitters" + message = "chitters." + emote_type = EMOTE_AUDIBLE + +/datum/emote/living/racc/can_run_emote(mob/living/user, status_check = TRUE) + . = ..() + if(. && iscarbon(user)) + var/mob/living/carbon/C = user + return !C.silent + +/datum/emote/living/racc/run_emote(mob/user, params) + . = ..() + if(. && iscarbon(user)) + var/mob/living/carbon/C = user + if(!C.mind || C.mind.miming) + return + if(ishumanbasic(C)) + playsound(C, pick('hyperstation/sound/voice/emotes/racc_chitter_1.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_2.ogg',\ + 'hyperstation/sound/voice/emotes/racc_chitter_3.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_4.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_5.ogg',\ + 'hyperstation/sound/voice/emotes/racc_chitter_6.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_7.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_8.ogg'), 50, 1) + if(is_species(user, /datum/species/mammal)) + playsound(C, pick('hyperstation/sound/voice/emotes/racc_chitter_1.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_2.ogg',\ + 'hyperstation/sound/voice/emotes/racc_chitter_3.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_4.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_5.ogg',\ + 'hyperstation/sound/voice/emotes/racc_chitter_6.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_7.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_8.ogg'), 50, 1) + +/datum/emote/living/bat + key = "bat_chitter" + key_third_person = "chitters" + message = "chitters." + emote_type = EMOTE_AUDIBLE + +/datum/emote/living/bat/can_run_emote(mob/living/user, status_check = TRUE) + . = ..() + if(. && iscarbon(user)) + var/mob/living/carbon/C = user + return !C.silent + +/datum/emote/living/bat/run_emote(mob/user, params) + . = ..() + if(. && iscarbon(user)) + var/mob/living/carbon/C = user + if(!C.mind || C.mind.miming) + return + if(ishumanbasic(C)) + playsound(C, pick('hyperstation/sound/voice/emotes/bat_c1.ogg', 'hyperstation/sound/voice/emotes/bat_c2.ogg', 'hyperstation/sound/voice/emotes/bat_c3.ogg',\ + 'hyperstation/sound/voice/emotes/bat_c4.ogg', 'hyperstation/sound/voice/emotes/bat_c5.ogg',\ + 'hyperstation/sound/voice/emotes/bat_c6.ogg', 'hyperstation/sound/voice/emotes/bat_c7.ogg', 'hyperstation/sound/voice/emotes/bat_c8.ogg',\ + 'hyperstation/sound/voice/emotes/bat_c9.ogg'), 50, 1) + if(is_species(user, /datum/species/mammal)) + playsound(C, pick('hyperstation/sound/voice/emotes/bat_c1.ogg', 'hyperstation/sound/voice/emotes/bat_c2.ogg', 'hyperstation/sound/voice/emotes/bat_c3.ogg',\ + 'hyperstation/sound/voice/emotes/bat_c4.ogg', 'hyperstation/sound/voice/emotes/bat_c5.ogg',\ + 'hyperstation/sound/voice/emotes/bat_c6.ogg', 'hyperstation/sound/voice/emotes/bat_c7.ogg', 'hyperstation/sound/voice/emotes/bat_c8.ogg',\ + 'hyperstation/sound/voice/emotes/bat_c9.ogg'), 50, 1) + if(is_species(user, /datum/species/avian))//this and mammal should be considered the same AAAAAAAAAAAA + playsound(C, pick('hyperstation/sound/voice/emotes/bat_c1.ogg', 'hyperstation/sound/voice/emotes/bat_c2.ogg', 'hyperstation/sound/voice/emotes/bat_c3.ogg',\ + 'hyperstation/sound/voice/emotes/bat_c4.ogg', 'hyperstation/sound/voice/emotes/bat_c5.ogg',\ + 'hyperstation/sound/voice/emotes/bat_c6.ogg', 'hyperstation/sound/voice/emotes/bat_c7.ogg', 'hyperstation/sound/voice/emotes/bat_c8.ogg',\ + 'hyperstation/sound/voice/emotes/bat_c9.ogg'), 50, 1) diff --git a/config/game_options.txt b/config/game_options.txt index 781134d0..a75714bc 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -454,6 +454,9 @@ ROUNDSTART_RACES slimeperson ROUNDSTART_RACES guilmon ROUNDSTART_RACES ipc +## Races that I, Christian, wanted to make playable. +ROUNDSTART_RACES dullahan + ##------------------------------------------------------------------------------------------- ## Uncomment to give players the choice of joining as a human with mutant bodyparts before they join the game diff --git a/hyperstation/code/effects/lighting.dm b/hyperstation/code/effects/lighting.dm new file mode 100644 index 00000000..efa424dd --- /dev/null +++ b/hyperstation/code/effects/lighting.dm @@ -0,0 +1,18 @@ +/obj/effect/light/ + name = "bloom" + icon = 'hyperstation/icons/effects/lighting.dmi' + icon_state = "light" + plane = ABOVE_LIGHTING_PLANE + blend_mode = BLEND_ADD + mouse_opacity = 0 + anchored = TRUE //no more flying around. + +/obj/effect/light/medium + icon = 'hyperstation/icons/effects/lightingmed.dmi' + pixel_x = -16 + pixel_y = -16 + +/obj/effect/light/large + icon = 'hyperstation/icons/effects/lightinglarge.dmi' + pixel_x = -48 + pixel_y = -48 diff --git a/hyperstation/icons/effects/lighting.dmi b/hyperstation/icons/effects/lighting.dmi new file mode 100644 index 00000000..3f59b47d Binary files /dev/null and b/hyperstation/icons/effects/lighting.dmi differ diff --git a/hyperstation/icons/effects/lightinglarge.dmi b/hyperstation/icons/effects/lightinglarge.dmi new file mode 100644 index 00000000..fb1eeebc Binary files /dev/null and b/hyperstation/icons/effects/lightinglarge.dmi differ diff --git a/hyperstation/icons/effects/lightingmed.dmi b/hyperstation/icons/effects/lightingmed.dmi new file mode 100644 index 00000000..0b87ce7d Binary files /dev/null and b/hyperstation/icons/effects/lightingmed.dmi differ diff --git a/hyperstation/sound/voice/emotes/bat_c1.ogg b/hyperstation/sound/voice/emotes/bat_c1.ogg new file mode 100644 index 00000000..c11beedc Binary files /dev/null and b/hyperstation/sound/voice/emotes/bat_c1.ogg differ diff --git a/hyperstation/sound/voice/emotes/bat_c2.ogg b/hyperstation/sound/voice/emotes/bat_c2.ogg new file mode 100644 index 00000000..45e13541 Binary files /dev/null and b/hyperstation/sound/voice/emotes/bat_c2.ogg differ diff --git a/hyperstation/sound/voice/emotes/bat_c3.ogg b/hyperstation/sound/voice/emotes/bat_c3.ogg new file mode 100644 index 00000000..1e34c2cf Binary files /dev/null and b/hyperstation/sound/voice/emotes/bat_c3.ogg differ diff --git a/hyperstation/sound/voice/emotes/bat_c4.ogg b/hyperstation/sound/voice/emotes/bat_c4.ogg new file mode 100644 index 00000000..94f43daf Binary files /dev/null and b/hyperstation/sound/voice/emotes/bat_c4.ogg differ diff --git a/hyperstation/sound/voice/emotes/bat_c5.ogg b/hyperstation/sound/voice/emotes/bat_c5.ogg new file mode 100644 index 00000000..17207ccb Binary files /dev/null and b/hyperstation/sound/voice/emotes/bat_c5.ogg differ diff --git a/hyperstation/sound/voice/emotes/bat_c6.ogg b/hyperstation/sound/voice/emotes/bat_c6.ogg new file mode 100644 index 00000000..ebb74007 Binary files /dev/null and b/hyperstation/sound/voice/emotes/bat_c6.ogg differ diff --git a/hyperstation/sound/voice/emotes/bat_c7.ogg b/hyperstation/sound/voice/emotes/bat_c7.ogg new file mode 100644 index 00000000..de58d94f Binary files /dev/null and b/hyperstation/sound/voice/emotes/bat_c7.ogg differ diff --git a/hyperstation/sound/voice/emotes/bat_c8.ogg b/hyperstation/sound/voice/emotes/bat_c8.ogg new file mode 100644 index 00000000..3952d540 Binary files /dev/null and b/hyperstation/sound/voice/emotes/bat_c8.ogg differ diff --git a/hyperstation/sound/voice/emotes/bat_c9.ogg b/hyperstation/sound/voice/emotes/bat_c9.ogg new file mode 100644 index 00000000..702eac32 Binary files /dev/null and b/hyperstation/sound/voice/emotes/bat_c9.ogg differ diff --git a/hyperstation/sound/voice/emotes/female_cough1.ogg b/hyperstation/sound/voice/emotes/female_cough1.ogg new file mode 100644 index 00000000..35cea5a5 Binary files /dev/null and b/hyperstation/sound/voice/emotes/female_cough1.ogg differ diff --git a/hyperstation/sound/voice/emotes/female_cough2.ogg b/hyperstation/sound/voice/emotes/female_cough2.ogg new file mode 100644 index 00000000..1322ed05 Binary files /dev/null and b/hyperstation/sound/voice/emotes/female_cough2.ogg differ diff --git a/hyperstation/sound/voice/emotes/female_cough3.ogg b/hyperstation/sound/voice/emotes/female_cough3.ogg new file mode 100644 index 00000000..97c2d810 Binary files /dev/null and b/hyperstation/sound/voice/emotes/female_cough3.ogg differ diff --git a/hyperstation/sound/voice/emotes/female_cough4.ogg b/hyperstation/sound/voice/emotes/female_cough4.ogg new file mode 100644 index 00000000..bb0b3288 Binary files /dev/null and b/hyperstation/sound/voice/emotes/female_cough4.ogg differ diff --git a/hyperstation/sound/voice/emotes/female_cough5.ogg b/hyperstation/sound/voice/emotes/female_cough5.ogg new file mode 100644 index 00000000..4f95822a Binary files /dev/null and b/hyperstation/sound/voice/emotes/female_cough5.ogg differ diff --git a/hyperstation/sound/voice/emotes/female_cough6.ogg b/hyperstation/sound/voice/emotes/female_cough6.ogg new file mode 100644 index 00000000..debd775e Binary files /dev/null and b/hyperstation/sound/voice/emotes/female_cough6.ogg differ diff --git a/hyperstation/sound/voice/emotes/male_cough1.ogg b/hyperstation/sound/voice/emotes/male_cough1.ogg new file mode 100644 index 00000000..142d90b2 Binary files /dev/null and b/hyperstation/sound/voice/emotes/male_cough1.ogg differ diff --git a/hyperstation/sound/voice/emotes/male_cough2.ogg b/hyperstation/sound/voice/emotes/male_cough2.ogg new file mode 100644 index 00000000..7dde1e86 Binary files /dev/null and b/hyperstation/sound/voice/emotes/male_cough2.ogg differ diff --git a/hyperstation/sound/voice/emotes/male_cough3.ogg b/hyperstation/sound/voice/emotes/male_cough3.ogg new file mode 100644 index 00000000..35cc3e7a Binary files /dev/null and b/hyperstation/sound/voice/emotes/male_cough3.ogg differ diff --git a/hyperstation/sound/voice/emotes/male_cough4.ogg b/hyperstation/sound/voice/emotes/male_cough4.ogg new file mode 100644 index 00000000..16878448 Binary files /dev/null and b/hyperstation/sound/voice/emotes/male_cough4.ogg differ diff --git a/hyperstation/sound/voice/emotes/racc_chitter_1.ogg b/hyperstation/sound/voice/emotes/racc_chitter_1.ogg new file mode 100644 index 00000000..35a90dff Binary files /dev/null and b/hyperstation/sound/voice/emotes/racc_chitter_1.ogg differ diff --git a/hyperstation/sound/voice/emotes/racc_chitter_2.ogg b/hyperstation/sound/voice/emotes/racc_chitter_2.ogg new file mode 100644 index 00000000..060c442f Binary files /dev/null and b/hyperstation/sound/voice/emotes/racc_chitter_2.ogg differ diff --git a/hyperstation/sound/voice/emotes/racc_chitter_3.ogg b/hyperstation/sound/voice/emotes/racc_chitter_3.ogg new file mode 100644 index 00000000..ad750c8a Binary files /dev/null and b/hyperstation/sound/voice/emotes/racc_chitter_3.ogg differ diff --git a/hyperstation/sound/voice/emotes/racc_chitter_4.ogg b/hyperstation/sound/voice/emotes/racc_chitter_4.ogg new file mode 100644 index 00000000..538e765e Binary files /dev/null and b/hyperstation/sound/voice/emotes/racc_chitter_4.ogg differ diff --git a/hyperstation/sound/voice/emotes/racc_chitter_5.ogg b/hyperstation/sound/voice/emotes/racc_chitter_5.ogg new file mode 100644 index 00000000..478edce3 Binary files /dev/null and b/hyperstation/sound/voice/emotes/racc_chitter_5.ogg differ diff --git a/hyperstation/sound/voice/emotes/racc_chitter_6.ogg b/hyperstation/sound/voice/emotes/racc_chitter_6.ogg new file mode 100644 index 00000000..871a47c4 Binary files /dev/null and b/hyperstation/sound/voice/emotes/racc_chitter_6.ogg differ diff --git a/hyperstation/sound/voice/emotes/racc_chitter_7.ogg b/hyperstation/sound/voice/emotes/racc_chitter_7.ogg new file mode 100644 index 00000000..0f10084b Binary files /dev/null and b/hyperstation/sound/voice/emotes/racc_chitter_7.ogg differ diff --git a/hyperstation/sound/voice/emotes/racc_chitter_8.ogg b/hyperstation/sound/voice/emotes/racc_chitter_8.ogg new file mode 100644 index 00000000..2e141dd3 Binary files /dev/null and b/hyperstation/sound/voice/emotes/racc_chitter_8.ogg differ diff --git a/hyperstation/sound/voice/emotes/sniff.ogg b/hyperstation/sound/voice/emotes/sniff.ogg new file mode 100644 index 00000000..4e4edf8b Binary files /dev/null and b/hyperstation/sound/voice/emotes/sniff.ogg differ diff --git a/hyperstation/sound/voice/emotes/tesh_sneeze1.ogg b/hyperstation/sound/voice/emotes/tesh_sneeze1.ogg new file mode 100644 index 00000000..b344bbcf Binary files /dev/null and b/hyperstation/sound/voice/emotes/tesh_sneeze1.ogg differ diff --git a/hyperstation/sound/voice/emotes/tesh_sneeze1b.ogg b/hyperstation/sound/voice/emotes/tesh_sneeze1b.ogg new file mode 100644 index 00000000..f7428654 Binary files /dev/null and b/hyperstation/sound/voice/emotes/tesh_sneeze1b.ogg differ diff --git a/sound/voice/mothlaugh.ogg b/sound/voice/mothlaugh.ogg new file mode 100644 index 00000000..391d6c5a Binary files /dev/null and b/sound/voice/mothlaugh.ogg differ