From a3e56495236a8e33458d37c14afca4ff41a9e600 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 13 Jan 2016 23:51:45 +1030 Subject: [PATCH 1/9] Fixes #755 --- code/controllers/emergency_shuttle_controller.dm | 4 ++-- code/global.dm | 1 + code/modules/shuttles/shuttle_emergency.dm | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/code/controllers/emergency_shuttle_controller.dm b/code/controllers/emergency_shuttle_controller.dm index 33a0ee88e0d..38bfc027bd5 100644 --- a/code/controllers/emergency_shuttle_controller.dm +++ b/code/controllers/emergency_shuttle_controller.dm @@ -48,7 +48,7 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle if (evac) emergency_shuttle_docked.Announce("The Emergency Shuttle has docked with the station at docks one and two. You have approximately [round(estimate_launch_time()/60,1)] minutes to board the Emergency Shuttle.") else - priority_announcement.Announce("The scheduled shuttle to the Vir Interstellar Spaceport has docked with the station at docks one and two. It will depart in approximately [round(emergency_shuttle.estimate_launch_time()/60,1)] minutes.") + priority_announcement.Announce("The scheduled shuttle to the [dock_name] has docked with the station at docks one and two. It will depart in approximately [round(emergency_shuttle.estimate_launch_time()/60,1)] minutes.") //arm the escape pods if (evac) @@ -94,7 +94,7 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle //reset the shuttle transit time if we need to shuttle.move_time = SHUTTLE_TRANSIT_DURATION - priority_announcement.Announce("The regularly scheduled shuttle to the Vir Interstellar Spaceport will arrive in in approximately [round(estimate_arrival_time()/60)] minutes. Those leaving should proceed to docks one and two.") + priority_announcement.Announce("The regularly scheduled shuttle to the [dock_name] will arrive in in approximately [round(estimate_arrival_time()/60)] minutes. Those leaving should proceed to docks one and two.") //recalls the shuttle /datum/emergency_shuttle_controller/proc/recall() diff --git a/code/global.dm b/code/global.dm index daa26e30dee..7a9366c3b30 100644 --- a/code/global.dm +++ b/code/global.dm @@ -27,6 +27,7 @@ var/diary = null var/href_logfile = null var/station_name = "Northern Star" var/station_short = "Northern Star" +var/const/dock_name = "Vir Interstellar Spaceport" var/const/boss_name = "Central Command" var/const/boss_short = "Centcomm" var/const/company_name = "NanoTrasen" diff --git a/code/modules/shuttles/shuttle_emergency.dm b/code/modules/shuttles/shuttle_emergency.dm index c6d7996fc9d..c468bbb0170 100644 --- a/code/modules/shuttles/shuttle_emergency.dm +++ b/code/modules/shuttles/shuttle_emergency.dm @@ -28,9 +28,9 @@ emergency_shuttle.departed = 1 if (emergency_shuttle.evac) - priority_announcement.Announce("The Emergency Shuttle has left the station. Estimate [round(emergency_shuttle.estimate_arrival_time()/60,1)] minutes until the shuttle docks at [boss_name].") + priority_announcement.Announce("The Emergency Shuttle has left the station. Estimate [round(emergency_shuttle.estimate_arrival_time()/60,1)] minutes until the shuttle docks at [dock_name].") else - priority_announcement.Announce("The Scheduled Transfer Shuttle has left the station. Estimate [round(emergency_shuttle.estimate_arrival_time()/60,1)] minutes until the shuttle docks at [boss_name].") + priority_announcement.Announce("The Scheduled Transfer Shuttle has left the station. Estimate [round(emergency_shuttle.estimate_arrival_time()/60,1)] minutes until the shuttle docks at [dock_name].") /datum/shuttle/ferry/emergency/can_launch(var/user) if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) @@ -185,7 +185,7 @@ else if (!shuttle.location) shuttle_status = "Standing-by at [station_name]." else - shuttle_status = "Standing-by at [boss_name]." + shuttle_status = "Standing-by at [dock_name]." if(WAIT_LAUNCH, FORCE_LAUNCH) shuttle_status = "Shuttle has recieved command and will depart shortly." if(WAIT_ARRIVE) From 18e4c7fa8e6c0925adef105ee01fe1ca10f35e28 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 13 Jan 2016 23:57:38 +1030 Subject: [PATCH 2/9] Fixes #776 --- code/modules/spells/spellbook.dm | 8 -------- 1 file changed, 8 deletions(-) diff --git a/code/modules/spells/spellbook.dm b/code/modules/spells/spellbook.dm index 6f619e1cce5..16cc1376544 100644 --- a/code/modules/spells/spellbook.dm +++ b/code/modules/spells/spellbook.dm @@ -64,9 +64,6 @@ Powerful items imbued with eldritch magics. Summoning one will count towards your maximum number of spells.
It is recommended that only experienced wizards attempt to wield such artefacts.

- Staff of Change
- An artefact that spits bolts of coruscating energy which cause the target's very form to reshape itself.
-
Mental Focus
An artefact that channels the will of the user into destructive bolts of force.

@@ -209,11 +206,6 @@ feedback_add_details("wizard_spell_learned","HH") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells H.add_spell(new/spell/targeted/equip_item/horsemask) temp = "You have learned curse of the horseman." - if("staffchange") - feedback_add_details("wizard_spell_learned","ST") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - new /obj/item/weapon/gun/energy/staff(get_turf(H)) - temp = "You have purchased a staff of change." - max_uses-- if("mentalfocus") feedback_add_details("wizard_spell_learned","MF") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells new /obj/item/weapon/gun/energy/staff/focus(get_turf(H)) From c0889f09e023430d82a6323b3ac0ce061b091e24 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 13 Jan 2016 23:59:12 +1030 Subject: [PATCH 3/9] Fixes #728 --- .../game/objects/effects/decals/contraband.dm | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/code/game/objects/effects/decals/contraband.dm b/code/game/objects/effects/decals/contraband.dm index df85773fb2e..cd3618c9366 100644 --- a/code/game/objects/effects/decals/contraband.dm +++ b/code/game/objects/effects/decals/contraband.dm @@ -33,7 +33,7 @@ if (!iswall(W) || !isturf(user.loc)) user << "You can't place this here!" return - + var/placement_dir = get_dir(user, W) if (!(placement_dir in cardinal)) user << "You must stand directly in front of the wall you wish to place that on." @@ -43,7 +43,7 @@ var/stuff_on_wall = 0 if (locate(/obj/structure/sign/poster) in W) stuff_on_wall = 1 - + //crude, but will cover most cases. We could do stuff like check pixel_x/y but it's not really worth it. for (var/dir in cardinal) var/turf/T = get_step(W, dir) @@ -61,7 +61,7 @@ flick("poster_being_set", P) //playsound(W, 'sound/items/poster_being_created.ogg', 100, 1) //why the hell does placing a poster make printer sounds? - + var/oldsrc = src //get a reference to src so we can delete it after detaching ourselves src = null spawn(17) @@ -71,7 +71,7 @@ user << "You place the poster!" else P.roll_and_drop(P.loc) - + qdel(oldsrc) //delete it now to cut down on sanity checks afterwards. Agouri's code supports rerolling it anyway //############################## THE ACTUAL DECALS ########################### @@ -90,11 +90,11 @@ if(!serial) serial = rand(1, poster_designs.len) //use a random serial if none is given - + serial_number = serial var/datum/poster/design = poster_designs[serial_number] set_poster(design) - + switch (placement_dir) if (NORTH) pixel_x = 0 @@ -133,23 +133,23 @@ /obj/structure/sign/poster/attack_hand(mob/user as mob) + if(ruined) return - var/temp_loc = user.loc - switch(alert("Do I want to rip the poster from the wall?","You think...","Yes","No")) - if("Yes") - if(user.loc != temp_loc) - return - visible_message("[user] rips [src] in a single, decisive motion!" ) - playsound(src.loc, 'sound/items/poster_ripped.ogg', 100, 1) - ruined = 1 - icon_state = "poster_ripped" - name = "ripped poster" - desc = "You can't make out anything from the poster's original print. It's ruined." - add_fingerprint(user) - if("No") + + if(alert("Do I want to rip the poster from the wall?","You think...","Yes","No") == "Yes") + + if(ruined || !user.Adjacent(src)) return + visible_message("[user] rips [src] in a single, decisive motion!" ) + playsound(src.loc, 'sound/items/poster_ripped.ogg', 100, 1) + ruined = 1 + icon_state = "poster_ripped" + name = "ripped poster" + desc = "You can't make out anything from the poster's original print. It's ruined." + add_fingerprint(user) + /obj/structure/sign/poster/proc/roll_and_drop(turf/newloc) var/obj/item/weapon/contraband/poster/P = new(src, serial_number) P.loc = newloc From ff798be5c503049266b6c9b33718f26ba23dbe8e Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 14 Jan 2016 00:05:06 +1030 Subject: [PATCH 4/9] Fixes #676 --- .../modules/projectiles/targeting/targeting_mob.dm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/code/modules/projectiles/targeting/targeting_mob.dm b/code/modules/projectiles/targeting/targeting_mob.dm index a89bbc2c9a5..765b59b4782 100644 --- a/code/modules/projectiles/targeting/targeting_mob.dm +++ b/code/modules/projectiles/targeting/targeting_mob.dm @@ -1,6 +1,20 @@ /mob/living/var/obj/aiming_overlay/aiming /mob/living/var/list/aimed = list() +/mob/verb/toggle_gun_mode() + set name = "Toggle Gun Mode" + set desc = "Begin or stop aiming." + set category = "IC" + + if(isliving(src)) + var/mob/living/M = src + if(!M.aiming) + M.aiming = new(src) + M.aiming.toggle_active() + else + src << "This verb may only be used by living mobs, sorry." + return + /mob/living/proc/stop_aiming(var/obj/item/thing, var/no_message = 0) if(!aiming) aiming = new(src) From 887c174926473a36c61952b7bf54bce202a5a30f Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 14 Jan 2016 00:17:50 +1030 Subject: [PATCH 5/9] Fixes #260 --- code/modules/mob/language/language.dm | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/code/modules/mob/language/language.dm b/code/modules/mob/language/language.dm index f496c82e67f..c8474871a75 100644 --- a/code/modules/mob/language/language.dm +++ b/code/modules/mob/language/language.dm @@ -5,19 +5,19 @@ */ /datum/language - var/name = "an unknown language" // Fluff name of language if any. - var/desc = "A language." // Short description for 'Check Languages'. - var/speech_verb = "says" // 'says', 'hisses', 'farts'. - var/ask_verb = "asks" // Used when sentence ends in a ? - var/exclaim_verb = "exclaims" // Used when sentence ends in a ! - var/whisper_verb // Optional. When not specified speech_verb + quietly/softly is used instead. - var/signlang_verb = list() // list of emotes that might be displayed if this language has NONVERBAL or SIGNLANG flags - var/colour = "body" // CSS style to use for strings in this language. - var/key = "x" // Character used to speak in language eg. :o for Unathi. - var/flags = 0 // Various language flags. - var/native // If set, non-native speakers will have trouble speaking. - var/list/syllables // Used when scrambling text for a non-speaker. - var/list/space_chance = 55 // Likelihood of getting a space in the random scramble string + var/name = "an unknown language" // Fluff name of language if any. + var/desc = "A language." // Short description for 'Check Languages'. + var/speech_verb = "says" // 'says', 'hisses', 'farts'. + var/ask_verb = "asks" // Used when sentence ends in a ? + var/exclaim_verb = "exclaims" // Used when sentence ends in a ! + var/whisper_verb = "whispers" // Optional. When not specified speech_verb + quietly/softly is used instead. + var/signlang_verb = list("signs") // list of emotes that might be displayed if this language has NONVERBAL or SIGNLANG flags + var/colour = "body" // CSS style to use for strings in this language. + var/key = "x" // Character used to speak in language eg. :o for Unathi. + var/flags = 0 // Various language flags. + var/native // If set, non-native speakers will have trouble speaking. + var/list/syllables // Used when scrambling text for a non-speaker. + var/list/space_chance = 55 // Likelihood of getting a space in the random scramble string /datum/language/proc/get_random_name(var/gender, name_count=2, syllable_count=4, syllable_divisor=2) if(!syllables || !syllables.len) From d0717791dc3318e0986592416d8da88f5670bae8 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 14 Jan 2016 00:33:31 +1030 Subject: [PATCH 6/9] Fixes #270 --- .../objects/items/weapons/material/kitchen.dm | 2 + .../reagent_containers/food/snacks.dm | 44 +++++++++---------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/code/game/objects/items/weapons/material/kitchen.dm b/code/game/objects/items/weapons/material/kitchen.dm index f256e382233..0034ddb60b1 100644 --- a/code/game/objects/items/weapons/material/kitchen.dm +++ b/code/game/objects/items/weapons/material/kitchen.dm @@ -14,6 +14,7 @@ force_divisor = 0.1 // 6 when wielded with hardness 60 (steel) thrown_force_divisor = 0.25 // 5 when thrown with weight 20 (steel) var/loaded //Descriptive string for currently loaded food object. + var/scoop_food = 1 /obj/item/weapon/material/kitchen/utensil/New() ..() @@ -74,6 +75,7 @@ desc = "A knife for eating with. Can cut through any food." icon_state = "knife" force_divisor = 0.1 // 6 when wielded with hardness 60 (steel) + scoop_food = 0 // Identical to the tactical knife but nowhere near as stabby. // Kind of like the toy esword compared to the real thing. diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 48a0b9eb7c7..a5c820d96b5 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -128,32 +128,32 @@ // Eating with forks if(istype(W,/obj/item/weapon/material/kitchen/utensil)) var/obj/item/weapon/material/kitchen/utensil/U = W + if(U.scoop_food) + if(!U.reagents) + U.create_reagents(5) - if(!U.reagents) - U.create_reagents(5) + if (U.reagents.total_volume > 0) + user << "\red You already have something on your [U]." + return - if (U.reagents.total_volume > 0) - user << "\red You already have something on your [U]." + user.visible_message( \ + "[user] scoops up some [src] with \the [U]!", \ + "\blue You scoop up some [src] with \the [U]!" \ + ) + + src.bitecount++ + U.overlays.Cut() + U.loaded = "[src]" + var/image/I = new(U.icon, "loadedfood") + I.color = src.filling_color + U.overlays += I + + reagents.trans_to_obj(U, min(reagents.total_volume,5)) + + if (reagents.total_volume <= 0) + qdel(src) return - user.visible_message( \ - "[user] scoops up some [src] with \the [U]!", \ - "\blue You scoop up some [src] with \the [U]!" \ - ) - - src.bitecount++ - U.overlays.Cut() - U.loaded = "[src]" - var/image/I = new(U.icon, "loadedfood") - I.color = src.filling_color - U.overlays += I - - reagents.trans_to_obj(U, min(reagents.total_volume,5)) - - if (reagents.total_volume <= 0) - qdel(src) - return - if (is_sliceable()) //these are used to allow hiding edge items in food that is not on a table/tray var/can_slice_here = isturf(src.loc) && ((locate(/obj/structure/table) in src.loc) || (locate(/obj/machinery/optable) in src.loc) || (locate(/obj/item/weapon/tray) in src.loc)) From 15d281d48b93978585c90746c38833d4540c5be0 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 14 Jan 2016 00:38:36 +1030 Subject: [PATCH 7/9] Fixed minor pixel offset with Ward-Takosushi torsos, courtesy of Ragnie. --- .../human_races/cyberlimbs/wardtakahashi.dmi | Bin 1646 -> 1630 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/human_races/cyberlimbs/wardtakahashi.dmi b/icons/mob/human_races/cyberlimbs/wardtakahashi.dmi index b7c9bc98421022b6a6299e427fabe15a9452a57c..eda9969ad74a8763ded549c3f36d11a0ae9beb06 100644 GIT binary patch delta 1346 zcmZvadpOez7{{B9BFTM*n%nV^3P-F=ZHaOz962s=hC`>s+*wa>OQNL#dzgtJ#32Y1a=kj2tDS5oJZzRI{f+|#!Oq>f^j_c)6}ZTAi4Q;#jL zzgmb9OHjz!8XnD6yn?!w%fLzC!gG!hT5+1bUh`74PbRz~ChIP0igFM?owu0}p8h>G z@_n2CdU0Fq+c*fn709MlGAdh&eC{^Q;goe3rde|6KsyazogL$CU&fD@r9z$sq>D2W zBx0t}<NpC2+o44L0P$eSTx#^pAqDnVk~^~gWK)S( zr}5RmuUY8cWqM%BGS(?T1@?KV@=rVc6A0$jiGA{h>kLEZd!Lf1p#E#4^o&m-bDWL* zZ_0--ua9%T(64>fPcD_#;hAtDs~3;zGS-lXzKai1WaH~~gscHP(#=G}xE-<+&l=Mw z36Vfl6+s`Sa+^8^mVDkLGefA7Y^dSeTYJ$Zp04XOL7pN@vWk~J`xvf*kWzTvTp3TJ zzGYx6kQu(bX$Og=(gkM3yU~0dzK-~@{u{u5+k zLfV5)v`-A^DI5R>xGxUh)W~P)k9+I;0urbVX|a(Id=^Ttu+!M48Z9KNTrwKt8tIl7 z$Q;l;Eb9|(GdFe*jyr3qHd`j+lyYrCziqjyMo)7s#B}N+S#^Uch25>EOJ9Oc)toIy zb0YBtRFSXG-&};#N?DPhrhAn4kYLEfR__9w9omKf`zSOSzVWi>8N5>A+{RVIoQp&~ zZBuauV&avZeW(rvmZ-^I?*Ms#0fX#2E*&Rl8odmQD7xW-J~}y~7~H>1FPy)5yCovM zVRFyNF}Eb8;0>&3YwVr^*rLJ0|GfS?9yhythdEYhw)Mcv+2P9G3DcKmfL*X*5F_GB z1K-}*qk-e}Nv5>&tO5ry84_JgIU&Biiw`O7`|?}GdS#YKwA&T+UvJm?)H8g5HVZ-6 z#^89q}}}> zp#4?Aizv2O#8=!Q1Q{fN?>xDP1!JLA(T$tlP&v&xE#Q3!z?pOuvvNf(@v>TM^{Ai2 zbXwYuA@0c1aBiX23*cB?fZFMQN?6A)s7UiqIW_^3$a%RGc_<|(UODvMHF6+0cy@1( zdeX_pYV&a|?a$DV2`9S9?Fkf-oze-E)k{smc1}%NxUMSWjQ%hLrZsnnnf2f{vhbvU+E6PN%lZ=hc5t9Ne|V(Q?~53`7lqq8*89+WPwk9ELBmaT=>LC8`&jAfKj05zxE#_L zmXO@7KuUQZlVf_XKjfW8faZP$^a1lKxi4|vrvN=KS#}x$dhUOo=_TtWuA$OvEIXb5 z>7x0q{zY`JDWK=xSklWQ`r7S|;27$T9?wlb;|HXhRnJjHiHev_A!G{eZu12K*7$P*7uW`>6QW08=C2Z=(Tscs3L?dI@xZ zx7`$w@C$#i%|MC_0oBp2Kt zEK5qjK~8B|fWXoDYdj%=ntwqKS{Mm5{RKEUI=`eOsr@qZ|7h3_YP=n88)(tm=1KEc z1H*r7{Q(AK`LTdmR0rtKU&E_y;C1-*Q_LQy`5RmF4|e_m=5Iq}_&tCjsI?CSJOEdg zS>|CdXK@*Z+5k;~WAj%B^{o=RimKw}x^o53!Peq=^KYllF!Vx}Gnj#2AwMC65JCtc zgb+dqA%qY@2qAgb+dqA%qa}1(E4G!96tM%cDD>6(H3!unVwOC}q08#|z(^E|`n7JG5QSLuIt83#8e)-%N00m1?or-2vuUuN8Rlq3-KR2%GOwu)Mz8OEd16GL>{##8>aEh%r@Zs_Bufc;m;2Ai!0|+665c0kF13f@4 U&U(=A-v9sr07*qoM6N<$f?C#wCjbBd From 7d1aa59de6253d305854c42b56b42a3e142f2ae8 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 14 Jan 2016 01:08:21 +1030 Subject: [PATCH 8/9] Fixes #715 --- code/modules/power/terminal.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/power/terminal.dm b/code/modules/power/terminal.dm index 140c296ae0a..3636c3acfaa 100644 --- a/code/modules/power/terminal.dm +++ b/code/modules/power/terminal.dm @@ -30,7 +30,7 @@ invisibility = i ? 101 : 0 icon_state = i ? "term-f" : "term" -/obj/structure/power/terminal/hides_under_flooring() +/obj/machinery/power/terminal/hides_under_flooring() return 1 // Needed so terminals are not removed from machines list. From e92615bc246679da4fa9eba3596b339de5389829 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 14 Jan 2016 01:44:23 +1030 Subject: [PATCH 9/9] Robotic limbs and non-DNA mobs will now respect gendered icons. --- code/modules/organs/organ_icon.dm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index 3b55dc1dda3..ffcb3f32e16 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -89,15 +89,20 @@ var/global/list/limb_icon_cache = list() /obj/item/organ/external/proc/get_icon(var/skeletal) - var/gender + var/gender = "f" + if(owner && owner.gender == MALE) + gender = "m" + if(force_icon) - mob_icon = new /icon(force_icon, "[icon_name][gendered_icon ? "_f" : ""]") + mob_icon = new /icon(force_icon, "[icon_name][gendered_icon ? "_[gender]" : ""]") else if(!dna) - mob_icon = new /icon('icons/mob/human_races/r_human.dmi', "[icon_name][gendered_icon ? "_f" : ""]") + mob_icon = new /icon('icons/mob/human_races/r_human.dmi', "[icon_name][gendered_icon ? "_[gender]" : ""]") else - if(gendered_icon) + if(!gendered_icon) + gender = null + else if(dna.GetUIState(DNA_UI_GENDER)) gender = "f" else