From 602d4c1c2f49b208dd3ed6e44b86f08dcd77f8ee Mon Sep 17 00:00:00 2001 From: Aurorablade Date: Tue, 12 Jan 2016 16:22:42 -0500 Subject: [PATCH] what am i even doing... --- code/datums/hud.dm | 8 +++- code/game/gamemodes/antag_hud.dm | 27 +++++++++++ code/game/gamemodes/traitor/traitor.dm | 44 ++++-------------- code/game/gamemodes/vampire/vampire_powers.dm | 7 +++ .../objects/items/weapons/implants/implant.dm | 9 +++- html/changelogs/fethas.yml | 36 ++++++++++++++ icons/mob/hud.dmi | Bin 11974 -> 12050 bytes 7 files changed, 95 insertions(+), 36 deletions(-) create mode 100644 html/changelogs/fethas.yml diff --git a/code/datums/hud.dm b/code/datums/hud.dm index f25d18ab255..e01ceb3e295 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -71,7 +71,13 @@ var/datum/atom_hud/huds = list( \ // for(var/datum/gang/G in ticker.mode.gangs) // gang_huds += G.ganghud - for(var/datum/atom_hud/hud in huds)//|gang_huds)) + var/serv_huds = list()//mindslaves and/or vampire thralls + if(ticker.mode) + for(var/datum/mindslaves/serv in (ticker.mode.vampires | ticker.mode.traitors)) + serv_huds += serv.thrallhud + + + for(var/datum/atom_hud/hud in (huds|serv_huds))//|gang_huds)) if(src in hud.hudusers) hud.add_hud_to(src) diff --git a/code/game/gamemodes/antag_hud.dm b/code/game/gamemodes/antag_hud.dm index facf096b610..b021a1b57e0 100644 --- a/code/game/gamemodes/antag_hud.dm +++ b/code/game/gamemodes/antag_hud.dm @@ -74,3 +74,30 @@ for(var/datum/atom_hud/data/hud in huds) if(current in hud.hudusers) hud.remove_hud_from(current) + + +///Master Servent Datum Sytems,Based on TG Gang system// + +/datum/mindslaves + var/name = "ERROR" + var/list/datum/mind/masters = list() + var/list/datum/mind/serv = list() + var/datum/atom_hud/antag/thrallhud + var/icontype + +/datum/mindslaves/New(loc,mastername) + + name = mastername + thrallhud = new() + +/datum/mindslaves/proc/add_serv_hud(datum/mind/serv_mind,var/icon) + thrallhud.join_hud(serv_mind.current) + icontype = icon + if(serv_mind in masters) + world << "Master Added" + var/I = image('icons/mob/hud.dmi', loc = serv_mind.current, icon_state = "hud[icontype]") + serv_mind.current.client.images += I + else + var/I = image('icons/mob/hud.dmi', loc = serv_mind.current, icon_state = "hud[icontype]") + serv_mind.current.client.images += I + diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index e95deef10be..80e941715bc 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -338,43 +338,14 @@ /datum/game_mode/proc/update_traitor_icons_added(datum/mind/traitor_mind) var/datum/atom_hud/antag/tatorhud = huds[ANTAG_HUD_SOLO] - var/ref = "\ref[traitor_mind]" - if(ref in implanter) - if(traitor_mind.current) - tatorhud.join_solo_hud(traitor_mind.current) - set_antag_hud(traitor_mind.current, "hudsyndicate") - for(var/headref in implanter) - for(var/datum/mind/t_mind in implanter[headref]) - var/datum/mind/head = locate(headref) - if(head) - if(head.current) - if(head.current.client) - tatorhud.join_solo_hud(head.current) - set_antag_hud(head.current, "hudsyndicate") - if(t_mind.current) - if(t_mind.current.client) - tatorhud.join_solo_hud(t_mind.current) - set_antag_hud(t_mind.current, "hudsyndicate") + //var/ref = "\ref[traitor_mind]" + tatorhud.join_solo_hud(traitor_mind.current) + set_antag_hud(traitor_mind.current, "hudsyndicate") /datum/game_mode/proc/update_traitor_icons_removed(datum/mind/traitor_mind) var/datum/atom_hud/antag/tatorhud = huds[ANTAG_HUD_SOLO] - for(var/headref in implanter) - var/datum/mind/head = locate(headref) - for(var/datum/mind/t_mind in implanter[headref]) - if(t_mind.current) - if(t_mind.current.client) - tatorhud.leave_hud(t_mind.current) - set_antag_hud(t_mind.current, null) - - if(head) - //log_to_dd("found [head.name]") - if(head.current) - if(head.current.client) - tatorhud.leave_hud(head.current) - set_antag_hud(head.current, null) - if(traitor_mind.current.client) - tatorhud.leave_hud(traitor_mind.current) - set_antag_hud(traitor_mind.current, null) + tatorhud.leave_hud(traitor_mind.current) + set_antag_hud(traitor_mind.current, null) /datum/game_mode/proc/remove_traitor_mind(datum/mind/traitor_mind, datum/mind/head) @@ -385,6 +356,11 @@ implanted -= traitor_mind traitors -= traitor_mind traitor_mind.special_role = null + + for(var/image/I in traitor_mind.current.client.images) + if(I.icon_state == "hudsyndicate") + qdel(I) + update_traitor_icons_removed(traitor_mind) //world << "Removed [traitor_mind.current.name] from traitor shit" traitor_mind.current << "\red The fog clouding your mind clears. You remember nothing from the moment you were implanted until now.(You don't remember who implanted you)" diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm index 615f99c1b4c..791dca2579b 100644 --- a/code/game/gamemodes/vampire/vampire_powers.dm +++ b/code/game/gamemodes/vampire/vampire_powers.dm @@ -325,6 +325,13 @@ ticker.mode.vampire_thralls[ref] = list(H.mind) else ticker.mode.vampire_thralls[ref] += H.mind + + var/datum/mindslaves/slaved = new(null,src) + slaved.masters = src + slaved.serv = H + slaved.add_serv_hud(src.mind,"vampire")//handles master servent icons + slaved.add_serv_hud(H.mind,"vampthrall") + ticker.mode.vampire_enthralled.Add(H.mind) ticker.mode.vampire_enthralled[H.mind] = src.mind H.mind.special_role = "VampThrall" diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 9b2e3ef86fc..92a895b369b 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -413,7 +413,14 @@ the implant may become unstable and either pre-maturely inject the subject or si H.mind.objectives += p for(var/datum/objective/objective in H.mind.objectives) H << "Objective #1: [objective.explanation_text]" - ticker.mode.update_traitor_icons_added(H.mind) + + var/datum/mindslaves/slaved = new(null,user) + slaved.masters = user + slaved.serv = H + slaved.add_serv_hud(user.mind,"syndicate")//handles master servent icons + slaved.add_serv_hud(H.mind,"mindslave") + + ticker.mode.update_traitor_icons_added(H.mind)//handles datahuds/observerhuds ticker.mode.update_traitor_icons_added(user.mind) log_admin("[ckey(user.key)] has mind-slaved [ckey(H.key)].") return 1 diff --git a/html/changelogs/fethas.yml b/html/changelogs/fethas.yml new file mode 100644 index 00000000000..9f846471277 --- /dev/null +++ b/html/changelogs/fethas.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. Remove the quotation mark and put in your name when copy+pasting the example changelog. +author: Fethas + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Readds the hud icon showing up for master and servent" + - rscadd: "adds mindslave datum hud thingy based on TGs gang huds" diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index b7486d89af98804b9277620a0a02f94426a02340..9b2a74768d18a802ffdb263cdfaa4ffbb97b1f73 100644 GIT binary patch literal 12050 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%0AsnoUpGL04lqKeG-b`X#bcS%Cj2C73cvY^PJPWX& z>Q=aCF43pataZ1kUZ;xsr1RpN7Vis)rs`E%lqn)?D5W7bgFPW`7k72Q(`&pETX4m;Qe-GcP1Uul4uDOg2|vz}K6;m!G#_o)Puw&`7a!d_lVV4w z5}9JBn=U|eA8)Nr=V-!#D&Z5o$J}L)NBCqr^r##x)sNXC*GH2nU;+R^KU)W2opO|} zM0rd>-_Bm__kX7{v?X7+t`sgt>d8Bl{gJeFccM%CljOe6#L3Q~W5_fYy7S_(j+Gk_ zW2WP)-gVymBID#2`NOn3kLv`YJ3-O(T+Ov$Dn*}K+dX;E<%yDjGtnWLWwLMdQil+# zGY!ieEaUrrnMpR%h5Kn0xDE%4!0KiK3ovs(CuX9B9HKF=;fGM_)-^)t4}EQ7(wfWk z;~V%f_33k=TnQr*R7?-(WC#&Xmx>mIHC+bQyGT=w}ZycJs z%}XI#YwyPF5uwRfb}?wzP}ClABXAOq{vlt2>Hqa>7XxZ~FCBF(`-X|jV&3(~%Z~_u zs6KTr16WR2U@PY+`H-y7mN>V94d)G^-) z(cBKvWKS-bYK!xcv0n+Qph!|Z;w>mc$pqd?@M|-FrLUs@Kfmhwg^!ES*c!0p2s502 z{NH9>l_zvUaevFoo?1eevnIz8&pL#On0y+uCMlgLWuKL}LVuKq8 z{do?h;2ybUWtC32fyaASR^yD)32geo5!673h5)AFU-b04;SL9A=Lf9qBe1epU|s~0 z+|zSy1kwK1Jc--4IXm>Z^(ZgRhqScsIWC=VB6?nyoOQMaA%!SWli;hA5^C@tcVA!} z+g~fV$ZWw;5nlv2y@`=Vl9E!u)Vt<0v#q*7>-#!b(>aOf)g_fzq z*x8PMq)TzS0j?kZw5vFUL^8F&SODdB-MYK{Id?dOH*VZG1-NFn1|s3})dvT3W_`B0 zmZb80Px3Gi12A@Xe_h&p;bw{pnkfV1hs>^A<#xxgC)C)idSUuT;B-o0-V4Flz@;qg z!NC|9@PJ@(eCJqf^wY7Se5nG^r5Z$iiwIb!m`yMJBYg1-qrM}|XSV*E@&T3G<#U8- jxzr6Xfo1W!>_jSylb>^i?sE_X0>BkRbAu{9r$_$>d}^wE literal 11974 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 LQ@Kp>Md<$kXHl0L