From 5702890b9b9f6ec7f38f748a80b9de3668eb6a99 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Sun, 29 Sep 2013 02:13:40 -0400 Subject: [PATCH] Whitelisting system, new karma job, new karma species --- code/__HELPERS/global_lists.dm | 2 +- .../game/gamemodes/autotraitor/autotraitor.dm | 1 - code/game/jobs/job/captain.dm | 43 +++++++++++++++++- code/game/jobs/jobs.dm | 6 ++- code/modules/admin/banjob.dm | 12 ++--- code/modules/client/preferences.dm | 12 ++--- code/modules/mob/living/carbon/species.dm | 16 +++++-- icons/mob/human_races/r_def_kidan.dmi | Bin 0 -> 2587 bytes icons/mob/human_races/r_kidan.dmi | Bin 0 -> 2550 bytes 9 files changed, 73 insertions(+), 19 deletions(-) create mode 100644 icons/mob/human_races/r_def_kidan.dmi create mode 100644 icons/mob/human_races/r_kidan.dmi diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 956e6be2557..29fb3e33336 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -20,7 +20,7 @@ var/global/list/mechas_list = list() //list of all mechs. Used by hostile mob //Languages/species/whitelist. var/global/list/all_species[0] var/global/list/all_languages[0] -var/global/list/whitelisted_species = list("Human") +var/global/list/whitelisted_species = list() //Preferences stuff //Hairstyles diff --git a/code/game/gamemodes/autotraitor/autotraitor.dm b/code/game/gamemodes/autotraitor/autotraitor.dm index a6da766b4e7..aeb313eed02 100644 --- a/code/game/gamemodes/autotraitor/autotraitor.dm +++ b/code/game/gamemodes/autotraitor/autotraitor.dm @@ -70,7 +70,6 @@ /datum/game_mode/traitor/autotraitor/post_setup() ..() - abandon_allowed = 1 traitorcheckloop() /datum/game_mode/traitor/autotraitor/proc/traitorcheckloop() diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index 53a7fff417a..a3309ccac8b 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -108,7 +108,7 @@ access_theatre, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, access_clown, access_mime, access_hop, access_RC_announce, access_keycard_auth, access_gateway) minimal_access = list(access_security, access_sec_doors, access_brig, access_court, access_forensics_lockers, - access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, + access_medical, access_engine, access_ai_upload, access_eva, access_heads, access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, access_theatre, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, @@ -130,4 +130,45 @@ var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) L.imp_in = H L.implanted = 1 + return 1 + +/datum/job/blueshield + title = "Blueshield" + flag = BLUESHIELD + department_flag = CIVILIAN + faction = "Station" + total_positions = 1 + spawn_positions = 1 + supervisors = "Whichever head your protect, and ultimately the Captain" + selection_color = "#ccccff" + idtype = /obj/item/weapon/card/id/centcom + req_admin_notify = 1 + minimal_player_age = 10 + access = list(access_security, access_sec_doors, access_brig, access_court, access_forensics_lockers, + access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, + access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, + access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, + access_theatre, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, + access_clown, access_mime, access_hop, access_RC_announce, access_keycard_auth, access_gateway) + minimal_access = list(access_security, access_sec_doors, access_brig, access_court, access_forensics_lockers, + access_medical, access_engine, access_ai_upload, access_eva, access_heads, + access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, + access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, + access_theatre, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, + access_clown, access_mime, access_hop, access_RC_announce, access_keycard_auth, access_gateway) + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hop(H), slot_ears) + switch(H.backbag) + if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) + if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes) + H.equip_if_possible(new /obj/item/clothing/under/rank/centcom/representative(H), slot_w_uniform) + H.equip_to_slot_or_del(new /obj/item/device/pda/heads/hop(H), slot_belt) + var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) + L.imp_in = H + L.implanted = 1 return 1 \ No newline at end of file diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm index 87679abda17..744ae823422 100644 --- a/code/game/jobs/jobs.dm +++ b/code/game/jobs/jobs.dm @@ -44,6 +44,7 @@ var/const/CLOWN =(1<<11) var/const/MIME =(1<<12) var/const/ASSISTANT =(1<<13) var/const/NANO =(1<<14) +var/const/BLUESHIELD =(1<<15) var/list/assistant_occupations = list( @@ -120,9 +121,12 @@ var/list/nonhuman_positions = list( "pAI" ) +var/list/whitelisted_positions = list( + "Blueshield", +) /proc/guest_jobbans(var/job) - return ((job in command_positions) || (job in nonhuman_positions) || (job in security_positions)) + return (job in whitelisted_positions) /proc/get_job_datums() var/list/occupations = list() diff --git a/code/modules/admin/banjob.dm b/code/modules/admin/banjob.dm index 1eb61cd4a92..3779a6e9fec 100644 --- a/code/modules/admin/banjob.dm +++ b/code/modules/admin/banjob.dm @@ -16,14 +16,14 @@ var/jobban_keylist[0] //to store the keys & ranks //returns a reason if M is banned from rank, returns 0 otherwise /proc/jobban_isbanned(mob/M, rank) if(M && rank) - /* - if(_jobban_isbanned(M, rank)) return "Reason Unspecified" //for old jobban + + //if(_jobban_isbanned(M, rank)) return "Reason Unspecified" //for old jobban if (guest_jobbans(rank)) - if(config.guest_jobban && IsGuestKey(M.key)) - return "Guest Job-ban" + // if(config.guest_jobban && IsGuestKey(M.key)) + // return "Guest Job-ban" if(config.usewhitelist && !check_whitelist(M)) - return "Whitelisted Job" - */ + return "Karma Job" + for (var/s in jobban_keylist) if( findtext(s,"[M.ckey] - [rank]") == 1 ) var/startpos = findtext(s, "## ")+3 diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 6606542bfad..e755856f20a 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -837,19 +837,19 @@ datum/preferences age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN) if("species") - var/list/new_species = list("Human") + var/list/new_species = list("Human","Tajaran","Skrell","Unathi","Diona") var/prev_species = species - var/whitelisted = 0 +// var/whitelisted = 0 if(config.usealienwhitelist) //If we're using the whitelist, make sure to check it! for(var/S in whitelisted_species) if(is_alien_whitelisted(user,S)) new_species += S - whitelisted = 1 - if(!whitelisted) - alert(user, "You cannot change your species as you need to be whitelisted. If you wish to be whitelisted contact an admin in-game, on the forums, or on IRC.") +// whitelisted = 1 +// if(!whitelisted) +// alert(user, "You cannot change your species as you need to be whitelisted. If you wish to be whitelisted contact an admin in-game, on the forums, or on IRC.") else //Not using the whitelist? Aliens for everyone! - new_species = whitelisted_species + new_species += whitelisted_species species = input("Please select a species", "Character Generation", null) in new_species diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index 04f94a95b47..ae82ba10a81 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -123,7 +123,7 @@ flags = NO_BREATHE | REQUIRE_LIGHT | NON_GENDERED | NO_SCAN | IS_PLANT | RAD_ABSORB -/* + /datum/species/skellington // /vg/ name = "Skellington" icobase = 'icons/mob/human_races/r_skeleton.dmi' @@ -131,5 +131,15 @@ language = "Clatter" attack_verb = "punch" - flags = HAS_LIPS | HAS_TAIL | NO_EAT | NO_BREATHE | NON_GENDERED -*/ \ No newline at end of file + flags = WHITELISTED | HAS_LIPS | HAS_TAIL | NO_EAT | NO_BREATHE | NON_GENDERED + + + +/datum/species/kidan + name = "Kidan" + icobase = 'icons/mob/human_races/r_kidan.dmi' + deform = 'icons/mob/human_races/r_def_kidan.dmi' + language = "Chittin" + attack_verb = "slash" + + flags = WHITELISTED \ No newline at end of file diff --git a/icons/mob/human_races/r_def_kidan.dmi b/icons/mob/human_races/r_def_kidan.dmi new file mode 100644 index 0000000000000000000000000000000000000000..0d7b050b7ce2d1ef88132c060b44c53f70cce170 GIT binary patch literal 2587 zcmZWo2{hDe8~;nqFtSu`!j+M-WSwLwF-(NQD5^<|zDAZTV;N*?uH_nT7$xpS8d;)* z%8d-y)P%S(%06Su+H96#%w(CFZ#wtuoO{mqp7XxX@A;kcEbse1zYGs|CwYh(1ONbe z7iWia03ZeZzGb8V0MNdA?UlqF^KkWYeEaq-LJN3-0%A@8er7=CDZuh);F1v#YXe+1 z2ByM+aSU+J84#0Ch#L=x+nm>{0P#yjNmMcVWT_;H6!x6ECtx=};wN!fab75_!_7!^ zL|_;;5EBXjw;yH=OhPEoeLI$e5+RoapUI=4rRnK>$N|O^-#xZ9jD^U^7uED8&uCNXTzUpw2QQ; zYUdRD>xOezat;KZuS_ycf318)_iN?eVW4vL$qog)-hDS2S(y|RL|Hnle|jEsE2~eh zh^Q7((X!#ZnJKuG5ak_pB$=M&mLbm<5(T- z=k@Sc=cxFPR%b8 z6m5oVUvf}cTUQ_Qswdym{ohG5qHV8h{nOyT&$@&7y{Tydtm=!V!J@{C;l?-4Ae~0f z?>D*pH1a?XI#|7wpp%TM4!?1%#uuvQT;LmFm?i|4jV`y2^HLCilUu+TfC_p98>J^MRA?x%cxsHy>52r@AI;N0B#Z zmL!)ZY8s?A^(sg$H8_!aDIkvDPG3lK_KEwy{(jkmJ^qa$Ho8$>dqoDLd|?VtVr^SV ziZRxre7vz)TRmaND$bK}ST4EE-L^XQ8JhNa7!HzMQqER#tH&UkQG9503&h{~xzA{& z_}(dmb(>?5dlDyZ+*H1=9&z>J$y0yEr01IPFPba;Q~H-AkU+b(OopeRdK%&;17ycW)!6)H)-F^4k1NpyS`3k_*gfk+Tq7dZ)vBaisU*Y_i0h@ zBr2Sl6u1fbQYEhQRu$6fHP{R^Nw<(0O^Pu);w^ky;^$HR%{1}PVAOhp!@65cZ0}Ko zFhez6SvFT+4Rk+d4sKiSDId?_a^F>ghlz!~$Vf08PUB@fxN!6(v%Gsv4)g-Fr9?d> znUi=vd$!axxM0h@Mwry+Ejz{mMzk^y-qZyc2h%;N7d>ENQbWqgivnY?F zGsN!`^fP#+xM^wI_%)nNWT$&a$YO)bj3x#Sf&9KaJ z=EKc7w}C$7mL@$+tNC;@n`rfGS^?gtfuP#&5lIlAWV<_1gZ2vdz>Ix&Vv`z=1lL>j ztUT~({xp45zzb1%1tL{Rt15a&Th9x#UxT0Gu^lNSIYs;0i$+}ByomotD;8FXn|^ZF zde&wTK@Smhb8!K}P&u{yg_78l3>CFbR(_@wopx+!|7_o&Rpu?T#ID&v_@G>mjdO2e zzzmGcGc_KcodP=;*>- zgL)6R7<`*FF4}cg2OT&`Luw}I)KEr8jIPDuh6g4FFVRCcCO9hERExvLk(<;zg$fD@ z>~C-fx<)K}{mLlh&}D;fL|eJoyKQ5wtD5k6``|6j3a6Xo;JLO=-SF0K7sso* zYz8(}@FV@Pd9Cn#PVbP~e;)a*H{wqS@i%9&mYY!J_}BZol{@FF-mX0L;^y zMEQ{BoHQbi2(yt_?>i-yUS1!g{yt%)@$R|F@d8l_lK9{xnHOXe@HPBqAUfyyz09h| zW7R8$9Q}DuT8HP-e)6pMQ+=++wE@EG~0?;a{y?YH(6ajq9kpSQ}(@G N7e{x8TEz9_{{oDG3jhEB literal 0 HcmV?d00001 diff --git a/icons/mob/human_races/r_kidan.dmi b/icons/mob/human_races/r_kidan.dmi new file mode 100644 index 0000000000000000000000000000000000000000..c8be5e21ed18e3a9e05d60c18a58cb2c34c48a50 GIT binary patch literal 2550 zcmZWp2{hE(AOAgCra{w7kDkPsUbaYtiFpj+S!c)+ro?N6iA;<&>*NVVLkfw8p^nySPBdPfS9?N zu`K}n1pVGY!T`mUidv{(A_}d8x{vGf*3ncylz@-6aRUlLkxO5sA z_X9@oK#Cc_r~S@<4dXYNZ9fP2FCl`cY^)JQkmRQTTeKZuFw^fLSg>!|I|UeDBVhe; zHv@2ZUjPWnO8PVgZh#)$yX+kScK*ho4f#^y<2S*uS*p9Ze#z_tf$(?H;9I+`g>c=j zSBK(yw{7oDE;P8_p@?Mn-y8979vEV|uX)sre~{`MwAWTIbYCrp70zDpqaJVO$#qHD zLVC;kQdg5Aj&;d}46ZnYm&EAO_{PmsawMdkn!EF>-rQ)!$Q5)?|%;$sdo5n#v2#amj>hcaGv4%oDMnhOHjaC$4G2SX#Ik!*!t=+F)&vxAp1`Njp{TjcLqyLC_@pr|? zL|d&@{QD#+H=@ru5>k1EuZ7FiOgb=l$Azet`-W4S50^CVG0LDF_4iB~< zP*X(>X4s|b`pG`YZKqm(77eI!WW>}GDR*2c>G4J61`&KXySUD&lYPwyQsXm^WxAJV zf33sl{zuRc_y~%>(4=LA=Au{}hpWeq7SRev4cxD29#73p59d7T=TsP}$*k~1&+*p&NQsbQEMK0U&{hGDrkMHE=-X4nfvXc~7(afrjyCI4lLZsK7{6A^$7?;dLD-s;B znMg|#68*qxox12Ym=5WOe=%^WC8BeX>b1lPJw>w&3_O`?m^isd=tyTKQIWXcgk<=D z$5dKYmhNLZjQaHQ&00Okf5uM^gh-!FP)7AeO3pwB`-7Vjji3&xKh8xN_;M8TcN_~7 z<(O5Rdstm>pH?-CW6WYg14RqBL>a&K2p)Yg%C8vzr{@-_e)vd6w5y$5?=e3U{|t@4 zC3@Iu_c!2lr*;Ez9}fLV(VMSScRE|`U<#i6CVx)P%!0P*FDs%~Ok0)Zo!Ur`Ym$Q{ zQqWRH5t6CtqK$Vc^yW{T&OFt-?W|9(k5E4&K`vqKO%6NVt66$a7sc|6x8n@W&e%*_ zZ|hXY`9N2ED6`AD7;Z@_f_GufUN-8v=0>aRcT-$H8Ovkt5!_r*x|Fk^fG-EHJ{7N? zb>7mM(n+lMsL+qwKOqgQs<$cy`c(Fuyw6JWqRz3{SKZ4w1Vg#DJimF|Xr+o1&XTfA zsj2nI%;9}Fw@Lv0sbSKUQmf48onE;9*A3FQV12!6-f(#M7Gi7VJ(c9XD~)yUZQmMG zI|@Cz?9!heUxI{BZjCP`^U0{-FBmfMRCL3uKBmH0vp%x1MKWE+CCbi;PIg5Q#rtb|H8=juE+XZb4Ed|}d$tXzJlB??pe9p?82uF+u?eUg||pG=AY>F{v>*rN7Y>6$fB-@7txeZ#XQsWK4UiCLc9cN zJEirK^Q7lDhOGH&rV|&1o7gbDTPu%=vdawNrl^!9^o>1~$M8>d2(lbohnwV{yxIn@s86>s7JdHkHI=%^)I1Vs8`CY=hC5w9ofL>n0g7AIbt+VmRUuL%TA}1iv^u zXlJBZo+}P_8HO(5B+7gJyQTSYr%z$&<T6|bAYUH-+(b&Bme&k6mM zAT}j?MUuOFc2V!d*D-(zql>RF`Vt0JmPmn?SkkWsu02|kEP!mW^Q@|;d9f4TAL{Pb!X`1$2g+ov7V zs?CKzz;vO@sBIQ|S~d1N*vq`w)qG~i8Ed94_1w;!ds|Wz?TDA@(qD#l7m<}lxe33if^tk0WW zlP_TmTJ1dDAN!$9Qmv@&9% z=)aBv02{4AFm~mawjTRyIWMI0mO77*y+*Wkcd_5E^Uq>JWt}X^jG!PgZ4I&T(KNsN zas9VV2$fI1z}WYYez3nN99y;ij-)%~#(`&6=O=QSf>!IZ(;^=S?5U`qb>l!X^$Y)s zWOd)7w=8rFwm_XvJhm}<>oDy+U}t4FK(!n9-E8cbF|0+0UE+9jhzP+#T2S5t`c