From 6c077758c64fa9273591d1de7cc7559c7ff05fc6 Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Sat, 18 May 2019 05:06:22 -0400 Subject: [PATCH 01/44] ports gang --- code/__DEFINES/antagonists.dm | 5 + code/__DEFINES/role_preferences.dm | 6 +- code/modules/admin/topic.dm | 9 +- icons/effects/crayondecal.dmi | Bin 29115 -> 34780 bytes icons/mob/hud.dmi | Bin 14773 -> 14934 bytes icons/obj/device.dmi | Bin 43527 -> 43562 bytes .../code/game/gamemodes/gangs/dominator.dm | 241 +++++++++ .../gamemodes/gangs/dominator_countdown.dm | 13 + .../code/game/gamemodes/gangs/gang.dm | 475 ++++++++++++++++++ .../code/game/gamemodes/gangs/gang_crayon.dm | 236 +++++++++ .../code/game/gamemodes/gangs/gang_datums.dm | 139 +++++ .../code/game/gamemodes/gangs/gang_decals.dm | 38 ++ .../code/game/gamemodes/gangs/gang_hud.dm | 34 ++ .../code/game/gamemodes/gangs/gang_items.dm | 404 +++++++++++++++ .../code/game/gamemodes/gangs/gang_pen.dm | 58 +++ .../code/game/gamemodes/gangs/gangs.dm | 59 +++ .../code/game/gamemodes/gangs/gangtool.dm | 259 ++++++++++ .../code/game/gamemodes/gangs/implant_gang.dm | 61 +++ tgstation.dme | 12 + 19 files changed, 2046 insertions(+), 3 deletions(-) create mode 100644 modular_citadel/code/game/gamemodes/gangs/dominator.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/dominator_countdown.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gang.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gang_crayon.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gang_datums.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gang_decals.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gang_hud.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gang_items.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gang_pen.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gangs.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gangtool.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/implant_gang.dm diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 4c454aa61a..e35defd485 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -35,3 +35,8 @@ //Overthrow time to update heads obj #define OBJECTIVE_UPDATING_TIME 300 + +//Gangshit +#define NOT_DOMINATING -1 +#define MAX_LEADERS_GANG 3 +#define INITIAL_DOM_ATTEMPTS 3 diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 6773d55e53..b316c003a9 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -33,7 +33,8 @@ #define ROLE_DRONE "drone" #define ROLE_DEATHSQUAD "deathsquad" #define ROLE_LAVALAND "lavaland" -#define ROLE_INTERNAL_AFFAIRS "internal affairs agent" +#define ROLE_INTERNAL_AFFAIRS "internal affairs agent" +#define ROLE_GANG "gangster" //Missing assignment means it's not a gamemode specific role, IT'S NOT A BUG OR ERROR. //The gamemode specific ones are just so the gamemodes can query whether a player is old enough @@ -58,7 +59,8 @@ GLOBAL_LIST_INIT(special_roles, list( ROLE_SERVANT_OF_RATVAR = /datum/game_mode/clockwork_cult, ROLE_OVERTHROW = /datum/game_mode/overthrow, ROLE_INTERNAL_AFFAIRS = /datum/game_mode/traitor/internal_affairs, - ROLE_SENTIENCE + ROLE_SENTIENCE, + ROLE_GANG = /datum/game_mode/gang )) //Job defines for what happens when you fail to qualify for any job during job selection diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 226f2a5456..6fa118ab7f 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -903,6 +903,13 @@ else dat += "Alien" + //Gang + if(jobban_isbanned(M, ROLE_GANG) || isbanned_dept) + dat += "Gang" + else + dat += "Gang" + + //Other Roles (black) dat += "" dat += "" @@ -974,7 +981,7 @@ if("ghostroles") joblist += list(ROLE_PAI, ROLE_POSIBRAIN, ROLE_DRONE , ROLE_DEATHSQUAD, ROLE_LAVALAND, ROLE_SENTIENCE) if("teamantags") - joblist += list(ROLE_OPERATIVE, ROLE_REV, ROLE_CULTIST, ROLE_SERVANT_OF_RATVAR, ROLE_ABDUCTOR, ROLE_ALIEN) + joblist += list(ROLE_OPERATIVE, ROLE_REV, ROLE_CULTIST, ROLE_SERVANT_OF_RATVAR, ROLE_ABDUCTOR, ROLE_ALIEN, ROLE_GANG) if("convertantags") joblist += list(ROLE_REV, ROLE_CULTIST, ROLE_SERVANT_OF_RATVAR, ROLE_ALIEN) if("otherroles") diff --git a/icons/effects/crayondecal.dmi b/icons/effects/crayondecal.dmi index bb48832025c0b6e4e7c3850a6d5020b72da517b9..fcd27698e7e1b286291a7eb0cfeb211fd1081683 100644 GIT binary patch delta 10004 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 PfyXoX=TA%I%!2+0Aq1Ru delta 4310 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 diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 047f08094662b38053bdae13b3d87a530d485cac..10474f94da8c8e6a2667411520ebb65c5f18d096 100644 GIT binary patch literal 14934 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 diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index becb58568ff14b0a8d215f10a556f805b1a920ee..55c33e5e832f86f5fcc95aad40486aab775056bd 100644 GIT binary patch delta 23479 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 z world.time) + to_chat(user, "Hostile Takeover in progress. Estimated [gang.domination_time_remaining()] seconds remain.") + else + to_chat(user, "Hostile Takeover of [station_name()] successful. Have a great day.") + else + to_chat(user, "System on standby.") + to_chat(user, "System Integrity: [round((obj_integrity/max_integrity)*100,1)]%") + +/obj/machinery/dominator/process() + ..() + if(gang && gang.domination_time != NOT_DOMINATING) + var/time_remaining = gang.domination_time_remaining() + if(time_remaining > 0) + if(excessive_walls_check()) + gang.domination_time += 20 + playsound(loc, 'sound/machines/buzz-two.ogg', 50, 0) + if(spam_prevention < DOM_BLOCKED_SPAM_CAP) + spam_prevention++ + else + gang.message_gangtools("Warning: There are too many walls around your gang's dominator, its signal is being blocked!") + say("Error: Takeover signal is currently blocked! There are too many walls within 3 standard units of this device.") + spam_prevention = 0 + return + . = TRUE + playsound(loc, 'sound/items/timer.ogg', 10, 0) + if(!warned && (time_remaining < 180)) + warned = TRUE + var/area/domloc = get_area(loc) + gang.message_gangtools("Less than 3 minutes remains in hostile takeover. Defend your dominator at [domloc.map_name]!") + for(var/G in GLOB.gangs) + var/datum/team/gang/tempgang = G + if(tempgang != gang) + tempgang.message_gangtools("WARNING: [gang.name] Gang takeover imminent. Their dominator at [domloc.map_name] must be destroyed!",1,1) + else + Cinematic(CINEMATIC_MALF,world) //Here is the gang victory trigger on the dominator ending. + gang.winner = TRUE + SSticker.force_ending = TRUE + + if(!.) + STOP_PROCESSING(SSmachines, src) + +/obj/machinery/dominator/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(damage_amount) + playsound(src, 'sound/effects/bang.ogg', 50, 1) + else + playsound(loc, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) + +/obj/machinery/dominator/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) + . = ..() + if(.) + if(obj_integrity/max_integrity > 0.66) + if(prob(damage_amount*2)) + spark_system.start() + else if(!(stat & BROKEN)) + spark_system.start() + update_icon() + + +/obj/machinery/dominator/obj_break(damage_flag) + if(!(stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1)) + set_broken() + +/obj/machinery/dominator/deconstruct(disassembled = TRUE) + if(!(flags_1 & NODECONSTRUCT_1)) + if(!(stat & BROKEN)) + set_broken() + new /obj/item/stack/sheet/plasteel(src.loc) + qdel(src) + +/obj/machinery/dominator/attacked_by(obj/item/I, mob/living/user) + add_fingerprint(user) + ..() + +/obj/machinery/dominator/attack_hand(mob/user) + if(operating || (stat & BROKEN)) + examine(user) + return + + var/datum/team/gang/tempgang + + var/datum/antagonist/gang/GA = user.mind.has_antag_datum(/datum/antagonist/gang) + if(GA) + tempgang = GA.gang + if(!tempgang) + examine(user) + return + + if(tempgang.domination_time != NOT_DOMINATING) + to_chat(user, "Error: Hostile Takeover is already in progress.") + return + + if(!tempgang.dom_attempts) + to_chat(user, "Error: Unable to breach station network. Firewall has logged our signature and is blocking all further attempts.") + return + + var/time = round(tempgang.determine_domination_time()/60,0.1) + if(alert(user,"A takeover will require [time] minutes.\nYour gang will be unable to gain influence while it is active.\nThe entire station will likely be alerted to it once it starts.\nYou have [tempgang.dom_attempts] attempt(s) remaining. Are you ready?","Confirm","Ready","Later") == "Ready") + if((tempgang.domination_time != NOT_DOMINATING) || !tempgang.dom_attempts || !in_range(src, user) || !isturf(loc)) + return 0 + + var/area/A = get_area(loc) + var/locname = A.map_name + + gang = tempgang + gang.dom_attempts -- + priority_announce("Network breach detected in [locname]. The [gang.name] Gang is attempting to seize control of the station!","Network Alert") + gang.domination() + SSshuttle.registerHostileEnvironment(src) + name = "[gang.name] Gang [name]" + operating = TRUE + update_icon() + + countdown.start() + countdown.color = gang.color + + set_light(3) + START_PROCESSING(SSmachines, src) + + gang.message_gangtools("Hostile takeover in progress: Estimated [time] minutes until victory.[gang.dom_attempts ? "" : " This is your final attempt."]") + for(var/G in GLOB.gangs) + var/datum/team/gang/vagos = G + if(vagos != gang) + vagos.message_gangtools("Enemy takeover attempt detected in [locname]: Estimated [time] minutes until our defeat.",1,1) + +/obj/machinery/dominator/proc/excessive_walls_check() // why the fuck was this even a global proc... + var/open = FALSE + for(var/turf/T in view(3, src)) + if(!isclosedturf(T)) + open++ + if(open < DOM_REQUIRED_TURFS) + return TRUE + else + return FALSE + +/obj/machinery/dominator/proc/set_broken() + if(gang) + gang.domination_time = NOT_DOMINATING + + var/takeover_in_progress = FALSE + for(var/G in GLOB.gangs) + var/datum/team/gang/ballas = G + if(ballas.domination_time != NOT_DOMINATING) + takeover_in_progress = TRUE + break + if(!takeover_in_progress) + var/was_stranded = SSshuttle.emergency.mode == SHUTTLE_STRANDED + if(!was_stranded) + priority_announce("All hostile activity within station systems has ceased.","Network Alert") + + if(get_security_level() == "delta") + set_security_level("red") + + SSshuttle.clearHostileEnvironment(src) + gang.message_gangtools("Hostile takeover cancelled: Dominator is no longer operational.[gang.dom_attempts ? " You have [gang.dom_attempts] attempt remaining." : " The station network will have likely blocked any more attempts by us."]",1,1) + + set_light(0) + operating = FALSE + stat |= BROKEN + update_icon() + STOP_PROCESSING(SSmachines, src) + +#undef DOM_BLOCKED_SPAM_CAP +#undef DOM_REQUIRED_TURFS +#undef DOM_HULK_HITS_REQUIRED \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/dominator_countdown.dm b/modular_citadel/code/game/gamemodes/gangs/dominator_countdown.dm new file mode 100644 index 0000000000..c6ae610e37 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/dominator_countdown.dm @@ -0,0 +1,13 @@ +/obj/effect/countdown/dominator + name = "dominator countdown" + text_size = 1 + color = "#e5e5e5" // Overwritten when the dominator starts + +/obj/effect/countdown/dominator/get_value() + var/obj/machinery/dominator/D = attached_to + if(!istype(D)) + return + else if(D.gang && D.gang.domination_time != NOT_DOMINATING) + return D.gang.domination_time_remaining() + else + return "OFFLINE" \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang.dm b/modular_citadel/code/game/gamemodes/gangs/gang.dm new file mode 100644 index 0000000000..5b93cf0cb7 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gang.dm @@ -0,0 +1,475 @@ +/datum/antagonist/gang + name = "Gangster" + roundend_category = "gangsters" + can_coexist_with_others = FALSE + job_rank = ROLE_GANG + antagpanel_category = "Gang" + var/hud_type = "gangster" + var/message_name = "Gangster" + var/datum/team/gang/gang + +/datum/antagonist/gang/can_be_owned(datum/mind/new_owner) + . = ..() + if(.) + if(new_owner.unconvertable) + return FALSE + +/datum/antagonist/gang/apply_innate_effects(mob/living/mob_override) + var/mob/living/M = mob_override || owner.current + update_gang_icons_added(M) + +/datum/antagonist/gang/remove_innate_effects(mob/living/mob_override) + var/mob/living/M = mob_override || owner.current + update_gang_icons_removed(M) + +/datum/antagonist/gang/get_team() + return gang + +/datum/antagonist/gang/greet() + gang.greet_gangster(owner) + +/datum/antagonist/gang/farewell() + if(ishuman(owner.current)) + owner.current.visible_message("[owner.current] looks like [owner.current.p_theyve()] just remembered [owner.current.p_their()] real allegiance!", null, null, null, owner.current) + to_chat(owner, "You are no longer a gangster!") + +/datum/antagonist/gang/on_gain() + if(!gang) + create_team() + ..() + var/mob/living/carbon/human/H = owner.current + if(istype(H)) + if(owner.assigned_role == "Clown") + to_chat(owner, "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.") + H.dna.remove_mutation(CLOWNMUT) + add_to_gang() + +/datum/antagonist/gang/on_removal() + remove_from_gang() + ..() + +/datum/antagonist/gang/create_team(team) + if(!gang) // add_antag_datum calls create_team, so we need to avoid generating two gangs in that case + if(team) + gang = team + return + var/datum/team/gang/gangteam = pick_n_take(GLOB.possible_gangs) + if(gangteam) + gang = new gangteam + +/datum/antagonist/gang/proc/equip_gang() // Bosses get equipped with their tools + return + +/datum/antagonist/gang/proc/update_gang_icons_added(mob/living/M) + var/datum/atom_hud/antag/gang/ganghud = GLOB.huds[gang.hud_entry_num] + if(!ganghud) + ganghud = new/datum/atom_hud/antag/gang() + gang.hud_entry_num = GLOB.huds.len+1 // this is the index the gang hud will be added at + GLOB.huds += ganghud + ganghud.color = gang.color + ganghud.join_hud(M) + set_antag_hud(M,hud_type) + +/datum/antagonist/gang/proc/update_gang_icons_removed(mob/living/M) + var/datum/atom_hud/antag/gang/ganghud = GLOB.huds[gang.hud_entry_num] + if(ganghud) + ganghud.leave_hud(M) + set_antag_hud(M, null) + +/datum/antagonist/gang/proc/can_be_converted(mob/living/candidate) + if(!candidate.mind) + return FALSE + if(!can_be_owned(candidate.mind)) + return FALSE + var/mob/living/carbon/human/H = candidate + if(!istype(H)) //Can't nonhumans + return FALSE + return TRUE + +/datum/antagonist/gang/proc/promote() // Bump up to boss + var/datum/team/gang/old_gang = gang + var/datum/mind/old_owner = owner + owner.remove_antag_datum(/datum/antagonist/gang) + var/datum/antagonist/gang/boss/lieutenant/new_boss = new + new_boss.silent = TRUE + old_owner.add_antag_datum(new_boss,old_gang) + new_boss.silent = FALSE + log_game("[key_name(old_owner)] has been promoted to Lieutenant in the [old_gang.name] Gang") + to_chat(old_owner, "You have been promoted to Lieutenant!") + + +// Admin commands +/datum/antagonist/gang/get_admin_commands() + . = ..() + .["Promote"] = CALLBACK(src,.proc/admin_promote) + .["Set Influence"] = CALLBACK(src, .proc/admin_adjust_influence) + if(gang.domination_time != NOT_DOMINATING) + .["Set domination time left"] = CALLBACK(src, .proc/set_dom_time_left) + +/datum/antagonist/gang/admin_add(datum/mind/new_owner,mob/admin) + var/new_or_existing = input(admin, "Which gang do you want to be assigned to the user?", "Gangs") as null|anything in list("New","Existing") + if(isnull(new_or_existing)) + return + else if(new_or_existing == "New") + var/newgang = input(admin, "Select a gang, or select random to pick a random one.", "New gang") as null|anything in GLOB.possible_gangs + "Random" + if(isnull(newgang)) + return + else if(newgang == "Random") + var/datum/team/gang/G = pick_n_take(GLOB.possible_gangs) + gang = new G + else + GLOB.possible_gangs -= newgang + gang = new newgang + else + if(!GLOB.gangs.len) // no gangs exist + to_chat(admin, "No gangs exist, please create a new one instead.") + return + var/existinggang = input(admin, "Select a gang, or select random to pick a random one.", "Existing gang") as null|anything in GLOB.gangs + "Random" + if(isnull(existinggang)) + return + else if(existinggang == "Random") + gang = pick(GLOB.gangs) + else + gang = existinggang + ..() + return TRUE + +/datum/antagonist/gang/proc/admin_promote(mob/admin) + message_admins("[key_name_admin(admin)] has promoted [owner] to gang boss.") + log_admin("[key_name(admin)] has promoted [owner] to boss.") + promote() + +/datum/antagonist/gang/proc/admin_adjust_influence() + var/inf = input("Influence for [gang.name]","Gang influence", gang.influence) as null | num + if(!isnull(inf)) + gang.influence = inf + message_admins("[key_name_admin(usr)] changed [gang.name]'s influence to [inf].") + log_admin("[key_name(usr)] changed [gang.name]'s influence to [inf].") + +/datum/antagonist/gang/proc/add_to_gang() + gang.add_member(owner) + owner.current.log_message("Has been converted to the [gang.name] gang!", INDIVIDUAL_ATTACK_LOG) + +/datum/antagonist/gang/proc/remove_from_gang() + gang.remove_member(owner) + owner.current.log_message("Has been deconverted from the [gang.name] gang!", INDIVIDUAL_ATTACK_LOG) + +/datum/antagonist/gang/proc/set_dom_time_left(mob/admin) + if(gang.domination_time == NOT_DOMINATING) + return // an admin shouldn't need this + var/seconds = input(admin, "Set the time left for the gang to win, in seconds", "Domination time left") as null|num + if(seconds && seconds > 0) + gang.domination_time = world.time + seconds*10 + gang.message_gangtools("Takeover shortened to [gang.domination_time_remaining()] seconds by your Syndicate benefactors.") + +// Boss type. Those can use gang tools to buy items for their gang, in particular the Dominator, used to win the gamemode, along with more gang tools to promote fellow gangsters to boss status. +/datum/antagonist/gang/boss + name = "Gang boss" + hud_type = "gang_boss" + message_name = "Leader" + +/datum/antagonist/gang/boss/on_gain() + ..() + if(gang) + gang.leaders += owner + +/datum/antagonist/gang/boss/on_removal() + if(gang) + gang.leaders -= owner + ..() + +/datum/antagonist/gang/boss/antag_listing_name() + return ..() + "(Boss)" + +/datum/antagonist/gang/boss/equip_gang(gangtool = TRUE, pen = TRUE, spraycan = TRUE, hud = TRUE) // usually has to be called separately + var/mob/living/carbon/human/H = owner.current + if(!istype(H)) + return + + var/list/slots = list ( + "backpack" = SLOT_IN_BACKPACK, + "left pocket" = SLOT_L_STORE, + "right pocket" = SLOT_R_STORE, + "hands" = SLOT_HANDS + ) + + if(gangtool) + var/obj/item/device/gangtool/G = new() + var/where = H.equip_in_one_of_slots(G, slots) + if (!where) + to_chat(H, "Your Syndicate benefactors were unfortunately unable to get you a Gangtool.") + else + G.register_device(H) + to_chat(H, "The Gangtool in your [where] will allow you to purchase weapons and equipment, send messages to your gang, and recall the emergency shuttle from anywhere on the station.") + to_chat(H, "As the gang boss, you can also promote your gang members to lieutenant. Unlike regular gangsters, Lieutenants cannot be deconverted and are able to use recruitment pens and gangtools.") + + if(pen) + var/obj/item/pen/gang/T = new() + var/where2 = H.equip_in_one_of_slots(T, slots) + if (!where2) + to_chat(H, "Your Syndicate benefactors were unfortunately unable to get you a recruitment pen to start.") + else + to_chat(H, "The recruitment pen in your [where2] will help you get your gang started. Stab unsuspecting crew members with it to recruit them.") + + if(spraycan) + var/obj/item/toy/crayon/spraycan/gang/SC = new(null,gang) + var/where3 = H.equip_in_one_of_slots(SC, slots) + if (!where3) + to_chat(H, "Your Syndicate benefactors were unfortunately unable to get you a territory spraycan to start.") + else + to_chat(H, "The territory spraycan in your [where3] can be used to claim areas of the station for your gang. The more territory your gang controls, the more influence you get. All gangsters can use these, so distribute them to grow your influence faster.") + + if(hud) + var/obj/item/clothing/glasses/hud/security/chameleon/C = new(null,gang) + var/where4 = H.equip_in_one_of_slots(C, slots) + if (!where4) + to_chat(H, "Your Syndicate benefactors were unfortunately unable to get you a chameleon security HUD.") + else + to_chat(H, "The chameleon security HUD in your [where4] will help you keep track of who is mindshield-implanted, and unable to be recruited.") + +// Admin commands for bosses +/datum/antagonist/gang/boss/admin_add(datum/mind/new_owner,mob/admin) + if(!new_owner.has_antag_datum(parent_type)) + ..() + to_chat(new_owner.current, "You are a member of the [gang.name] Gang leadership now!") + return + promote() + message_admins("[key_name_admin(admin)] has made [new_owner.current] a boss of the [gang.name] gang.") + log_admin("[key_name(admin)] has made [new_owner.current] a boss of the [gang.name] gang.") + to_chat(new_owner.current, "You are a member of the [gang.name] Gang leadership now!") + +/datum/antagonist/gang/boss/get_admin_commands() + . = ..() + . -= "Promote" + .["Take gangtool"] = CALLBACK(src,.proc/admin_take_gangtool) + .["Give gangtool"] = CALLBACK(src,.proc/admin_give_gangtool) + .["Demote"] = CALLBACK(src,.proc/admin_demote) + +/datum/antagonist/gang/boss/proc/demote() + var/old_gang = gang + var/datum/mind/old_owner = owner + silent = TRUE + owner.remove_antag_datum(/datum/antagonist/gang/boss) + var/datum/antagonist/gang/new_gangster = new /datum/antagonist/gang() + new_gangster.silent = TRUE + old_owner.add_antag_datum(new_gangster,old_gang) + new_gangster.silent = FALSE + log_game("[key_name(old_owner)] has been demoted to Gangster in the [gang.name] Gang") + to_chat(old_owner, "The gang has been disappointed of your leader traits! You are a regular gangster now!") + +/datum/antagonist/gang/boss/proc/admin_take_gangtool(mob/admin) + var/list/L = owner.current.get_contents() + var/obj/item/device/gangtool/gangtool = locate() in L + if (!gangtool) + to_chat(admin, "Deleting gangtool failed!") + return + qdel(gangtool) + +/datum/antagonist/gang/boss/proc/admin_give_gangtool(mob/admin) + equip_gang(TRUE, FALSE, FALSE, FALSE) + +/datum/antagonist/gang/boss/proc/admin_demote(datum/mind/target,mob/user) + message_admins("[key_name_admin(user)] has demoted [owner.current] from gang boss.") + log_admin("[key_name(user)] has demoted [owner.current] from gang boss.") + admin_take_gangtool(user) + demote() + +/datum/antagonist/gang/boss/lieutenant + name = "Gang Lieutenant" + message_name = "Lieutenant" + hud_type = "gang_lt" + +#define MAXIMUM_RECALLS 3 +#define INFLUENCE_INTERVAL 1200 //This handles the interval between each count of influence. +// Gang team datum. This handles the gang itself. +/datum/team/gang + name = "Gang" + member_name = "gangster" + var/hud_entry_num // because if you put something other than a number in GLOB.huds, god have mercy on your fucking soul friend + var/list/leaders = list() // bosses + var/max_leaders = MAX_LEADERS_GANG + var/list/territories = list() // territories owned by the gang. + var/list/lost_territories = list() // territories lost by the gang. + var/list/new_territories = list() // territories captured by the gang. + var/list/gangtools = list() + var/domination_time = NOT_DOMINATING + var/dom_attempts = INITIAL_DOM_ATTEMPTS + var/color + var/influence = 0 // influence of the gang, based on how many territories they own. Can be used to buy weapons and tools from a gang uplink. + var/winner // Once the gang wins with a dominator, this becomes true. For roundend credits purposes. + var/list/inner_outfits = list() + var/list/outer_outfits = list() + var/next_point_time + var/recalls = MAXIMUM_RECALLS // Once this reaches 0, this gang cannot force recall the shuttle with their gangtool anymore + +/datum/team/gang/New(starting_members) + . = ..() + GLOB.gangs += src + if(starting_members) + if(islist(starting_members)) + for(var/datum/mind/groveboss in starting_members) + leaders += groveboss + var/datum/antagonist/gang/boss/gb = new + groveboss.add_antag_datum(gb, src) + gb.equip_gang() + + else + var/datum/mind/CJ = starting_members + if(istype(CJ)) + leaders += CJ + var/datum/antagonist/gang/boss/bossdatum = new + CJ.add_antag_datum(bossdatum, src) + bossdatum.equip_gang() + next_point_time = world.time + INFLUENCE_INTERVAL + addtimer(CALLBACK(src, .proc/handle_territories), INFLUENCE_INTERVAL) + +/datum/team/gang/Destroy() + GLOB.gangs -= src + ..() + +/datum/team/gang/roundend_report() + var/list/report = list() + report += "[name]:" + if(winner) + report += "The [name] gang was successful!" + else + report += "The [name] gang has failed!" + + report += "The [name] gang bosses were:" + report += printplayerlist(leaders) + report += "The [name] [member_name]s were:" + report += printplayerlist(members-leaders) + + return "

[report.Join("
")]
" + +/datum/team/gang/proc/greet_gangster(datum/mind/gangster) + to_chat(gangster, "You are now a member of the [name] Gang!") + to_chat(gangster, "Help your bosses take over the station by claiming territory with special spraycans only they can provide. Simply spray on any unclaimed area of the station.") + to_chat(gangster, "Their ultimate objective is to take over the station with a Dominator machine.") + to_chat(gangster, "You can identify your mates by their large, \[G\] icon.") + gangster.store_memory("You are a member of the [name] Gang!") + +/datum/team/gang/proc/handle_territories() + next_point_time = world.time + INFLUENCE_INTERVAL + if(!leaders.len) + return + var/added_names = "" + var/lost_names = "" + + //Re-add territories that were reclaimed, so if they got tagged over, they can still earn income if they tag it back before the next status report + var/list/reclaimed_territories = new_territories & lost_territories + territories |= reclaimed_territories + new_territories -= reclaimed_territories + lost_territories -= reclaimed_territories + + //Process lost territories + for(var/area in lost_territories) + if(lost_names != "") + lost_names += ", " + lost_names += "[lost_territories[area]]" + territories -= area + + //Calculate and report influence growth + + //Process new territories + for(var/area in new_territories) + if(added_names != "") + added_names += ", " + added_names += "[new_territories[area]]" + territories += area + + //Report territory changes + var/message = "[src] Gang Status Report:.
*---------*
" + message += "[new_territories.len] new territories:
[added_names]
" + message += "[lost_territories.len] territories lost:
[lost_names]
" + //Clear the lists + new_territories = list() + lost_territories = list() + var/total_territories = total_claimable_territories() + var/control = round((territories.len/total_territories)*100, 1) + var/uniformed = check_clothing() + message += "Your gang now has [control]% control of the station.
*---------*
" + if(domination_time != NOT_DOMINATING) + var/new_time = max(world.time, domination_time - (uniformed * 4) - (territories.len * 2)) + if(new_time < domination_time) + message += "Takeover shortened by [(domination_time - new_time)*0.1] seconds for defending [territories.len] territories.
" + domination_time = new_time + message += "[domination_time_remaining()] seconds remain in hostile takeover.
" + else + var/new_influence = check_territory_income() + if(new_influence != influence) + message += "Gang influence has increased by [new_influence - influence] for defending [territories.len] territories and [uniformed] uniformed gangsters.
" + influence = new_influence + message += "Your gang now has [influence] influence.
" + message_gangtools(message) + addtimer(CALLBACK(src, .proc/handle_territories), INFLUENCE_INTERVAL) + +/datum/team/gang/proc/total_claimable_territories() + var/list/valid_territories = list() + for(var/z in SSmapping.levels_by_trait(ZTRAIT_STATION)) //First, collect all area types on the station zlevel + for(var/ar in SSmapping.areas_in_z["[z]"]) + var/area/A = ar + if(!(A.type in valid_territories) && A.valid_territory) + valid_territories |= A.type + return valid_territories.len + +/datum/team/gang/proc/check_territory_income() + var/new_influence = min(999,influence + 15 + (check_clothing() * 2) + territories.len) + return new_influence + +/datum/team/gang/proc/check_clothing() + //Count uniformed gangsters + var/uniformed = 0 + for(var/datum/mind/gangmind in members) + if(ishuman(gangmind.current)) + var/mob/living/carbon/human/gangster = gangmind.current + //Gangster must be alive and should return 0 not continue if conditions are met. + if(!istype(gangster) || gangster.stat == DEAD) + return 0 + + var/obj/item/clothing/outfit + var/obj/item/clothing/gang_outfit + if(gangster.w_uniform) + outfit = gangster.w_uniform + if(outfit.type in inner_outfits) + gang_outfit = outfit + if(gangster.wear_suit) + outfit = gangster.wear_suit + if(outfit.type in outer_outfits) + gang_outfit = outfit + + if(gang_outfit) + uniformed++ + return uniformed + +/datum/team/gang/proc/adjust_influence(value) + influence = max(0, influence + value) + +/datum/team/gang/proc/message_gangtools(message) + if(!gangtools.len || !message) + return + for(var/i in gangtools) + var/obj/item/device/gangtool/tool = i + var/mob/living/mob = get(tool.loc, /mob/living) + if(mob && mob.mind && mob.stat == CONSCIOUS) + var/datum/antagonist/gang/gangster = mob.mind.has_antag_datum(/datum/antagonist/gang) + if(gangster.gang == src) + to_chat(mob, "[icon2html(tool, mob)] [message]") + playsound(mob.loc, 'sound/machines/twobeep.ogg', 50, 1) + return + +/datum/team/gang/proc/domination() + domination_time = world.time + determine_domination_time()*10 + set_security_level("delta") + +/datum/team/gang/proc/determine_domination_time() // calculates the value in seconds (this is the initial domination time!) + var/total_territories = total_claimable_territories() + return max(180,480 - (round((territories.len/total_territories)*100, 1) * 9)) + +/datum/team/gang/proc/domination_time_remaining() // retrieves the value from world.time based deciseconds to seconds + var/diff = domination_time - world.time + return round(diff * 0.1) + + +#undef MAXIMUM_RECALLS +#undef INFLUENCE_INTERVAL \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_crayon.dm b/modular_citadel/code/game/gamemodes/gangs/gang_crayon.dm new file mode 100644 index 0000000000..2edc2ba945 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gang_crayon.dm @@ -0,0 +1,236 @@ +#define RANDOM_GRAFFITI "Random Graffiti" +#define RANDOM_LETTER "Random Letter" +#define RANDOM_NUMBER "Random Number" +#define RANDOM_ORIENTED "Random Oriented" +#define RANDOM_RUNE "Random Rune" +#define RANDOM_ANY "Random Anything" + +/obj/item/toy/crayon + var/datum/team/gang/gang //For marking territory, spraycans are gang-locked to their initial gang due to colors + +/obj/item/toy/crayon/afterattack(atom/target, mob/user, proximity, params) + if(!proximity || !check_allowed_items(target)) + return + + var/cost = 1 + if(paint_mode == PAINT_LARGE_HORIZONTAL) + cost = 5 + if(istype(target, /obj/item/canvas)) + cost = 0 + + if(istype(target, /obj/effect/decal/cleanable)) + target = target.loc + + if(!is_type_in_list(target,validSurfaces)) + return + + var/drawing = drawtype + switch(drawtype) + if(RANDOM_LETTER) + drawing = pick(letters) + if(RANDOM_GRAFFITI) + drawing = pick(graffiti) + if(RANDOM_RUNE) + drawing = pick(runes) + if(RANDOM_ORIENTED) + drawing = pick(oriented) + if(RANDOM_NUMBER) + drawing = pick(numerals) + if(RANDOM_ANY) + drawing = pick(all_drawables) + + var/temp = "rune" + if(drawing in letters) + temp = "letter" + else if(drawing in graffiti) + temp = "graffiti" + else if(drawing in numerals) + temp = "number" + + temp = gang_check(user,target) + if(!temp) return // hippie + var/graf_rot + if(drawing in oriented) + switch(user.dir) + if(EAST) + graf_rot = 90 + if(SOUTH) + graf_rot = 180 + if(WEST) + graf_rot = 270 + else + graf_rot = 0 + + var/list/click_params = params2list(params) + var/clickx + var/clicky + + if(click_params && click_params["icon-x"] && click_params["icon-y"]) + clickx = CLAMP(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2) + clicky = CLAMP(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) + + if(!instant) + to_chat(user, "You start drawing a [temp] on the [target.name]...") + + if(pre_noise) + audible_message("You hear spraying.") + playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5) + + var/takes_time = !instant + + var/wait_time = 50 + if(paint_mode == PAINT_LARGE_HORIZONTAL) + wait_time *= 3 + if(gang) takes_time = TRUE // hippie + if(takes_time) + if(!do_after(user, 50, target = target)) + return + + if(length(text_buffer)) + drawing = copytext(text_buffer,1,2) + + + var/list/turf/affected_turfs = list() + + if(!gang) // hippie - drawing is done in gang_final() if it's a gang type + if(actually_paints) + switch(paint_mode) + if(PAINT_NORMAL) + var/obj/effect/decal/cleanable/crayon/C = new(target, paint_color, drawing, temp, graf_rot) + C.add_hiddenprint(user) + C.pixel_x = clickx + C.pixel_y = clicky + affected_turfs += target + if(PAINT_LARGE_HORIZONTAL) + var/turf/left = locate(target.x-1,target.y,target.z) + var/turf/right = locate(target.x+1,target.y,target.z) + if(is_type_in_list(left, validSurfaces) && is_type_in_list(right, validSurfaces)) + var/obj/effect/decal/cleanable/crayon/C = new(left, paint_color, drawing, temp, graf_rot, PAINT_LARGE_HORIZONTAL_ICON) + C.add_hiddenprint(user) + affected_turfs += left + affected_turfs += right + affected_turfs += target + else + to_chat(user, "There isn't enough space to paint!") + return + else // hippie + if(gang_final(user, target, affected_turfs)) return // hippie + + if(!instant) + to_chat(user, "You finish drawing \the [temp].") + else + to_chat(user, "You spray a [temp] on \the [target.name]") + + var/charges_used = use_charges(user, cost) + if(!charges_used) + return + . = charges_used + + if(length(text_buffer)) + text_buffer = copytext(text_buffer,2) + + if(post_noise) + audible_message("You hear spraying.") + playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5) + + var/fraction = min(1, . / reagents.maximum_volume) + if(affected_turfs.len) + fraction /= affected_turfs.len + for(var/t in affected_turfs) + reagents.reaction(t, TOUCH, fraction * volume_multiplier) + reagents.trans_to(t, ., volume_multiplier) + check_empty(user) + +/obj/item/toy/crayon/proc/gang_check(mob/user, atom/target) // hooked into afterattack + var/gang_mode = FALSE + if(gang && user.mind) + var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) + if(G.gang != gang) + to_chat(user, "This spraycan's color isn't your gang's one! You cannot use it.") + return FALSE + gang_mode = TRUE + instant = FALSE + . = "graffiti" + // discontinue if the area isn't valid for tagging because gang "honour" + if(gang_mode && (!can_claim_for_gang(user, target))) + return FALSE + +/obj/item/toy/crayon/proc/gang_final(mob/user, atom/target, list/affected_turfs) // hooked into afterattack + // Double check it wasn't tagged in the meanwhile + if(!can_claim_for_gang(user, target)) + return TRUE + tag_for_gang(user, target) + affected_turfs += target + +/obj/item/toy/crayon/proc/can_claim_for_gang(mob/user, atom/target) + // Check area validity. + // Reject space, player-created areas, and non-station z-levels. + var/area/A = get_area(target) + if(!A || (!is_station_level(A.z)) || !A.valid_territory) + to_chat(user, "[A] is unsuitable for tagging.") + return FALSE + + var/spraying_over = FALSE + for(var/G in target) + var/obj/effect/decal/cleanable/crayon/gang/gangtag = G + if(istype(gangtag)) + var/datum/antagonist/gang/GA = user.mind.has_antag_datum(/datum/antagonist/gang) + if(gangtag.gang != GA.gang) + spraying_over = TRUE + break + + for(var/obj/machinery/power/apc in target) + to_chat(user, "You can't tag an APC.") + return FALSE + + var/occupying_gang = territory_claimed(A, user) + if(occupying_gang && !spraying_over) + to_chat(user, "[A] has already been tagged by the [occupying_gang] gang! You must get rid of or spray over the old tag first!") + return FALSE + + // If you pass the gaunlet of checks, you're good to proceed + return TRUE + +/obj/item/toy/crayon/proc/territory_claimed(area/territory, mob/user) + for(var/datum/team/gang/G in GLOB.gangs) + if(territory.type in (G.territories|G.new_territories)) + . = G.name + break + +/obj/item/toy/crayon/proc/tag_for_gang(mob/user, atom/target) + //Delete any old markings on this tile, including other gang tags + for(var/obj/effect/decal/cleanable/crayon/old_marking in target) + qdel(old_marking) + + var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) + var/area/territory = get_area(target) + + new /obj/effect/decal/cleanable/crayon/gang(target,G.gang,"graffiti",0,user) + to_chat(user, "You tagged [territory] for your gang!") + +/obj/item/toy/crayon/spraycan/gang + //desc = "A modified container containing suspicious paint." + charges = 20 + gang = TRUE + + pre_noise = FALSE + post_noise = TRUE + +/obj/item/toy/crayon/spraycan/gang/Initialize(loc, datum/team/gang/G) + ..() + if(G) + gang = G + paint_color = G.color + update_icon() + +/obj/item/toy/crayon/spraycan/gang/examine(mob/user) + . = ..() + if(user.mind && user.mind.has_antag_datum(/datum/antagonist/gang) || isobserver(user)) + to_chat(user, "This spraycan has been specially modified for tagging territory.") + +#undef RANDOM_GRAFFITI +#undef RANDOM_LETTER +#undef RANDOM_NUMBER +#undef RANDOM_ORIENTED +#undef RANDOM_RUNE +#undef RANDOM_ANY \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm b/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm new file mode 100644 index 0000000000..66dfdd0ca3 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm @@ -0,0 +1,139 @@ +// Gang datums go here. If you want to create a new gang, you must be sure to edit: +// name +// color (must be a hex, "blue" isn't acceptable due to how spraycans are handled) +// inner_outfits (must be a list() with typepaths of the clothes in it. One is fine, but there is support for multiple: one will be picked at random when bought) +// outer_outfits (same as above) +// You also need to make a gang graffiti, that will go in crayondecal.dmi inside our icons(not tg's), with the same name of the gang it's assigned to. Nothing else,just the icon. +// Those are all required. If one is missed, stuff could break. + +/datum/team/gang/clandestine + name = "Clandestine" + color = "#FF0000" + inner_outfits = list(/obj/item/clothing/under/syndicate/combat) + outer_outfits = list(/obj/item/clothing/suit/jacket) + +/datum/team/gang/prima + name = "Prima" + color = "#FFFF00" + inner_outfits = list(/obj/item/clothing/under/color/yellow) + outer_outfits = list(/obj/item/clothing/suit/hastur) + +/datum/team/gang/zerog + name = "Zero-G" + color = "#C0C0C0" + inner_outfits = list(/obj/item/clothing/under/suit_jacket/white) + outer_outfits = list(/obj/item/clothing/suit/hooded/wintercoat) + +/datum/team/gang/max + name = "Max" + color = "#800000" + inner_outfits = list(/obj/item/clothing/under/color/maroon) + outer_outfits = list(/obj/item/clothing/suit/poncho/red) + +/datum/team/gang/blasto + name = "Blasto" + color = "#000080" + inner_outfits = list(/obj/item/clothing/under/suit_jacket/navy) + outer_outfits = list(/obj/item/clothing/suit/jacket/miljacket) + +/datum/team/gang/waffle + name = "Waffle" + color = "#808000" + inner_outfits = list(/obj/item/clothing/under/suit_jacket/green) + outer_outfits = list(/obj/item/clothing/suit/poncho) + +/datum/team/gang/north + name = "North" + color = "#00FF00" + inner_outfits = list(/obj/item/clothing/under/color/green) + outer_outfits = list(/obj/item/clothing/suit/poncho/green) + +/datum/team/gang/omni + name = "Omni" + color = "#008080" + inner_outfits = list(/obj/item/clothing/under/color/teal) + outer_outfits = list(/obj/item/clothing/suit/studentuni) + +/datum/team/gang/newton + name = "Newton" + color = "#A52A2A" + inner_outfits = list(/obj/item/clothing/under/color/brown) + outer_outfits = list(/obj/item/clothing/suit/toggle/owlwings) + +/datum/team/gang/cyber + name = "Cyber" + color = "#808000" + inner_outfits = list(/obj/item/clothing/under/color/lightbrown) + outer_outfits = list(/obj/item/clothing/suit/nemes) + +/datum/team/gang/donk + name = "Donk" + color = "#0000FF" + inner_outfits = list(/obj/item/clothing/under/color/darkblue) + outer_outfits = list(/obj/item/clothing/suit/apron/overalls) + +/datum/team/gang/gene + name = "Gene" + color = "#00FFFF" + inner_outfits = list(/obj/item/clothing/under/color/blue) + outer_outfits = list(/obj/item/clothing/suit/apron) + +/datum/team/gang/gib + name = "Gib" + color = "#636060" //Applying black to grayscale... Zero-G is already grey too. + inner_outfits = list(/obj/item/clothing/under/color/black) + outer_outfits = list(/obj/item/clothing/suit/jacket/leather/overcoat) + +/datum/team/gang/tunnel + name = "Tunnel" + color = "#FF00FF" + inner_outfits = list(/obj/item/clothing/under/villain) + outer_outfits = list(/obj/item/clothing/suit/poncho/ponchoshame) + +/datum/team/gang/diablo + name = "Diablo" + color = "#FF0000" + inner_outfits = list(/obj/item/clothing/under/color/red) + outer_outfits = list(/obj/item/clothing/suit/jacket/leather) + +/datum/team/gang/psyke + name = "Psyke" + color = "#808080" + inner_outfits = list(/obj/item/clothing/under/color/grey) + outer_outfits = list(/obj/item/clothing/suit/toggle/owlwings/griffinwings) + +/datum/team/gang/osiron + name = "Osiron" + color = "#FFFFFF" + inner_outfits = list(/obj/item/clothing/under/color/white) + outer_outfits = list(/obj/item/clothing/suit/toggle/labcoat) + +/datum/team/gang/sirius + name = "Sirius" + color = "#FFC0CB" + inner_outfits = list(/obj/item/clothing/under/color/pink) + outer_outfits = list(/obj/item/clothing/suit/jacket/puffer/vest) + +/datum/team/gang/sleepingcarp + name = "Sleeping Carp" + color = "#800080" + inner_outfits = list(/obj/item/clothing/under/color/lightpurple) + outer_outfits = list(/obj/item/clothing/suit/hooded/carp_costume) + +/datum/team/gang/h + name = "H" + color = "#993333" + inner_outfits = list(/obj/item/clothing/under/jabroni) //Why not? + outer_outfits = list(/obj/item/clothing/suit/toggle/owlwings) + +/datum/team/gang/rigatonifamily + name = "Rigatoni family" + color = "#cc9900" // p a s t a colored + inner_outfits = list(/obj/item/clothing/under/rank/chef) + outer_outfits = list(/obj/item/clothing/suit/apron/chef) + +/datum/team/gang/weed + name = "Weed" + color = "#66ff33" + inner_outfits = list(/obj/item/clothing/under/color/darkgreen) + outer_outfits = list(/obj/item/clothing/suit/vapeshirt) \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_decals.dm b/modular_citadel/code/game/gamemodes/gangs/gang_decals.dm new file mode 100644 index 0000000000..6e5cb58891 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gang_decals.dm @@ -0,0 +1,38 @@ +/obj/effect/decal/cleanable/crayon/Initialize(mapload, main, type, e_name, graf_rot, alt_icon = null) + . = ..() + if(type == "poseur tag") + var/datum/team/gang/gang = pick(subtypesof(/datum/team/gang)) + var/gangname = initial(gang.name) + icon = 'icons/effects/crayondecal.dmi' + icon_state = "[gangname]" + type = null + +/obj/effect/decal/cleanable/crayon/gang + icon = 'icons/effects/crayondecal.dmi' + layer = ABOVE_NORMAL_TURF_LAYER //Harder to hide + plane = GAME_PLANE + do_icon_rotate = FALSE //These are designed to always face south, so no rotation please. + var/datum/team/gang/gang + +/obj/effect/decal/cleanable/crayon/gang/Initialize(mapload, datum/team/gang/G, e_name = "gang tag", rotation = 0, mob/user) + if(!G) + return INITIALIZE_HINT_QDEL + gang = G + var/newcolor = G.color + var/area/territory = get_area(src) + icon_state = G.name + G.new_territories |= list(territory.type = territory.name) + //If this isn't tagged by a specific gangster there's no bonus income. + .=..(mapload, newcolor, icon_state, e_name, rotation) + +/obj/effect/decal/cleanable/crayon/gang/Destroy() + if(gang) + var/area/territory = get_area(src) + gang.territories -= territory.type + gang.new_territories -= territory.type + gang.lost_territories |= list(territory.type = territory.name) + gang = null + return ..() + +/obj/effect/decal/cleanable/crayon/NeverShouldHaveComeHere(turf/T) + return isspaceturf(T) || islava(T) || istype(T, /turf/open/water) || ischasm(T) \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_hud.dm b/modular_citadel/code/game/gamemodes/gangs/gang_hud.dm new file mode 100644 index 0000000000..3fde6d4123 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gang_hud.dm @@ -0,0 +1,34 @@ +/datum/atom_hud/antag/gang + var/color = null + +/datum/atom_hud/antag/gang/add_to_hud(atom/A) + if(!A) + return + var/image/holder = A.hud_list[ANTAG_HUD] + if(holder) + holder.color = color + ..() + +/datum/atom_hud/antag/gang/remove_from_hud(atom/A) + if(!A) + return + var/image/holder = A.hud_list[ANTAG_HUD] + if(holder) + holder.color = null + ..() + +/datum/atom_hud/antag/gang/join_hud(mob/M) + if(!istype(M)) + CRASH("join_hud(): [M] ([M.type]) is not a mob!") + var/image/holder = M.hud_list[ANTAG_HUD] + if(holder) + holder.color = color + ..() + +/datum/atom_hud/antag/gang/leave_hud(mob/M) + if(!istype(M)) + CRASH("leave_hud(): [M] ([M.type]) is not a mob!") + var/image/holder = M.hud_list[ANTAG_HUD] + if(holder) + holder.color = null + ..() \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_items.dm b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm new file mode 100644 index 0000000000..ceb08b3da3 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm @@ -0,0 +1,404 @@ +/datum/gang_item + var/name + var/item_path + var/cost + var/spawn_msg + var/category + var/list/gang_whitelist = list() + var/list/gang_blacklist = list() + var/id + +/datum/gang_item/proc/purchase(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool, check_canbuy = TRUE) + if(check_canbuy && !can_buy(user, gang, gangtool)) + return FALSE + var/real_cost = get_cost(user, gang, gangtool) + if(!spawn_item(user, gang, gangtool)) + gang.adjust_influence(-real_cost) + to_chat(user, "You bought \the [name].") + return TRUE + +/datum/gang_item/proc/spawn_item(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) // If this returns anything other than null, something fucked up and influence won't lower. + if(item_path) + var/obj/item/O = new item_path(user.loc) + user.put_in_hands(O) + else + return TRUE + if(spawn_msg) + to_chat(user, "[spawn_msg]") + +/datum/gang_item/proc/can_buy(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + return gang && (gang.influence >= get_cost(user, gang, gangtool)) && can_see(user, gang, gangtool) + +/datum/gang_item/proc/can_see(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + return TRUE + +/datum/gang_item/proc/get_cost(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + return cost + +/datum/gang_item/proc/get_cost_display(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + return "([get_cost(user, gang, gangtool)] Influence)" + +/datum/gang_item/proc/get_name_display(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + return name + +/datum/gang_item/proc/get_extra_info(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + return + +/////////////////// +//CLOTHING +/////////////////// + +/datum/gang_item/clothing + category = "Purchase Gang Clothes (Only the jumpsuit and suit give you added influence):" + +/datum/gang_item/clothing/under + name = "Gang Uniform" + id = "under" + cost = 1 + +/datum/gang_item/clothing/under/spawn_item(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(gang.inner_outfits.len) + var/outfit = pick(gang.inner_outfits) + if(outfit) + var/obj/item/O = new outfit(user.loc) + user.put_in_hands(O) + to_chat(user, " This is your gang's official uniform, wearing it will increase your influence") + return + return TRUE + +/datum/gang_item/clothing/suit + name = "Gang Armored Outerwear" + id = "suit" + cost = 1 + +/datum/gang_item/clothing/suit/spawn_item(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(gang.outer_outfits.len) + var/outfit = pick(gang.outer_outfits) + if(outfit) + var/obj/item/O = new outfit(user.loc) + O.armor = O.armor.setRating(melee = 20, bullet = 35, laser = 10, energy = 10, bomb = 30, bio = 0, rad = 0, fire = 30, acid = 30) + O.desc += " Tailored for the [gang.name] Gang to offer the wearer moderate protection against ballistics and physical trauma." + user.put_in_hands(O) + to_chat(user, " This is your gang's official outerwear, wearing it will increase your influence") + return + return TRUE + + +/datum/gang_item/clothing/hat + name = "Pimp Hat" + id = "hat" + cost = 16 + item_path = /obj/item/clothing/head/collectable/petehat/gang + + +/obj/item/clothing/head/collectable/petehat/gang + name = "pimpin' hat" + desc = "The undisputed king of style." + +/datum/gang_item/clothing/mask + name = "Golden Death Mask" + id = "mask" + cost = 18 + item_path = /obj/item/clothing/mask/gskull + +/obj/item/clothing/mask/gskull + name = "golden death mask" + icon_state = "gskull" + desc = "Strike terror, and envy, into the hearts of your enemies." + +/datum/gang_item/clothing/shoes + name = "Bling Boots" + id = "boots" + cost = 22 + item_path = /obj/item/clothing/shoes/gang + +/obj/item/clothing/shoes/gang + name = "blinged-out boots" + desc = "Stand aside peasants." + icon_state = "bling" + +/datum/gang_item/clothing/neck + name = "Gold Necklace" + id = "necklace" + cost = 9 + item_path = /obj/item/clothing/neck/necklace/dope + +/datum/gang_item/clothing/hands + name = "Decorative Brass Knuckles" + id = "hand" + cost = 11 + item_path = /obj/item/clothing/gloves/gang + +/obj/item/clothing/gloves/gang + name = "braggadocio's brass knuckles" + desc = "Purely decorative, don't find out the hard way." + icon_state = "knuckles" + w_class = 3 + +/datum/gang_item/clothing/belt + name = "Badass Belt" + id = "belt" + cost = 13 + item_path = /obj/item/storage/belt/military/gang + +/obj/item/storage/belt/military/gang + name = "badass belt" + icon_state = "gangbelt" + item_state = "gang" + desc = "The belt buckle simply reads 'BAMF'." + +/////////////////// +//WEAPONS +/////////////////// + +/datum/gang_item/weapon + category = "Purchase Weapons:" + +/datum/gang_item/weapon/ammo + +/datum/gang_item/weapon/shuriken + name = "Shuriken" + id = "shuriken" + cost = 2 + item_path = /obj/item/throwing_star + +/datum/gang_item/weapon/switchblade + name = "Switchblade" + id = "switchblade" + cost = 5 + item_path = /obj/item/switchblade + +/datum/gang_item/weapon/surplus + name = "Surplus Rifle" + id = "surplus" + cost = 7 + item_path = /obj/item/gun/ballistic/automatic/surplus + +/datum/gang_item/weapon/ammo/surplus_ammo + name = "Surplus Rifle Ammo" + id = "surplus_ammo" + cost = 5 + item_path = /obj/item/ammo_box/magazine/m10mm/rifle + +/datum/gang_item/weapon/improvised + name = "Sawn-Off Improvised Shotgun" + id = "sawn" + cost = 6 + item_path = /obj/item/gun/ballistic/revolver/doublebarrel/improvised/sawn + +/datum/gang_item/weapon/ammo/improvised_ammo + name = "Box of Buckshot" + id = "buckshot" + cost = 5 + item_path = /obj/item/storage/box/lethalshot + +/datum/gang_item/weapon/pistol + name = "10mm Pistol" + id = "pistol" + cost = 25 + item_path = /obj/item/gun/ballistic/automatic/pistol + +/datum/gang_item/weapon/ammo/pistol_ammo + name = "10mm Ammo" + id = "pistol_ammo" + cost = 10 + item_path = /obj/item/ammo_box/magazine/m10mm + +/datum/gang_item/weapon/sniper + name = "Black Market .50cal Sniper Rifle" + id = "sniper" + cost = 40 + item_path = /obj/item/gun/ballistic/automatic/sniper_rifle + +/datum/gang_item/weapon/ammo/sniper_ammo + name = "Smuggled .50cal Sniper Rounds" + id = "sniper_ammo" + cost = 15 + item_path = /obj/item/ammo_box/magazine/sniper_rounds + +/datum/gang_item/weapon/ammo/sleeper_ammo + name = "Illicit Soporific Cartridges" + id = "sniper_ammo" + cost = 15 + item_path = /obj/item/ammo_box/magazine/sniper_rounds/soporific + +/datum/gang_item/weapon/machinegun + name = "Mounted Machine Gun" + id = "MG" + cost = 50 + item_path = /obj/machinery/manned_turret + spawn_msg = "The mounted machine gun features enhanced responsiveness. Hold down on the trigger while firing to control where you're shooting." + +/datum/gang_item/weapon/machinegun/spawn_item(mob/living/carbon/user, obj/item/device/gangtool/gangtool) + new item_path(user.loc) + to_chat(user, spawn_msg) + +/datum/gang_item/weapon/uzi + name = "Uzi SMG" + id = "uzi" + cost = 60 + item_path = /obj/item/gun/ballistic/automatic/mini_uzi + +/datum/gang_item/weapon/ammo/uzi_ammo + name = "Uzi Ammo" + id = "uzi_ammo" + cost = 30 + item_path = /obj/item/ammo_box/magazine/uzim9mm + +/////////////////// +//EQUIPMENT +/////////////////// + +/datum/gang_item/equipment + category = "Purchase Equipment:" + + +/datum/gang_item/equipment/spraycan + name = "Territory Spraycan" + id = "spraycan" + cost = 5 + item_path = /obj/item/toy/crayon/spraycan/gang + +/datum/gang_item/equipment/spraycan/spawn_item(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + var/obj/item/O = new item_path(user.loc, gang) + user.put_in_hands(O) + +/datum/gang_item/equipment/sharpener + name = "Sharpener" + id = "whetstone" + cost = 3 + item_path = /obj/item/sharpener + + +/datum/gang_item/equipment/emp + name = "EMP Grenade" + id = "EMP" + cost = 7 + item_path = /obj/item/grenade/empgrenade + +/datum/gang_item/equipment/c4 + name = "C4 Explosive" + id = "c4" + cost = 7 + item_path = /obj/item/grenade/plastic/c4 + +/datum/gang_item/equipment/frag + name = "Fragmentation Grenade" + id = "frag nade" + cost = 7 + item_path = /obj/item/grenade/syndieminibomb/concussion/frag + +/datum/gang_item/equipment/stimpack + name = "Black Market Stimulants" + id = "stimpack" + cost = 12 + item_path = /obj/item/reagent_containers/syringe/stimulants + +/datum/gang_item/equipment/implant_breaker + name = "Implant Breaker" + id = "implant_breaker" + cost = 10 + item_path = /obj/item/implanter/gang + +/datum/gang_item/equipment/implant_breaker/spawn_item(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + var/obj/item/O = new item_path(user.loc, gang) + user.put_in_hands(O) + to_chat(user, "The implant breaker is a single-use device that destroys all implants within the target before trying to recruit them to your gang. Also works on enemy gangsters.") + +/datum/gang_item/equipment/wetwork_boots + name = "Wetwork boots" + id = "wetwork" + cost = 12 + item_path = /obj/item/clothing/shoes/combat/gang + +/obj/item/clothing/shoes/combat/gang + name = "Wetwork boots" + desc = "A gang's best hitmen are prepared for anything." + permeability_coefficient = 0.01 + clothing_flags = NOSLIP + +/datum/gang_item/equipment/pen + name = "Recruitment Pen" + id = "pen" + cost = 25 + item_path = /obj/item/pen/gang + spawn_msg = "More recruitment pens will allow you to recruit gangsters faster. Only gang leaders can recruit with pens." + +/datum/gang_item/equipment/pen/purchase(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(..()) + gangtool.free_pen = FALSE + return TRUE + return FALSE + +/datum/gang_item/equipment/pen/get_cost(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(gangtool && gangtool.free_pen) + return 0 + return ..() + +/datum/gang_item/equipment/pen/get_cost_display(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(gangtool && gangtool.free_pen) + return "(GET ONE FREE)" + return ..() + + +/datum/gang_item/equipment/gangtool + id = "gangtool" + cost = 10 + +/datum/gang_item/equipment/gangtool/spawn_item(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + var/item_type + if(gang) + item_type = /obj/item/device/gangtool/spare/lt + if(gang.leaders.len < MAX_LEADERS_GANG) + to_chat(user, "Gangtools allow you to promote a gangster to be your Lieutenant, enabling them to recruit and purchase items like you. Simply have them register the gangtool. You may promote up to [MAX_LEADERS_GANG-gang.leaders.len] more Lieutenants") + else + item_type = /obj/item/device/gangtool/spare + var/obj/item/device/gangtool/spare/tool = new item_type(user.loc) + user.put_in_hands(tool) + +/datum/gang_item/equipment/gangtool/get_name_display(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(gang && (gang.leaders.len < gang.max_leaders)) + return "Promote a Gangster" + return "Spare Gangtool" + +/datum/gang_item/equipment/dominator + name = "Station Dominator" + id = "dominator" + cost = 30 + item_path = /obj/machinery/dominator + spawn_msg = "The dominator will secure your gang's dominance over the station. Turn it on when you are ready to defend it." + +/datum/gang_item/equipment/dominator/can_buy(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(!gang || !gang.dom_attempts) + return FALSE + return ..() + +/datum/gang_item/equipment/dominator/get_name_display(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(!gang || !gang.dom_attempts) + return ..() + return "[..()]" + +/datum/gang_item/equipment/dominator/get_cost_display(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(!gang || !gang.dom_attempts) + return "(Out of stock)" + return ..() + +/datum/gang_item/equipment/dominator/get_extra_info(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(gang) + return "This device requires a 5x5 area clear of walls to work. (Estimated Takeover Time: [round(gang.determine_domination_time()/60,0.1)] minutes)" + +/datum/gang_item/equipment/dominator/purchase(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + var/area/userarea = get_area(user) + if(!(userarea.type in gang.territories|gang.new_territories)) + to_chat(user,"The dominator can be spawned only on territory controlled by your gang!") + return FALSE + for(var/obj/obj in get_turf(user)) + if(obj.density) + to_chat(user, "There's not enough room here!") + return FALSE + + return ..() + +/datum/gang_item/equipment/dominator/spawn_item(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + new item_path(user.loc) + to_chat(user, spawn_msg) \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_pen.dm b/modular_citadel/code/game/gamemodes/gangs/gang_pen.dm new file mode 100644 index 0000000000..ceb780a8c5 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gang_pen.dm @@ -0,0 +1,58 @@ +/* + * Gang Boss Pens + */ +/obj/item/pen/gang + var/cooldown + var/last_used + +/obj/item/pen/gang/Initialize() + . = ..() + last_used = world.time + +/obj/item/pen/gang/attack(mob/living/M, mob/user, stealth = TRUE) + if(!istype(M)) + return + if(!ishuman(M) || !ishuman(user) || M.stat == DEAD) + return ..() + var/datum/antagonist/gang/boss/L = user.mind.has_antag_datum(/datum/antagonist/gang/boss) + if(!L) + return ..() + if(!..()) + return + if(cooldown) + to_chat(user, "[src] needs more time to recharge before it can be used.") + return + if(!M.client || !M.mind) + to_chat(user, "A braindead gangster is an useless gangster!") + return + var/datum/team/gang/gang = L.gang + if(!add_gangster(user, gang, M.mind)) + return + cooldown = TRUE + icon_state = "pen_blink" + var/cooldown_time = 600/gang.leaders.len + addtimer(CALLBACK(src, .proc/cooldown), cooldown_time) + +/obj/item/pen/gang/proc/cooldown() + cooldown = FALSE + icon_state = "pen" + var/mob/M = loc + if(istype(M)) + to_chat(M, "[icon2html(src, M)] [src][(loc == M)?(""):(" in your [loc]")] vibrates softly. It is ready to be used again.") + +/obj/item/pen/gang/proc/add_gangster(mob/user, datum/team/gang/gang, datum/mind/gangster_mind, check = TRUE) // Basically a wrapper to add_antag_datum. + var/datum/antagonist/dudegang = gangster_mind.has_antag_datum(/datum/antagonist/gang) + if(dudegang) + if(dudegang == gang) + to_chat(user, "This mind is already controlled by your gang!") + return + to_chat(user, "This mind is already controlled by someone else!") + return + if(check && gangster_mind.current.has_trait(TRAIT_MINDSHIELD)) //Check to see if the potential gangster is implanted + to_chat(user, "This mind is too strong to control!") + return + var/mob/living/carbon/human/H = gangster_mind.current // we are sure the dude's human cause it's checked in attack() + H.silent = max(H.silent, 5) + H.Knockdown(100) + gangster_mind.add_antag_datum(/datum/antagonist/gang, gang) + return TRUE \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gangs.dm b/modular_citadel/code/game/gamemodes/gangs/gangs.dm new file mode 100644 index 0000000000..639296c628 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gangs.dm @@ -0,0 +1,59 @@ +//gang.dm +//Gang War Game Mode +GLOBAL_LIST_INIT(possible_gangs, subtypesof(/datum/team/gang)) +GLOBAL_LIST_EMPTY(gangs) +/datum/game_mode/gang + name = "gang war" + config_tag = "gang" + antag_flag = ROLE_GANG + restricted_jobs = list("Security Officer", "Warden", "Detective", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security") + required_players = 1 + required_enemies = 0 + recommended_enemies = 2 + enemy_minimum_age = 14 + + announce_span = "danger" + announce_text = "A violent turf war has erupted on the station!\n\ + Gangsters: Take over the station with a dominator.\n\ + Crew: Prevent the gangs from expanding and initiating takeover." + + var/list/datum/mind/gangboss_candidates = list() + +/datum/game_mode/gang/pre_setup() + if(CONFIG_GET(flag/protect_roles_from_antagonist)) + restricted_jobs += protected_jobs + + if(CONFIG_GET(flag/protect_assistant_from_antagonist)) + restricted_jobs += "Assistant" + + //Spawn more bosses depending on server population + var/gangs_to_create = 2 + if(prob(num_players()) && num_players() > 1.5*required_players) + gangs_to_create++ + if(prob(num_players()) && num_players() > 2*required_players) + gangs_to_create++ + gangs_to_create = min(gangs_to_create, GLOB.possible_gangs.len) + + for(var/i in 1 to gangs_to_create) + if(!antag_candidates.len) + break + + //Now assign a boss for the gang + var/datum/mind/boss = pick_n_take(antag_candidates) + antag_candidates -= boss + gangboss_candidates += boss + boss.restricted_roles = restricted_jobs + + if(gangboss_candidates.len < 1) //Need at least one gangs + return + + return TRUE + +/datum/game_mode/gang/post_setup() + set waitfor = FALSE + ..() + for(var/i in gangboss_candidates) + var/datum/mind/M = i + var/datum/antagonist/gang/boss/B = new() + M.add_antag_datum(B) + B.equip_gang() diff --git a/modular_citadel/code/game/gamemodes/gangs/gangtool.dm b/modular_citadel/code/game/gamemodes/gangs/gangtool.dm new file mode 100644 index 0000000000..9e828a7042 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gangtool.dm @@ -0,0 +1,259 @@ +//gangtool device +/obj/item/device/gangtool + name = "suspicious device" + desc = "A strange device of sorts. Hard to really make out what it actually does if you don't know how to operate it." + icon = 'icons/obj/device.dmi' + icon_state = "gangtool" + item_state = "radio" + lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' + throwforce = 0 + w_class = WEIGHT_CLASS_TINY + throw_speed = 3 + throw_range = 7 + flags_1 = CONDUCT_1 + var/datum/team/gang/gang //Which gang uses this? + var/recalling = 0 + var/outfits = 2 + var/free_pen = 0 + var/promotable = FALSE + var/static/list/buyable_items = list() + var/list/tags = list() + +/obj/item/device/gangtool/Initialize() + . = ..() + update_icon() + for(var/i in subtypesof(/datum/gang_item)) + var/datum/gang_item/G = i + var/id = initial(G.id) + var/cat = initial(G.category) + if(id) + if(!islist(buyable_items[cat])) + buyable_items[cat] = list() + buyable_items[cat][id] = new G +/obj/item/device/gangtool/Destroy() + if(gang) + gang.gangtools -= src + return ..() + +/obj/item/device/gangtool/attack_self(mob/user) + ..() + if (!can_use(user)) + return + var/datum/antagonist/gang/boss/L = user.mind.has_antag_datum(/datum/antagonist/gang/boss) + var/dat + if(!gang) + dat += "This device is not registered.

" + if(L) + if(promotable && L.gang.leaders.len < L.gang.max_leaders) + dat += "Give this device to another member of your organization to use to promote them to Lieutenant.

" + dat += "If this is meant as a spare device for yourself:
" + dat += "Register Device as Spare
" + else if(promotable) + var/datum/antagonist/gang/sweet = user.mind.has_antag_datum(/datum/antagonist/gang) + if(sweet.gang.leaders.len < sweet.gang.max_leaders) + dat += "You have been selected for a promotion!
" + dat += "Accept Promotion
" + else + dat += "No promotions available: All positions filled.
" + else + dat += "This device is not authorized to promote.
" + else + if(gang.domination_time != NOT_DOMINATING) + dat += "
Takeover In Progress:
[DisplayTimeText(gang.domination_time_remaining() * 10)] remain
" + + dat += "Registration: [gang.name] Gang Boss
" + dat += "Organization Size: [gang.members.len] | Station Control: [gang.territories.len] territories under control. | Influence: [gang.influence]
" + dat += "Time until Influence grows: [time2text(gang.next_point_time - world.time, "mm:ss")]
" + dat += "Send message to Gang
" + dat += "Recall shuttle
" + dat += "
" + for(var/cat in buyable_items) + dat += "[cat]
" + for(var/id in buyable_items[cat]) + var/datum/gang_item/G = buyable_items[cat][id] + if(!G.can_see(user, gang, src)) + continue + + var/cost = G.get_cost_display(user, gang, src) + if(cost) + dat += cost + " " + + var/toAdd = G.get_name_display(user, gang, src) + if(G.can_buy(user, gang, src)) + toAdd = "[toAdd]" + dat += toAdd + var/extra = G.get_extra_info(user, gang, src) + if(extra) + dat += "
[extra]" + dat += "
" + dat += "
" + + dat += "Refresh
" + + var/datum/browser/popup = new(user, "gangtool", "Welcome to GangTool v4.0", 340, 625) + popup.set_content(dat) + popup.open() + +/obj/item/device/gangtool/Topic(href, href_list) + if(!can_use(usr)) + return + + add_fingerprint(usr) + + if(href_list["register"]) + register_device(usr) + + else if(!gang) //Gangtool must be registered before you can use the functions below + return + + if(href_list["purchase"]) + if(islist(buyable_items[href_list["cat"]])) + var/list/L = buyable_items[href_list["cat"]] + var/datum/gang_item/G = L[href_list["id"]] + if(G && G.can_buy(usr, gang, src)) + G.purchase(usr, gang, src, FALSE) + + if(href_list["commute"]) + ping_gang(usr) + if(href_list["recall"]) + recall(usr) + attack_self(usr) + +/obj/item/device/gangtool/update_icon() + overlays.Cut() + var/image/I = new(icon, "[icon_state]-overlay") + if(gang) + I.color = gang.color + overlays.Add(I) + +/obj/item/device/gangtool/proc/ping_gang(mob/user) + if(!can_use(user)) + return + var/message = stripped_input(user,"Discreetly send a gang-wide message.","Send Message") as null|text + if(!message || !can_use(user)) + return + if(!is_station_level(user.z)) + to_chat(user, "[icon2html(src, user)]Error: Station out of range.") + return + if(gang.members.len) + var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) + if(!G) + return + var/ping = "[gang.name] [G.message_name] [user.real_name]: [message]" + for(var/datum/mind/ganger in gang.members) + if(ganger.current && is_station_level(ganger.current.z) && (ganger.current.stat == CONSCIOUS)) + to_chat(ganger.current, ping) + for(var/mob/M in GLOB.dead_mob_list) + var/link = FOLLOW_LINK(M, user) + to_chat(M, "[link] [ping]") + user.log_talk(message,LOG_SAY, tag="[gang.name] gangster") + +/obj/item/device/gangtool/proc/register_device(mob/user) + if(gang) //It's already been registered! + return + var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) + if(G) + gang = G.gang + gang.gangtools += src + update_icon() + if(!(user.mind in gang.leaders) && promotable) + G.promote() + free_pen = TRUE + gang.message_gangtools("[user] has been promoted to Lieutenant.") + to_chat(user, "The Gangtool you registered will allow you to purchase weapons and equipment, and send messages to your gang.") + to_chat(user, "Unlike regular gangsters, you may use recruitment pens to add recruits to your gang. Use them on unsuspecting crew members to recruit them. Don't forget to get your one free pen from the gangtool.") + else + to_chat(user, "ACCESS DENIED: Unauthorized user.") + +/obj/item/device/gangtool/proc/recall(mob/user) + if(!recallchecks(user)) + return + if(recalling) + to_chat(user, "Error: Recall already in progress.") + return + gang.message_gangtools("[user] is attempting to recall the emergency shuttle.") + recalling = TRUE + to_chat(user, "[icon2html(src, loc)]Generating shuttle recall order with codes retrieved from last call signal...") + addtimer(CALLBACK(src, .proc/recall2, user), rand(100,300)) + +/obj/item/device/gangtool/proc/recall2(mob/user) + if(!recallchecks(user)) + return + to_chat(user, "[icon2html(src, loc)]Shuttle recall order generated. Accessing station long-range communication arrays...") + addtimer(CALLBACK(src, .proc/recall3, user), rand(100,300)) + +/obj/item/device/gangtool/proc/recall3(mob/user) + if(!recallchecks(user)) + return + var/list/living_crew = list()//shamelessly copied from mulligan code, there should be a helper for this + for(var/mob/Player in GLOB.mob_list) + if(Player.mind && Player.stat != DEAD && !isnewplayer(Player) && !isbrain(Player) && Player.client) + living_crew += Player + var/malc = CONFIG_GET(number/midround_antag_life_check) + if(living_crew.len / GLOB.joined_player_list.len <= malc) //Shuttle cannot be recalled if too many people died + to_chat(user, "[icon2html(src, user)]Error: Station communication systems compromised. Unable to establish connection.") + recalling = FALSE + return + to_chat(user, "[icon2html(src, loc)]Comm arrays accessed. Broadcasting recall signal...") + addtimer(CALLBACK(src, .proc/recallfinal, user), rand(100,300)) + +/obj/item/device/gangtool/proc/recallfinal(mob/user) + if(!recallchecks(user)) + return + recalling = FALSE + log_game("[key_name(user)] has tried to recall the shuttle with a gangtool.") + message_admins("[key_name_admin(user)] has tried to recall the shuttle with a gangtool.", 1) + if(SSshuttle.cancelEvac(user)) + gang.recalls-- + return TRUE + + to_chat(user, "[icon2html(src, loc)]No response recieved. Emergency shuttle cannot be recalled at this time.") + return + +/obj/item/device/gangtool/proc/recallchecks(mob/user) + if(!can_use(user)) + return + if(SSshuttle.emergencyNoRecall) + return + if(!gang.recalls) + to_chat(user, "Error: Unable to access communication arrays. Firewall has logged our signature and is blocking all further attempts.") + return + if(SSshuttle.emergency.mode != SHUTTLE_CALL) //Shuttle can only be recalled when it's moving to the station + to_chat(user, "[icon2html(src, user)]Emergency shuttle cannot be recalled at this time.") + recalling = FALSE + return + if(!gang.dom_attempts) + to_chat(user, "[icon2html(src, user)]Error: Unable to access communication arrays. Firewall has logged our signature and is blocking all further attempts.") + recalling = FALSE + return + if(!is_station_level(user.z)) //Shuttle can only be recalled while on station + to_chat(user, "[icon2html(src, user)]Error: Device out of range of station communication arrays.") + recalling = FALSE + return + return TRUE + +/obj/item/device/gangtool/proc/can_use(mob/living/carbon/human/user) + if(!istype(user)) + return + if(user.incapacitated()) + return + if(!(src in user.contents)) + return + if(!user.mind) + return + var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) + if(!G) + to_chat(user, "Huh, what's this?") + return + if(!isnull(gang) && G.gang != gang) + to_chat(user, "You cannot use gang tools owned by enemy gangs!") + return + return TRUE + + +/obj/item/device/gangtool/spare + outfits = TRUE + +/obj/item/device/gangtool/spare/lt + promotable = TRUE \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/implant_gang.dm b/modular_citadel/code/game/gamemodes/gangs/implant_gang.dm new file mode 100644 index 0000000000..ee91928845 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/implant_gang.dm @@ -0,0 +1,61 @@ +/obj/item/implant/gang + name = "gang implant" + desc = "Makes you a gangster or such." + activated = 0 + var/datum/team/gang/gang + +/obj/item/implant/gang/Initialize(loc, setgang) + .=..() + gang = setgang + +/obj/item/implant/gang/Destroy() + gang = null + return ..() + +/obj/item/implant/gang/get_data() + var/dat = {"Implant Specifications:
+ Name: Criminal brainwash implant
+ Life: A few seconds after injection.
+ Important Notes: Illegal
+
+ Implant Details:
+ Function: Contains a small pod of nanobots that change the host's brain to be loyal to a certain organization.
+ Special Features: This device will also emit a small EMP pulse, destroying any other implants within the host's brain.
+ Integrity: Implant's EMP function will destroy itself in the process."} + return dat + +/obj/item/implant/gang/implant(mob/living/target, mob/user, silent = 0) + if(!target || !target.mind || target.stat == DEAD) + return 0 + var/datum/antagonist/gang/G = target.mind.has_antag_datum(/datum/antagonist/gang) + if(G && G.gang == G) + return 0 // it's pointless + if(..()) + for(var/obj/item/implant/I in target.implants) + if(I != src) + qdel(I) + + if(ishuman(target)) + var/success + if(G) + if(!istype(G, /datum/antagonist/gang/boss)) + success = TRUE //Was not a gang boss, convert as usual + target.mind.remove_antag_datum(/datum/antagonist/gang) + else + success = TRUE + if(!success) + target.visible_message("[target] seems to resist the implant!", "You feel the influence of your enemies try to invade your mind!") + return FALSE + target.mind.add_antag_datum(/datum/antagonist/gang, gang) + qdel(src) + return TRUE + +/obj/item/implanter/gang + name = "implanter (gang)" + +/obj/item/implanter/gang/Initialize(loc, gang) + if(!gang) + qdel(src) + return + imp = new /obj/item/implant/gang(src,gang) + .=..() \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index 12a91dfaa9..7c9185699a 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2810,6 +2810,18 @@ #include "modular_citadel\code\datums\wires\airlock.dm" #include "modular_citadel\code\datums\wires\autoylathe.dm" #include "modular_citadel\code\game\area\cit_areas.dm" +#include "modular_citadel\code\game\gamemodes\gangs\dominator.dm" +#include "modular_citadel\code\game\gamemodes\gangs\dominator_countdown.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gang.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gang_crayon.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gang_datums.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gang_decals.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gang_hud.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gang_items.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gang_pen.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gangs.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gangtool.dm" +#include "modular_citadel\code\game\gamemodes\gangs\implant_gang.dm" #include "modular_citadel\code\game\gamemodes\miniantags\bot_swarm\swarmer_event.dm" #include "modular_citadel\code\game\gamemodes\revolution\revolution.dm" #include "modular_citadel\code\game\machinery\cryopod.dm" From 09dfb448ed967bd45ac52b4632734bcfb0a9a94c Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Sat, 18 May 2019 05:51:53 -0400 Subject: [PATCH 02/44] woops left that at 1 instead of 15 --- modular_citadel/code/game/gamemodes/gangs/gangs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/game/gamemodes/gangs/gangs.dm b/modular_citadel/code/game/gamemodes/gangs/gangs.dm index 639296c628..6e4bf752a6 100644 --- a/modular_citadel/code/game/gamemodes/gangs/gangs.dm +++ b/modular_citadel/code/game/gamemodes/gangs/gangs.dm @@ -7,7 +7,7 @@ GLOBAL_LIST_EMPTY(gangs) config_tag = "gang" antag_flag = ROLE_GANG restricted_jobs = list("Security Officer", "Warden", "Detective", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security") - required_players = 1 + required_players = 15 required_enemies = 0 recommended_enemies = 2 enemy_minimum_age = 14 From 03f129fa6efe70d33a0cbfd738a3d7ea96374a0a Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Sun, 19 May 2019 07:29:09 -0400 Subject: [PATCH 03/44] More changes --- code/game/objects/items/crayons.dm | 137 ++++++++-- .../code/game/gamemodes/gangs/dominator.dm | 16 +- .../code/game/gamemodes/gangs/gang_crayon.dm | 236 ------------------ .../code/game/gamemodes/gangs/gang_datums.dm | 8 +- .../code/game/gamemodes/gangs/gang_items.dm | 2 +- tgstation.dme | 1 - 6 files changed, 131 insertions(+), 269 deletions(-) delete mode 100644 modular_citadel/code/game/gamemodes/gangs/gang_crayon.dm diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 26f8a73cb3..b76a9b9c98 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -68,6 +68,8 @@ var/pre_noise = FALSE var/post_noise = FALSE + var/datum/team/gang/gang //For marking territory, spraycans are gang-locked to their initial gang due to colors + /obj/item/toy/crayon/suicide_act(mob/user) user.visible_message("[user] is jamming [src] up [user.p_their()] nose and into [user.p_their()] brain. It looks like [user.p_theyre()] trying to commit suicide!") @@ -288,7 +290,8 @@ else if(drawing in numerals) temp = "number" - + temp = gang_check(user,target) + if(!temp) return // gang check var/graf_rot if(drawing in oriented) switch(user.dir) @@ -310,7 +313,7 @@ clicky = CLAMP(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) if(!instant) - to_chat(user, "You start drawing a [temp] on the [target.name]...") + to_chat(user, "You start drawing a [temp] on the [target.name]...") if(pre_noise) audible_message("You hear spraying.") @@ -322,6 +325,7 @@ if(paint_mode == PAINT_LARGE_HORIZONTAL) wait_time *= 3 + if(gang) takes_time = TRUE // gang tagging takes time. if(takes_time) if(!do_after(user, 50, target = target)) return @@ -332,26 +336,29 @@ var/list/turf/affected_turfs = list() - if(actually_paints) - switch(paint_mode) - if(PAINT_NORMAL) - var/obj/effect/decal/cleanable/crayon/C = new(target, paint_color, drawing, temp, graf_rot) - C.add_hiddenprint(user) - C.pixel_x = clickx - C.pixel_y = clicky - affected_turfs += target - if(PAINT_LARGE_HORIZONTAL) - var/turf/left = locate(target.x-1,target.y,target.z) - var/turf/right = locate(target.x+1,target.y,target.z) - if(is_type_in_list(left, validSurfaces) && is_type_in_list(right, validSurfaces)) - var/obj/effect/decal/cleanable/crayon/C = new(left, paint_color, drawing, temp, graf_rot, PAINT_LARGE_HORIZONTAL_ICON) + if(!gang) //drawing is done in gang_final() if it's a gang type + if(actually_paints) + switch(paint_mode) + if(PAINT_NORMAL) + var/obj/effect/decal/cleanable/crayon/C = new(target, paint_color, drawing, temp, graf_rot) C.add_hiddenprint(user) - affected_turfs += left - affected_turfs += right + C.pixel_x = clickx + C.pixel_y = clicky affected_turfs += target - else - to_chat(user, "There isn't enough space to paint!") - return + if(PAINT_LARGE_HORIZONTAL) + var/turf/left = locate(target.x-1,target.y,target.z) + var/turf/right = locate(target.x+1,target.y,target.z) + if(is_type_in_list(left, validSurfaces) && is_type_in_list(right, validSurfaces)) + var/obj/effect/decal/cleanable/crayon/C = new(left, paint_color, drawing, temp, graf_rot, PAINT_LARGE_HORIZONTAL_ICON) + C.add_hiddenprint(user) + affected_turfs += left + affected_turfs += right + affected_turfs += target + else + to_chat(user, "There isn't enough space to paint!") + return + else // gangstuff + if(gang_final(user, target, affected_turfs)) return // gangstuff if(!instant) to_chat(user, "You finish drawing \the [temp].") @@ -373,6 +380,77 @@ reagents.trans_to(t, ., volume_multiplier) check_empty(user) + +//////////////Gang mode stuff///////////////// +/obj/item/toy/crayon/proc/gang_check(mob/user, atom/target) // hooked into afterattack + var/gang_mode = FALSE + if(gang && user.mind) + var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) + if(G.gang != gang) + to_chat(user, "This spraycan's color isn't your gang's one! You cannot use it.") + return FALSE + gang_mode = TRUE + instant = FALSE + . = "graffiti" + // discontinue if the area isn't valid for tagging because gang "honour" + if(gang_mode && (!can_claim_for_gang(user, target))) + return FALSE + +/obj/item/toy/crayon/proc/gang_final(mob/user, atom/target, list/affected_turfs) // hooked into afterattack + // Double check it wasn't tagged in the meanwhile + if(!can_claim_for_gang(user, target)) + return TRUE + tag_for_gang(user, target) + affected_turfs += target + +/obj/item/toy/crayon/proc/can_claim_for_gang(mob/user, atom/target) + // Check area validity. + // Reject space, player-created areas, and non-station z-levels. + var/area/A = get_area(target) + if(!A || (!is_station_level(A.z)) || !A.valid_territory) + to_chat(user, "[A] is unsuitable for tagging.") + return FALSE + + var/spraying_over = FALSE + for(var/G in target) + var/obj/effect/decal/cleanable/crayon/gang/gangtag = G + if(istype(gangtag)) + var/datum/antagonist/gang/GA = user.mind.has_antag_datum(/datum/antagonist/gang) + if(gangtag.gang != GA.gang) + spraying_over = TRUE + break + + for(var/obj/machinery/power/apc in target) + to_chat(user, "You can't tag an APC.") + return FALSE + + var/occupying_gang = territory_claimed(A, user) + if(occupying_gang && !spraying_over) + to_chat(user, "[A] has already been tagged by the [occupying_gang] gang! You must get rid of or spray over the old tag first!") + return FALSE + + // If you pass the gauntlet of checks, you're good to proceed + return TRUE + +/obj/item/toy/crayon/proc/territory_claimed(area/territory, mob/user) + for(var/datum/team/gang/G in GLOB.gangs) + if(territory.type in (G.territories|G.new_territories)) + . = G.name + break + +/obj/item/toy/crayon/proc/tag_for_gang(mob/user, atom/target) + //Delete any old markings on this tile, including other gang tags + for(var/obj/effect/decal/cleanable/crayon/old_marking in target) + qdel(old_marking) + + var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) + var/area/territory = get_area(target) + + new /obj/effect/decal/cleanable/crayon/gang(target,G.gang,"graffiti",0,user) + to_chat(user, "You tagged [territory] for your gang!") +////////////Gang end//////////////////// + + /obj/item/toy/crayon/attack(mob/M, mob/user) if(edible && (M == user)) to_chat(user, "You take a bite of the [src.name]. Delicious!") @@ -703,6 +781,25 @@ post_noise = FALSE reagent_contents = list("nothing" = 1, "mutetoxin" = 1) +/obj/item/toy/crayon/spraycan/gang + charges = 20 + gang = TRUE + + pre_noise = FALSE + post_noise = TRUE + +/obj/item/toy/crayon/spraycan/gang/Initialize(loc, datum/team/gang/G) + ..() + if(G) + gang = G + paint_color = G.color + update_icon() + +/obj/item/toy/crayon/spraycan/gang/examine(mob/user) + . = ..() + if(user.mind && user.mind.has_antag_datum(/datum/antagonist/gang) || isobserver(user)) + to_chat(user, "This spraycan has been specially modified for tagging territory.") + #undef RANDOM_GRAFFITI #undef RANDOM_LETTER #undef RANDOM_NUMBER diff --git a/modular_citadel/code/game/gamemodes/gangs/dominator.dm b/modular_citadel/code/game/gamemodes/gangs/dominator.dm index 418c26ab3c..0d89c78010 100644 --- a/modular_citadel/code/game/gamemodes/gangs/dominator.dm +++ b/modular_citadel/code/game/gamemodes/gangs/dominator.dm @@ -1,5 +1,6 @@ #define DOM_BLOCKED_SPAM_CAP 6 -#define DOM_REQUIRED_TURFS 30 +//32 instead of 40 for safety reasons. How many turfs aren't walls around dominator for it to work +#define DOM_REQUIRED_TURFS 32 #define DOM_HULK_HITS_REQUIRED 10 /obj/machinery/dominator @@ -22,7 +23,7 @@ /obj/machinery/dominator/Initialize() . = ..() - set_light(2) + set_light(l_range = 2, l_power = 0.75) GLOB.poi_list |= src spark_system = new spark_system.set_up(5, TRUE, src) @@ -86,10 +87,10 @@ if(time_remaining > 0) if(excessive_walls_check()) gang.domination_time += 20 - playsound(loc, 'sound/machines/buzz-two.ogg', 50, 0) if(spam_prevention < DOM_BLOCKED_SPAM_CAP) spam_prevention++ else + playsound(loc, 'sound/machines/buzz-two.ogg', 50, 0) // Play sound buzz-two.ogg, not before cause its annoying. gang.message_gangtools("Warning: There are too many walls around your gang's dominator, its signal is being blocked!") say("Error: Takeover signal is currently blocked! There are too many walls within 3 standard units of this device.") spam_prevention = 0 @@ -190,7 +191,8 @@ countdown.start() countdown.color = gang.color - set_light(3) + set_light(l_range = 3, l_power = 0.9) + light_color = gang.color START_PROCESSING(SSmachines, src) gang.message_gangtools("Hostile takeover in progress: Estimated [time] minutes until victory.[gang.dom_attempts ? "" : " This is your final attempt."]") @@ -200,15 +202,15 @@ vagos.message_gangtools("Enemy takeover attempt detected in [locname]: Estimated [time] minutes until our defeat.",1,1) /obj/machinery/dominator/proc/excessive_walls_check() // why the fuck was this even a global proc... - var/open = FALSE + var/open = 0 for(var/turf/T in view(3, src)) - if(!isclosedturf(T)) + if(!iswallturf(T)) //Check for /closed/wall, isclosedturf() moves it back to just checking for /closed/ which makes it very finicky. open++ + //to_chat(world, "THE DOMINATOR SEES [open] OPEN TURFS") uncomment to see what this shitty fucking wallcheck sees if(open < DOM_REQUIRED_TURFS) return TRUE else return FALSE - /obj/machinery/dominator/proc/set_broken() if(gang) gang.domination_time = NOT_DOMINATING diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_crayon.dm b/modular_citadel/code/game/gamemodes/gangs/gang_crayon.dm deleted file mode 100644 index 2edc2ba945..0000000000 --- a/modular_citadel/code/game/gamemodes/gangs/gang_crayon.dm +++ /dev/null @@ -1,236 +0,0 @@ -#define RANDOM_GRAFFITI "Random Graffiti" -#define RANDOM_LETTER "Random Letter" -#define RANDOM_NUMBER "Random Number" -#define RANDOM_ORIENTED "Random Oriented" -#define RANDOM_RUNE "Random Rune" -#define RANDOM_ANY "Random Anything" - -/obj/item/toy/crayon - var/datum/team/gang/gang //For marking territory, spraycans are gang-locked to their initial gang due to colors - -/obj/item/toy/crayon/afterattack(atom/target, mob/user, proximity, params) - if(!proximity || !check_allowed_items(target)) - return - - var/cost = 1 - if(paint_mode == PAINT_LARGE_HORIZONTAL) - cost = 5 - if(istype(target, /obj/item/canvas)) - cost = 0 - - if(istype(target, /obj/effect/decal/cleanable)) - target = target.loc - - if(!is_type_in_list(target,validSurfaces)) - return - - var/drawing = drawtype - switch(drawtype) - if(RANDOM_LETTER) - drawing = pick(letters) - if(RANDOM_GRAFFITI) - drawing = pick(graffiti) - if(RANDOM_RUNE) - drawing = pick(runes) - if(RANDOM_ORIENTED) - drawing = pick(oriented) - if(RANDOM_NUMBER) - drawing = pick(numerals) - if(RANDOM_ANY) - drawing = pick(all_drawables) - - var/temp = "rune" - if(drawing in letters) - temp = "letter" - else if(drawing in graffiti) - temp = "graffiti" - else if(drawing in numerals) - temp = "number" - - temp = gang_check(user,target) - if(!temp) return // hippie - var/graf_rot - if(drawing in oriented) - switch(user.dir) - if(EAST) - graf_rot = 90 - if(SOUTH) - graf_rot = 180 - if(WEST) - graf_rot = 270 - else - graf_rot = 0 - - var/list/click_params = params2list(params) - var/clickx - var/clicky - - if(click_params && click_params["icon-x"] && click_params["icon-y"]) - clickx = CLAMP(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2) - clicky = CLAMP(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) - - if(!instant) - to_chat(user, "You start drawing a [temp] on the [target.name]...") - - if(pre_noise) - audible_message("You hear spraying.") - playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5) - - var/takes_time = !instant - - var/wait_time = 50 - if(paint_mode == PAINT_LARGE_HORIZONTAL) - wait_time *= 3 - if(gang) takes_time = TRUE // hippie - if(takes_time) - if(!do_after(user, 50, target = target)) - return - - if(length(text_buffer)) - drawing = copytext(text_buffer,1,2) - - - var/list/turf/affected_turfs = list() - - if(!gang) // hippie - drawing is done in gang_final() if it's a gang type - if(actually_paints) - switch(paint_mode) - if(PAINT_NORMAL) - var/obj/effect/decal/cleanable/crayon/C = new(target, paint_color, drawing, temp, graf_rot) - C.add_hiddenprint(user) - C.pixel_x = clickx - C.pixel_y = clicky - affected_turfs += target - if(PAINT_LARGE_HORIZONTAL) - var/turf/left = locate(target.x-1,target.y,target.z) - var/turf/right = locate(target.x+1,target.y,target.z) - if(is_type_in_list(left, validSurfaces) && is_type_in_list(right, validSurfaces)) - var/obj/effect/decal/cleanable/crayon/C = new(left, paint_color, drawing, temp, graf_rot, PAINT_LARGE_HORIZONTAL_ICON) - C.add_hiddenprint(user) - affected_turfs += left - affected_turfs += right - affected_turfs += target - else - to_chat(user, "There isn't enough space to paint!") - return - else // hippie - if(gang_final(user, target, affected_turfs)) return // hippie - - if(!instant) - to_chat(user, "You finish drawing \the [temp].") - else - to_chat(user, "You spray a [temp] on \the [target.name]") - - var/charges_used = use_charges(user, cost) - if(!charges_used) - return - . = charges_used - - if(length(text_buffer)) - text_buffer = copytext(text_buffer,2) - - if(post_noise) - audible_message("You hear spraying.") - playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5) - - var/fraction = min(1, . / reagents.maximum_volume) - if(affected_turfs.len) - fraction /= affected_turfs.len - for(var/t in affected_turfs) - reagents.reaction(t, TOUCH, fraction * volume_multiplier) - reagents.trans_to(t, ., volume_multiplier) - check_empty(user) - -/obj/item/toy/crayon/proc/gang_check(mob/user, atom/target) // hooked into afterattack - var/gang_mode = FALSE - if(gang && user.mind) - var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) - if(G.gang != gang) - to_chat(user, "This spraycan's color isn't your gang's one! You cannot use it.") - return FALSE - gang_mode = TRUE - instant = FALSE - . = "graffiti" - // discontinue if the area isn't valid for tagging because gang "honour" - if(gang_mode && (!can_claim_for_gang(user, target))) - return FALSE - -/obj/item/toy/crayon/proc/gang_final(mob/user, atom/target, list/affected_turfs) // hooked into afterattack - // Double check it wasn't tagged in the meanwhile - if(!can_claim_for_gang(user, target)) - return TRUE - tag_for_gang(user, target) - affected_turfs += target - -/obj/item/toy/crayon/proc/can_claim_for_gang(mob/user, atom/target) - // Check area validity. - // Reject space, player-created areas, and non-station z-levels. - var/area/A = get_area(target) - if(!A || (!is_station_level(A.z)) || !A.valid_territory) - to_chat(user, "[A] is unsuitable for tagging.") - return FALSE - - var/spraying_over = FALSE - for(var/G in target) - var/obj/effect/decal/cleanable/crayon/gang/gangtag = G - if(istype(gangtag)) - var/datum/antagonist/gang/GA = user.mind.has_antag_datum(/datum/antagonist/gang) - if(gangtag.gang != GA.gang) - spraying_over = TRUE - break - - for(var/obj/machinery/power/apc in target) - to_chat(user, "You can't tag an APC.") - return FALSE - - var/occupying_gang = territory_claimed(A, user) - if(occupying_gang && !spraying_over) - to_chat(user, "[A] has already been tagged by the [occupying_gang] gang! You must get rid of or spray over the old tag first!") - return FALSE - - // If you pass the gaunlet of checks, you're good to proceed - return TRUE - -/obj/item/toy/crayon/proc/territory_claimed(area/territory, mob/user) - for(var/datum/team/gang/G in GLOB.gangs) - if(territory.type in (G.territories|G.new_territories)) - . = G.name - break - -/obj/item/toy/crayon/proc/tag_for_gang(mob/user, atom/target) - //Delete any old markings on this tile, including other gang tags - for(var/obj/effect/decal/cleanable/crayon/old_marking in target) - qdel(old_marking) - - var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) - var/area/territory = get_area(target) - - new /obj/effect/decal/cleanable/crayon/gang(target,G.gang,"graffiti",0,user) - to_chat(user, "You tagged [territory] for your gang!") - -/obj/item/toy/crayon/spraycan/gang - //desc = "A modified container containing suspicious paint." - charges = 20 - gang = TRUE - - pre_noise = FALSE - post_noise = TRUE - -/obj/item/toy/crayon/spraycan/gang/Initialize(loc, datum/team/gang/G) - ..() - if(G) - gang = G - paint_color = G.color - update_icon() - -/obj/item/toy/crayon/spraycan/gang/examine(mob/user) - . = ..() - if(user.mind && user.mind.has_antag_datum(/datum/antagonist/gang) || isobserver(user)) - to_chat(user, "This spraycan has been specially modified for tagging territory.") - -#undef RANDOM_GRAFFITI -#undef RANDOM_LETTER -#undef RANDOM_NUMBER -#undef RANDOM_ORIENTED -#undef RANDOM_RUNE -#undef RANDOM_ANY \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm b/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm index 66dfdd0ca3..c2a31abe17 100644 --- a/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm +++ b/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm @@ -38,7 +38,7 @@ /datum/team/gang/waffle name = "Waffle" - color = "#808000" + color = "#808000" //shared color with cyber, but they can keep brown cause waffles. inner_outfits = list(/obj/item/clothing/under/suit_jacket/green) outer_outfits = list(/obj/item/clothing/suit/poncho) @@ -62,7 +62,7 @@ /datum/team/gang/cyber name = "Cyber" - color = "#808000" + color = "#00f904" //Cyber and waffle shared colors, I made these guys green and made weed darker green. inner_outfits = list(/obj/item/clothing/under/color/lightbrown) outer_outfits = list(/obj/item/clothing/suit/nemes) @@ -80,7 +80,7 @@ /datum/team/gang/gib name = "Gib" - color = "#636060" //Applying black to grayscale... Zero-G is already grey too. + color = "#636060" //Applying black to grayscale... Zero-G is already grey too. oh well. inner_outfits = list(/obj/item/clothing/under/color/black) outer_outfits = list(/obj/item/clothing/suit/jacket/leather/overcoat) @@ -134,6 +134,6 @@ /datum/team/gang/weed name = "Weed" - color = "#66ff33" + color = "#6cd648" inner_outfits = list(/obj/item/clothing/under/color/darkgreen) outer_outfits = list(/obj/item/clothing/suit/vapeshirt) \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_items.dm b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm index ceb08b3da3..f808229661 100644 --- a/modular_citadel/code/game/gamemodes/gangs/gang_items.dm +++ b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm @@ -385,7 +385,7 @@ /datum/gang_item/equipment/dominator/get_extra_info(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) if(gang) - return "This device requires a 5x5 area clear of walls to work. (Estimated Takeover Time: [round(gang.determine_domination_time()/60,0.1)] minutes)" + return "This device requires a 5x5 area clear of walls to work best. (Estimated Takeover Time: [round(gang.determine_domination_time()/60,0.1)] minutes)" /datum/gang_item/equipment/dominator/purchase(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) var/area/userarea = get_area(user) diff --git a/tgstation.dme b/tgstation.dme index 7c9185699a..7f6d07438c 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2813,7 +2813,6 @@ #include "modular_citadel\code\game\gamemodes\gangs\dominator.dm" #include "modular_citadel\code\game\gamemodes\gangs\dominator_countdown.dm" #include "modular_citadel\code\game\gamemodes\gangs\gang.dm" -#include "modular_citadel\code\game\gamemodes\gangs\gang_crayon.dm" #include "modular_citadel\code\game\gamemodes\gangs\gang_datums.dm" #include "modular_citadel\code\game\gamemodes\gangs\gang_decals.dm" #include "modular_citadel\code\game\gamemodes\gangs\gang_hud.dm" From 84016ed3efd29c83887a76345f8f8fed163b87c1 Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Tue, 21 May 2019 12:30:44 -0400 Subject: [PATCH 04/44] Here we go. --- code/game/objects/effects/decals/crayon.dm | 1 + code/game/objects/items/crayons.dm | 60 +++++++------------ .../code/game/gamemodes/gangs/gang.dm | 2 +- .../code/game/gamemodes/gangs/gang_datums.dm | 10 ++-- 4 files changed, 30 insertions(+), 43 deletions(-) diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm index 34263ef9a4..0a0348ae39 100644 --- a/code/game/objects/effects/decals/crayon.dm +++ b/code/game/objects/effects/decals/crayon.dm @@ -3,6 +3,7 @@ desc = "Graffiti. Damn kids." icon = 'icons/effects/crayondecal.dmi' icon_state = "rune1" + plane = GAME_PLANE //makes the graffiti visible over a wall. gender = NEUTER mergeable_decal = FALSE var/do_icon_rotate = TRUE diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index b76a9b9c98..859369384c 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -68,8 +68,7 @@ var/pre_noise = FALSE var/post_noise = FALSE - var/datum/team/gang/gang //For marking territory, spraycans are gang-locked to their initial gang due to colors - + var/datum/team/gang/gang //For marking territory. /obj/item/toy/crayon/suicide_act(mob/user) user.visible_message("[user] is jamming [src] up [user.p_their()] nose and into [user.p_their()] brain. It looks like [user.p_theyre()] trying to commit suicide!") @@ -290,8 +289,14 @@ else if(drawing in numerals) temp = "number" - temp = gang_check(user,target) - if(!temp) return // gang check + // If a gang member is using a gang spraycan, it'll behave differently + var/gang_mode = FALSE + if(gang && user.mind && user.mind.has_antag_datum(/datum/antagonist/gang)) //Heres a check. + gang_mode = TRUE // No more runtimes if a non-gang member sprays a gang can, it just works like normal cans. + // discontinue if the area isn't valid for tagging because gang "honour" + if(gang_mode && (!can_claim_for_gang(user, target))) + return + var/graf_rot if(drawing in oriented) switch(user.dir) @@ -320,12 +325,13 @@ playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5) var/takes_time = !instant + if(gang_mode) + takes_time = TRUE var/wait_time = 50 if(paint_mode == PAINT_LARGE_HORIZONTAL) wait_time *= 3 - if(gang) takes_time = TRUE // gang tagging takes time. if(takes_time) if(!do_after(user, 50, target = target)) return @@ -336,8 +342,15 @@ var/list/turf/affected_turfs = list() - if(!gang) //drawing is done in gang_final() if it's a gang type - if(actually_paints) + + if(actually_paints) + if(gang_mode) + // Double check it wasn't tagged in the meanwhile + if(!can_claim_for_gang(user, target)) + return + tag_for_gang(user, target) + affected_turfs += target + else switch(paint_mode) if(PAINT_NORMAL) var/obj/effect/decal/cleanable/crayon/C = new(target, paint_color, drawing, temp, graf_rot) @@ -357,8 +370,6 @@ else to_chat(user, "There isn't enough space to paint!") return - else // gangstuff - if(gang_final(user, target, affected_turfs)) return // gangstuff if(!instant) to_chat(user, "You finish drawing \the [temp].") @@ -382,27 +393,6 @@ //////////////Gang mode stuff///////////////// -/obj/item/toy/crayon/proc/gang_check(mob/user, atom/target) // hooked into afterattack - var/gang_mode = FALSE - if(gang && user.mind) - var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) - if(G.gang != gang) - to_chat(user, "This spraycan's color isn't your gang's one! You cannot use it.") - return FALSE - gang_mode = TRUE - instant = FALSE - . = "graffiti" - // discontinue if the area isn't valid for tagging because gang "honour" - if(gang_mode && (!can_claim_for_gang(user, target))) - return FALSE - -/obj/item/toy/crayon/proc/gang_final(mob/user, atom/target, list/affected_turfs) // hooked into afterattack - // Double check it wasn't tagged in the meanwhile - if(!can_claim_for_gang(user, target)) - return TRUE - tag_for_gang(user, target) - affected_turfs += target - /obj/item/toy/crayon/proc/can_claim_for_gang(mob/user, atom/target) // Check area validity. // Reject space, player-created areas, and non-station z-levels. @@ -420,10 +410,6 @@ spraying_over = TRUE break - for(var/obj/machinery/power/apc in target) - to_chat(user, "You can't tag an APC.") - return FALSE - var/occupying_gang = territory_claimed(A, user) if(occupying_gang && !spraying_over) to_chat(user, "[A] has already been tagged by the [occupying_gang] gang! You must get rid of or spray over the old tag first!") @@ -446,9 +432,9 @@ var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) var/area/territory = get_area(target) - new /obj/effect/decal/cleanable/crayon/gang(target,G.gang,"graffiti",0,user) + new /obj/effect/decal/cleanable/crayon/gang(target,G.gang,"graffiti",0,user) // Heres the gang tag. to_chat(user, "You tagged [territory] for your gang!") -////////////Gang end//////////////////// +/////////////////Gang end//////////////////// /obj/item/toy/crayon/attack(mob/M, mob/user) @@ -782,7 +768,7 @@ reagent_contents = list("nothing" = 1, "mutetoxin" = 1) /obj/item/toy/crayon/spraycan/gang - charges = 20 + charges = 10 // Charges are at 10 because the tagger trait exists. gang = TRUE pre_noise = FALSE diff --git a/modular_citadel/code/game/gamemodes/gangs/gang.dm b/modular_citadel/code/game/gamemodes/gangs/gang.dm index 5b93cf0cb7..8192041e3e 100644 --- a/modular_citadel/code/game/gamemodes/gangs/gang.dm +++ b/modular_citadel/code/game/gamemodes/gangs/gang.dm @@ -331,7 +331,7 @@ var/list/report = list() report += "[name]:" if(winner) - report += "The [name] gang was successful!" + report += "The [name] gang successfully activated the mind dominator!" else report += "The [name] gang has failed!" diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm b/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm index c2a31abe17..010778413b 100644 --- a/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm +++ b/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm @@ -86,15 +86,15 @@ /datum/team/gang/tunnel name = "Tunnel" - color = "#FF00FF" + color = "#FF00FF" //Gave the leather jacket to the tunnel gang over diablo. inner_outfits = list(/obj/item/clothing/under/villain) - outer_outfits = list(/obj/item/clothing/suit/poncho/ponchoshame) + outer_outfits = list(/obj/item/clothing/suit/jacket/leather) /datum/team/gang/diablo name = "Diablo" - color = "#FF0000" - inner_outfits = list(/obj/item/clothing/under/color/red) - outer_outfits = list(/obj/item/clothing/suit/jacket/leather) + color = "#FF0000" //literal early 90s skinhead regalia. + inner_outfits = list(/obj/item/clothing/under/pants/classicjeans) + outer_outfits = list(/obj/item/clothing/suit/suspenders) /datum/team/gang/psyke name = "Psyke" From 080b29de798279542463c10b5cea5868512788f7 Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Thu, 23 May 2019 00:40:57 -0400 Subject: [PATCH 05/44] Solves a few things. --- code/game/objects/items/crayons.dm | 4 +-- .../items/implants/implant_mindshield.dm | 5 ++- .../code/game/gamemodes/gangs/gang_items.dm | 32 +++++++++++-------- .../code/game/gamemodes/gangs/gangs.dm | 6 ++++ 4 files changed, 31 insertions(+), 16 deletions(-) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 859369384c..efa09a8021 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -332,8 +332,8 @@ if(paint_mode == PAINT_LARGE_HORIZONTAL) wait_time *= 3 - if(takes_time) - if(!do_after(user, 50, target = target)) + if(takes_time) //This is what deteremines the time it takes to spray a tag in gang mode. 50 is Default. + if(!do_after(user, 25, target = target)) //Lets try 25 instead of giving them all spraycans. return if(length(text_buffer)) diff --git a/code/game/objects/items/implants/implant_mindshield.dm b/code/game/objects/items/implants/implant_mindshield.dm index 2c197eb7ec..ae7abc6d63 100644 --- a/code/game/objects/items/implants/implant_mindshield.dm +++ b/code/game/objects/items/implants/implant_mindshield.dm @@ -26,7 +26,7 @@ if(target.mind.has_antag_datum(/datum/antagonist/brainwashed)) target.mind.remove_antag_datum(/datum/antagonist/brainwashed) - if(target.mind.has_antag_datum(/datum/antagonist/rev/head) || target.mind.unconvertable) + if(target.mind.has_antag_datum(/datum/antagonist/rev/head) || target.mind.unconvertable || target.mind.has_antag_datum(/datum/antagonist/gang/boss)) if(!silent) target.visible_message("[target] seems to resist the implant!", "You feel something interfering with your mental conditioning, but you resist it!") var/obj/item/implanter/I = loc @@ -37,9 +37,12 @@ I.update_icon() return FALSE + var/datum/antagonist/gang/gang = target.mind.has_antag_datum(/datum/antagonist/gang) var/datum/antagonist/rev/rev = target.mind.has_antag_datum(/datum/antagonist/rev) if(rev) rev.remove_revolutionary(FALSE, user) + if(gang) + target.mind.remove_antag_datum(/datum/antagonist/gang) if(!silent) if(target.mind in SSticker.mode.cult) to_chat(target, "You feel something interfering with your mental conditioning, but you resist it!") diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_items.dm b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm index f808229661..f3c1fc91b0 100644 --- a/modular_citadel/code/game/gamemodes/gangs/gang_items.dm +++ b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm @@ -171,7 +171,7 @@ /datum/gang_item/weapon/surplus name = "Surplus Rifle" id = "surplus" - cost = 7 + cost = 6 item_path = /obj/item/gun/ballistic/automatic/surplus /datum/gang_item/weapon/ammo/surplus_ammo @@ -183,7 +183,7 @@ /datum/gang_item/weapon/improvised name = "Sawn-Off Improvised Shotgun" id = "sawn" - cost = 6 + cost = 5 item_path = /obj/item/gun/ballistic/revolver/doublebarrel/improvised/sawn /datum/gang_item/weapon/ammo/improvised_ammo @@ -195,7 +195,7 @@ /datum/gang_item/weapon/pistol name = "10mm Pistol" id = "pistol" - cost = 25 + cost = 20 item_path = /obj/item/gun/ballistic/automatic/pistol /datum/gang_item/weapon/ammo/pistol_ammo @@ -207,7 +207,7 @@ /datum/gang_item/weapon/sniper name = "Black Market .50cal Sniper Rifle" id = "sniper" - cost = 40 + cost = 30 item_path = /obj/item/gun/ballistic/automatic/sniper_rifle /datum/gang_item/weapon/ammo/sniper_ammo @@ -225,7 +225,7 @@ /datum/gang_item/weapon/machinegun name = "Mounted Machine Gun" id = "MG" - cost = 50 + cost = 40 item_path = /obj/machinery/manned_turret spawn_msg = "The mounted machine gun features enhanced responsiveness. Hold down on the trigger while firing to control where you're shooting." @@ -236,13 +236,13 @@ /datum/gang_item/weapon/uzi name = "Uzi SMG" id = "uzi" - cost = 60 + cost = 50 item_path = /obj/item/gun/ballistic/automatic/mini_uzi /datum/gang_item/weapon/ammo/uzi_ammo name = "Uzi Ammo" id = "uzi_ammo" - cost = 30 + cost = 20 item_path = /obj/item/ammo_box/magazine/uzim9mm /////////////////// @@ -256,7 +256,7 @@ /datum/gang_item/equipment/spraycan name = "Territory Spraycan" id = "spraycan" - cost = 5 + cost = 1 item_path = /obj/item/toy/crayon/spraycan/gang /datum/gang_item/equipment/spraycan/spawn_item(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) @@ -285,13 +285,13 @@ /datum/gang_item/equipment/frag name = "Fragmentation Grenade" id = "frag nade" - cost = 7 + cost = 5 item_path = /obj/item/grenade/syndieminibomb/concussion/frag /datum/gang_item/equipment/stimpack name = "Black Market Stimulants" id = "stimpack" - cost = 12 + cost = 10 item_path = /obj/item/reagent_containers/syringe/stimulants /datum/gang_item/equipment/implant_breaker @@ -308,7 +308,7 @@ /datum/gang_item/equipment/wetwork_boots name = "Wetwork boots" id = "wetwork" - cost = 12 + cost = 10 item_path = /obj/item/clothing/shoes/combat/gang /obj/item/clothing/shoes/combat/gang @@ -317,10 +317,16 @@ permeability_coefficient = 0.01 clothing_flags = NOSLIP +datum/gang_item/equipment/shield + name = "Riot Shield" + id = "riot_shield" + cost = 25 + item_path = /obj/item/shield/riot + /datum/gang_item/equipment/pen name = "Recruitment Pen" id = "pen" - cost = 25 + cost = 20 item_path = /obj/item/pen/gang spawn_msg = "More recruitment pens will allow you to recruit gangsters faster. Only gang leaders can recruit with pens." @@ -343,7 +349,7 @@ /datum/gang_item/equipment/gangtool id = "gangtool" - cost = 10 + cost = 5 /datum/gang_item/equipment/gangtool/spawn_item(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) var/item_type diff --git a/modular_citadel/code/game/gamemodes/gangs/gangs.dm b/modular_citadel/code/game/gamemodes/gangs/gangs.dm index 6e4bf752a6..9151107d6f 100644 --- a/modular_citadel/code/game/gamemodes/gangs/gangs.dm +++ b/modular_citadel/code/game/gamemodes/gangs/gangs.dm @@ -19,6 +19,12 @@ GLOBAL_LIST_EMPTY(gangs) var/list/datum/mind/gangboss_candidates = list() +/datum/game_mode/gang/generate_report() + return "Cybersun Industries representatives claimed that they, in joint research with the Tiger Cooperative, have made a major breakthrough in brainwashing technology, and have \ + made the nanobots that apply the \"conversion\" very small and capable of fitting into usually innocent objects - namely, pens. While they refused to outsource this technology for \ + months to come due to its flaws, they reported some as missing but passed it off to carelessness. At Central Command, we don't like mysteries, and we have reason to believe that this \ + technology was stolen for anti-Nanotrasen use. Be on the lookout for territory claims and unusually violent crew behavior, applying mindshield implants as necessary." + /datum/game_mode/gang/pre_setup() if(CONFIG_GET(flag/protect_roles_from_antagonist)) restricted_jobs += protected_jobs From 9081b34cb865d2e2551f7661aca12c4182edb228 Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Thu, 23 May 2019 01:16:29 -0400 Subject: [PATCH 06/44] blunt trauma deconv --- code/modules/mob/living/carbon/human/species.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index e2e9e5149f..1c74d37e04 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1634,8 +1634,11 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(H.stat == CONSCIOUS && H != user && prob(I.force + ((100 - H.health) * 0.5))) // rev deconversion through blunt trauma. var/datum/antagonist/rev/rev = H.mind.has_antag_datum(/datum/antagonist/rev) + var/datum/antagonist/gang/gang = H.mind.has_antag_datum(/datum/antagonist/gang/) if(rev) rev.remove_revolutionary(FALSE, user) + if(gang) + gang.remove_from_gang(user) if(bloody) //Apply blood if(H.wear_mask) From 38ad6785a0dd62dbfda26aba7714bf063290638f Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Thu, 23 May 2019 01:42:00 -0400 Subject: [PATCH 07/44] Over-reduced the item costs a bit too much. Lets do it in tiny increments until It plays somewhat unpredictably for all sides. --- code/game/objects/items/crayons.dm | 2 +- .../code/game/gamemodes/gangs/gang_items.dm | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index efa09a8021..184f4d02a3 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -768,7 +768,7 @@ reagent_contents = list("nothing" = 1, "mutetoxin" = 1) /obj/item/toy/crayon/spraycan/gang - charges = 10 // Charges are at 10 because the tagger trait exists. + charges = 20 // Charges back to 20, which is the default value for them. gang = TRUE pre_noise = FALSE diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_items.dm b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm index f3c1fc91b0..ccaab546e5 100644 --- a/modular_citadel/code/game/gamemodes/gangs/gang_items.dm +++ b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm @@ -195,7 +195,7 @@ /datum/gang_item/weapon/pistol name = "10mm Pistol" id = "pistol" - cost = 20 + cost = 25 item_path = /obj/item/gun/ballistic/automatic/pistol /datum/gang_item/weapon/ammo/pistol_ammo @@ -207,7 +207,7 @@ /datum/gang_item/weapon/sniper name = "Black Market .50cal Sniper Rifle" id = "sniper" - cost = 30 + cost = 35 item_path = /obj/item/gun/ballistic/automatic/sniper_rifle /datum/gang_item/weapon/ammo/sniper_ammo @@ -225,7 +225,7 @@ /datum/gang_item/weapon/machinegun name = "Mounted Machine Gun" id = "MG" - cost = 40 + cost = 45 item_path = /obj/machinery/manned_turret spawn_msg = "The mounted machine gun features enhanced responsiveness. Hold down on the trigger while firing to control where you're shooting." @@ -291,7 +291,7 @@ /datum/gang_item/equipment/stimpack name = "Black Market Stimulants" id = "stimpack" - cost = 10 + cost = 12 item_path = /obj/item/reagent_containers/syringe/stimulants /datum/gang_item/equipment/implant_breaker @@ -391,7 +391,7 @@ datum/gang_item/equipment/shield /datum/gang_item/equipment/dominator/get_extra_info(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) if(gang) - return "This device requires a 5x5 area clear of walls to work best. (Estimated Takeover Time: [round(gang.determine_domination_time()/60,0.1)] minutes)" + return "This device requires a 5x5 area clear of walls to FUNCTION. (Estimated Takeover Time: [round(gang.determine_domination_time()/60,0.1)] minutes)" /datum/gang_item/equipment/dominator/purchase(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) var/area/userarea = get_area(user) From 196da05313ec4e349e8a02e51c231102e9c62c85 Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Thu, 23 May 2019 02:49:35 -0400 Subject: [PATCH 08/44] Brute deconv correct woops --- code/modules/mob/living/carbon/human/species.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 1c74d37e04..bb1a703b8d 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1638,7 +1638,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(rev) rev.remove_revolutionary(FALSE, user) if(gang) - gang.remove_from_gang(user) + H.mind.remove_antag_datum(/datum/antagonist/gang) if(bloody) //Apply blood if(H.wear_mask) From 2aa86157e1b049bbfe659c69152991310a28592c Mon Sep 17 00:00:00 2001 From: Poojawa Date: Sun, 26 May 2019 04:52:31 -0500 Subject: [PATCH 09/44] Fixes rendering issues. Adds balls to be rendered --- code/__DEFINES/citadel_defines.dm | 4 +- code/__HELPERS/_cit_helpers.dm | 70 +++++------------- code/__HELPERS/mobs.dm | 2 + .../code/modules/arousal/arousal.dm | 51 ++++++------- .../code/modules/arousal/organs/breasts.dm | 4 +- .../code/modules/arousal/organs/genitals.dm | 25 +++++-- .../organs/genitals_sprite_accessories.dm | 13 +++- .../code/modules/arousal/organs/penis.dm | 4 +- .../code/modules/arousal/organs/testicles.dm | 43 +++++++++-- .../code/modules/arousal/organs/vagina.dm | 3 +- .../icons/obj/genitals/breasts_onmob.dmi | Bin 1401 -> 1593 bytes modular_citadel/icons/obj/genitals/penis.dmi | Bin 2758 -> 3200 bytes .../icons/obj/genitals/penis_onmob.dmi | Bin 3880 -> 4855 bytes modular_citadel/icons/obj/genitals/vagina.dmi | Bin 510 -> 626 bytes .../icons/obj/genitals/vagina_onmob.dmi | Bin 939 -> 1171 bytes tgstation.dme | 12 +-- 16 files changed, 121 insertions(+), 110 deletions(-) diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm index 9f5f52180c..2abe0db04e 100644 --- a/code/__DEFINES/citadel_defines.dm +++ b/code/__DEFINES/citadel_defines.dm @@ -33,8 +33,8 @@ #define BALLS_VOLUME_MULT 1 #define BALLS_SIZE_MIN 1 -#define BALLS_SIZE_DEF 3 -#define BALLS_SIZE_MAX 7 +#define BALLS_SIZE_DEF 2 +#define BALLS_SIZE_MAX 3 #define BALLS_SACK_SIZE_MIN 1 #define BALLS_SACK_SIZE_DEF 8 diff --git a/code/__HELPERS/_cit_helpers.dm b/code/__HELPERS/_cit_helpers.dm index eb2a564d1b..e21bee2e36 100644 --- a/code/__HELPERS/_cit_helpers.dm +++ b/code/__HELPERS/_cit_helpers.dm @@ -58,6 +58,7 @@ GLOBAL_LIST_EMPTY(ipc_antennas_list) //Genitals and Arousal Lists GLOBAL_LIST_EMPTY(cock_shapes_list)//global_lists.dm for the list initializations //Now also _DATASTRUCTURES globals.dm GLOBAL_LIST_EMPTY(cock_shapes_icons) //Associated list for names->icon_states for cockshapes. +GLOBAL_LIST_EMPTY(balls_shapes_list) GLOBAL_LIST_EMPTY(breasts_size_list) GLOBAL_LIST_EMPTY(breasts_shapes_list) GLOBAL_LIST_EMPTY(vagina_shapes_list) @@ -123,36 +124,36 @@ GLOBAL_VAR_INIT(miscreants_allowed, FALSE) /mob/living/carbon/proc/has_penis() if(getorganslot("penis"))//slot shared with ovipositor if(istype(getorganslot("penis"), /obj/item/organ/genital/penis)) - return 1 - return 0 + return TRUE + return FALSE /mob/living/carbon/proc/has_balls() if(getorganslot("balls")) if(istype(getorganslot("balls"), /obj/item/organ/genital/testicles)) - return 1 - return 0 + return TRUE + return FALSE /mob/living/carbon/proc/has_vagina() if(getorganslot("vagina")) - return 1 - return 0 + return TRUE + return FALSE /mob/living/carbon/proc/has_breasts() if(getorganslot("breasts")) - return 1 - return 0 + return TRUE + return FALSE /mob/living/carbon/proc/has_ovipositor() if(getorganslot("penis"))//shared slot if(istype(getorganslot("penis"), /obj/item/organ/genital/ovipositor)) - return 1 - return 0 + return TRUE + return FALSE /mob/living/carbon/human/proc/has_eggsack() if(getorganslot("balls")) if(istype(getorganslot("balls"), /obj/item/organ/genital/eggsack)) - return 1 - return 0 + return TRUE + return FALSE /mob/living/carbon/human/proc/is_bodypart_exposed(bodypart) @@ -161,16 +162,16 @@ GLOBAL_VAR_INIT(miscreants_allowed, FALSE) L = get_equipped_items() for(var/obj/item/I in L) if(I.body_parts_covered & GROIN) - return 0 - return 1 + return FALSE + return TRUE /mob/living/carbon/proc/is_chest_exposed(var/list/L) if(!L) L = get_equipped_items() for(var/obj/item/I in L) if(I.body_parts_covered & CHEST) - return 0 - return 1 + return FALSE + return TRUE //////////////////////// //DANGER | DEBUG PROCS// @@ -191,40 +192,3 @@ GLOBAL_VAR_INIT(miscreants_allowed, FALSE) H.give_vagina() H.give_womb() H.give_breasts() - -/client/proc/test_mammal_overlays() - set name = "Mass Give Mammalitus" - set category = "Dangerous" - set desc = "Turns every human into a mammal with tails, ears, etc. WARNING: NOT FOR LIVE SERVER USAGE!!" - - log_admin("[src] turned everyone into mammals.") - message_admins("[src] turned everyone into mammals.") - for(var/mob/living/carbon/human/H in GLOB.mob_list) - if(!H.dna) - continue - var/datum/dna/hdna = H.dna - H.set_species(/datum/species/mammal) - var/subspec = pick("Fox","Wolf","Fennec") - switch(subspec) - if("Wolf") - hdna.features["mam_tail"] = "Wolf" - hdna.features["mam_ears"] = "Wolf" - hdna.features["mam_snouts"] = "Wolf" - hdna.features["mam_body_markings"] = "Wolf" - hdna.features["mcolor"] = "555" - hdna.features["mcolor2"] = "999" - hdna.features["mcolor3"] = "999" - if("Fox") - hdna.features["mam_tail"] = "Fox" - hdna.features["mam_ears"] = "Fox" - hdna.features["mam_snouts"] = "Fox, Long" - hdna.features["mam_body_markings"] = "Fox" - hdna.features["mcolor"] = "f60" - hdna.features["mcolor2"] = "fff" - hdna.features["mcolor3"] = "fff" - if("Fennec") - hdna.features["mam_tail"] = "Fennec" - hdna.features["mam_ears"] = "Fennec" - hdna.features["mam_snouts"] = "Fox, Short" - hdna.features["mam_body_markings"] = "Fox" - H.regenerate_icons() diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 74a1fbd785..6c6b197a12 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -77,6 +77,8 @@ //CIT CHANGES - genitals and such if(!GLOB.cock_shapes_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/penis, GLOB.cock_shapes_list) + if(!GLOB.balls_shapes_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/testicles, GLOB.balls_shapes_list) if(!GLOB.vagina_shapes_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list) if(!GLOB.breasts_shapes_list.len) diff --git a/modular_citadel/code/modules/arousal/arousal.dm b/modular_citadel/code/modules/arousal/arousal.dm index ef9201af60..846a8cff62 100644 --- a/modular_citadel/code/modules/arousal/arousal.dm +++ b/modular_citadel/code/modules/arousal/arousal.dm @@ -40,7 +40,7 @@ adjustArousalLoss(arousal_rate * S.arousal_gain_rate) if(dna.features["exhibitionist"] && client) var/amt_nude = 0 - if(is_chest_exposed() && (gender == FEMALE || getorganslot("breasts"))) + if(is_chest_exposed() && (getorganslot("breasts"))) amt_nude++ if(is_groin_exposed()) if(getorganslot("penis")) @@ -64,14 +64,14 @@ /mob/living/proc/adjustArousalLoss(amount, updating_arousal=1) if(status_flags & GODMODE || !canbearoused) - return 0 + return FALSE arousalloss = CLAMP(arousalloss + amount, min_arousal, max_arousal) if(updating_arousal) updatearousal() /mob/living/proc/setArousalLoss(amount, updating_arousal=1) if(status_flags & GODMODE || !canbearoused) - return 0 + return FALSE arousalloss = CLAMP(amount, min_arousal, max_arousal) if(updating_arousal) updatearousal() @@ -99,6 +99,8 @@ switch(G.type) if(/obj/item/organ/genital/penis) S = GLOB.cock_shapes_list[G.shape] + if(/obj/item/organ/genital/testicles) + S = GLOB.balls_shapes_list[G.shape] if(/obj/item/organ/genital/vagina) S = GLOB.vagina_shapes_list[G.shape] if(/obj/item/organ/genital/breasts) @@ -112,54 +114,54 @@ G.update_appearance() /mob/living/proc/update_arousal_hud() - return 0 + return FALSE /datum/species/proc/update_arousal_hud(mob/living/carbon/human/H) - return 0 + return FALSE /mob/living/carbon/human/update_arousal_hud() if(!client || !hud_used) - return 0 + return FALSE if(dna.species.update_arousal_hud()) - return 0 + return FALSE if(!canbearoused) hud_used.arousal.icon_state = "" - return 0 + return FALSE else if(hud_used.arousal) if(stat == DEAD) hud_used.arousal.icon_state = "arousal0" - return 1 + return TRUE if(getArousalLoss() == max_arousal) hud_used.arousal.icon_state = "arousal100" - return 1 + return TRUE if(getArousalLoss() >= (max_arousal / 100) * 90)//M O D U L A R , W O W hud_used.arousal.icon_state = "arousal90" - return 1 + return TRUE if(getArousalLoss() >= (max_arousal / 100) * 80)//M O D U L A R , W O W hud_used.arousal.icon_state = "arousal80" - return 1 + return TRUE if(getArousalLoss() >= (max_arousal / 100) * 70)//M O D U L A R , W O W hud_used.arousal.icon_state = "arousal70" - return 1 + return TRUE if(getArousalLoss() >= (max_arousal / 100) * 60)//M O D U L A R , W O W hud_used.arousal.icon_state = "arousal60" - return 1 + return TRUE if(getArousalLoss() >= (max_arousal / 100) * 50)//M O D U L A R , W O W hud_used.arousal.icon_state = "arousal50" - return 1 + return TRUE if(getArousalLoss() >= (max_arousal / 100) * 40)//M O D U L A R , W O W hud_used.arousal.icon_state = "arousal40" - return 1 + return TRUE if(getArousalLoss() >= (max_arousal / 100) * 30)//M O D U L A R , W O W hud_used.arousal.icon_state = "arousal30" - return 1 + return TRUE if(getArousalLoss() >= (max_arousal / 100) * 20)//M O D U L A R , W O W hud_used.arousal.icon_state = "arousal10" - return 1 + return TRUE if(getArousalLoss() >= (max_arousal / 100) * 10)//M O D U L A R , W O W hud_used.arousal.icon_state = "arousal10" - return 1 + return TRUE else hud_used.arousal.icon_state = "arousal0" @@ -171,11 +173,11 @@ /obj/screen/arousal/Click() if(!isliving(usr)) - return 0 + return FALSE var/mob/living/M = usr if(M.canbearoused) M.mob_climax() - return 1 + return TRUE else to_chat(M, "Arousal is disabled. Feature is unavailable.") @@ -196,13 +198,6 @@ "You have relieved yourself.") SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) setArousalLoss(min_arousal) - /* - switch(gender) - if(MALE) - PoolOrNew(/obj/effect/decal/cleanable/semen, loc) - if(FEMALE) - PoolOrNew(/obj/effect/decal/cleanable/femcum, loc) - */ else to_chat(src, "You aren't aroused enough for that.") diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm index 1239a515cd..7d482ec3a0 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/modular_citadel/code/modules/arousal/organs/breasts.dm @@ -60,7 +60,5 @@ string = "breasts_[lowertext(shape)]_[size]" if(ishuman(owner)) var/mob/living/carbon/human/H = owner + icon_state = sanitize_text(string) H.update_genitals() - - icon_state = sanitize_text(string) - diff --git a/modular_citadel/code/modules/arousal/organs/genitals.dm b/modular_citadel/code/modules/arousal/organs/genitals.dm index 591bb6f1de..592d1e2f33 100644 --- a/modular_citadel/code/modules/arousal/organs/genitals.dm +++ b/modular_citadel/code/modules/arousal/organs/genitals.dm @@ -165,7 +165,7 @@ P.Insert(src) if(P) if(dna.species.use_skintones && dna.features["genitals_use_skintone"]) - P.color = skintone2hex(skin_tone) + P.color = "#[skintone2hex(skin_tone)]" else P.color = "#[dna.features["cock_color"]]" P.length = dna.features["cock_length"] @@ -181,13 +181,14 @@ if(!getorganslot("testicles")) var/obj/item/organ/genital/testicles/T = new T.Insert(src) -// if(dna.species.use_skintones && dna.features["genitals_use_skintone"]) -// T.color = skintone2hex(skin_tone) -// else -// T.color = "#[dna.features["balls_color"]]" if(T) + if(dna.species.use_skintones && dna.features["genitals_use_skintone"]) + T.color = "#[skintone2hex(skin_tone)]" + else + T.color = "#[dna.features["balls_color"]]" T.size = dna.features["balls_size"] T.sack_size = dna.features["balls_sack_size"] + T.shape = "single" T.fluid_id = dna.features["balls_fluid"] T.fluid_rate = dna.features["balls_cum_rate"] T.fluid_mult = dna.features["balls_cum_mult"] @@ -204,7 +205,7 @@ B.Insert(src) if(B) if(dna.species.use_skintones && dna.features["genitals_use_skintone"]) - B.color = skintone2hex(skin_tone) + B.color = "#[skintone2hex(skin_tone)]" else B.color = "#[dna.features["breasts_color"]]" B.size = dna.features["breasts_size"] @@ -228,7 +229,7 @@ V.Insert(src) if(V) if(dna.species.use_skintones && dna.features["genitals_use_skintone"]) - V.color = skintone2hex(skin_tone) + V.color = "#[skintone2hex(skin_tone)]" else V.color = "[dna.features["vag_color"]]" V.shape = "[dna.features["vag_shape"]]" @@ -297,7 +298,9 @@ for(var/obj/item/organ/O in H.internal_organs) if(isgenital(O)) var/obj/item/organ/genital/G = O + to_chat(world, "checking [G] for exposure") if(G.is_exposed()) //Checks appropriate clothing slot and if it's through_clothes + to_chat(world, "[G] is [G.is_exposed() ? "true" : "false"]") genitals_to_add += H.getorganslot(G.slot) //Now we added all genitals that aren't internal and should be rendered @@ -308,9 +311,12 @@ var/datum/sprite_accessory/S size = G.size aroused_state = G.aroused_state + to_chat(world, "switching [G.type] for sprite loading") switch(G.type) if(/obj/item/organ/genital/penis) S = GLOB.cock_shapes_list[G.shape] + if(/obj/item/organ/genital/testicles) + S = GLOB.balls_shapes_list[G.shape] if(/obj/item/organ/genital/vagina) S = GLOB.vagina_shapes_list[G.shape] if(/obj/item/organ/genital/breasts) @@ -318,8 +324,10 @@ if(!S || S.icon_state == "none") continue + var/mutable_appearance/genital_overlay = mutable_appearance(S.icon, layer = -layer) genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]_[aroused_state]_[layertext]" + to_chat(world, "[G.slot]_[S.icon_state]_[size]_[aroused_state]_[layertext] is icon state") if(S.center) genital_overlay = center_image(genital_overlay, S.dimension_x, S.dimension_y) @@ -331,12 +339,15 @@ switch(S.color_src) if("cock_color") genital_overlay.color = "#[H.dna.features["cock_color"]]" + if("balls_color") + genital_overlay.color = "#[H.dna.features["balls_color"]]" if("breasts_color") genital_overlay.color = "#[H.dna.features["breasts_color"]]" if("vag_color") genital_overlay.color = "#[H.dna.features["vag_color"]]" standing += genital_overlay + if(LAZYLEN(standing)) H.overlays_standing[layer] = standing.Copy() standing = list() diff --git a/modular_citadel/code/modules/arousal/organs/genitals_sprite_accessories.dm b/modular_citadel/code/modules/arousal/organs/genitals_sprite_accessories.dm index e857c0d7ed..eaf493482f 100644 --- a/modular_citadel/code/modules/arousal/organs/genitals_sprite_accessories.dm +++ b/modular_citadel/code/modules/arousal/organs/genitals_sprite_accessories.dm @@ -55,8 +55,19 @@ center = TRUE //Center the image 'cause 2-tile wide. dimension_x = 64 +//Testicles +//These ones aren't inert +/datum/sprite_accessory/testicles + icon = 'modular_citadel/icons/obj/genitals/penis_onmob.dmi' + icon_state = "testicle" + name = "testicle" //the preview name of the accessory + color_src = "balls_color" + locked = 0 - +/datum/sprite_accessory/testicles/single + icon_state = "single" + name = "single" + alt_aroused = TRUE //Vaginas /datum/sprite_accessory/vagina diff --git a/modular_citadel/code/modules/arousal/organs/penis.dm b/modular_citadel/code/modules/arousal/organs/penis.dm index ac812e286d..2498ff6370 100644 --- a/modular_citadel/code/modules/arousal/organs/penis.dm +++ b/modular_citadel/code/modules/arousal/organs/penis.dm @@ -52,15 +52,15 @@ string = "penis_[GLOB.cock_shapes_icons[shape]]_[size]" if(ishuman(owner)) var/mob/living/carbon/human/H = owner + icon_state = sanitize_text(string) H.update_genitals() - icon_state = sanitize_text(string) - /obj/item/organ/genital/penis/update_link() if(owner) linked_organ = (owner.getorganslot("testicles")) if(linked_organ) linked_organ.linked_organ = src + linked_organ.size = size else if(linked_organ) linked_organ.linked_organ = null diff --git a/modular_citadel/code/modules/arousal/organs/testicles.dm b/modular_citadel/code/modules/arousal/organs/testicles.dm index 815d8034e7..2ee92d743a 100644 --- a/modular_citadel/code/modules/arousal/organs/testicles.dm +++ b/modular_citadel/code/modules/arousal/organs/testicles.dm @@ -3,15 +3,20 @@ desc = "A male reproductive organ." icon_state = "testicles" icon = 'modular_citadel/icons/obj/genitals/penis.dmi' + var/icon_on = 'modular_citadel/icons/obj/genitals/penis_onmob.dmi' zone = "groin" slot = "testicles" w_class = 3 - internal = TRUE - size = BALLS_SIZE_DEF + size = BALLS_SIZE_MIN + var/size_name = "Normal" + shape = "single" var/sack_size = BALLS_SACK_SIZE_DEF fluid_id = "semen" producing = TRUE - var/sent_full_message = 1 //defaults to 1 since they're full to start + can_masturbate_with = TRUE + masturbation_verb = "massage" + can_climax = TRUE + var/sent_full_message = TRUE //defaults to 1 since they're full to start /obj/item/organ/genital/testicles/Initialize() . = ..() @@ -23,14 +28,22 @@ if(reagents && producing) generate_cum() +/obj/item/organ/genital/testicles/update_size() + if(size == 1) + size_name = "Normal" + if(size == 2) + size_name = "Enlarged" + if(size == 3) + size_name = "Engorged" + /obj/item/organ/genital/testicles/proc/generate_cum() reagents.maximum_volume = fluid_max_volume if(reagents.total_volume >= reagents.maximum_volume) if(!sent_full_message) send_full_message() - sent_full_message = 1 + sent_full_message = TRUE return FALSE - sent_full_message = 0 + sent_full_message = FALSE update_link() if(!linked_organ) return FALSE @@ -42,6 +55,8 @@ linked_organ = (owner.getorganslot("penis")) if(linked_organ) linked_organ.linked_organ = src + size = linked_organ.size + update_size() else if(linked_organ) linked_organ.linked_organ = null @@ -49,6 +64,22 @@ /obj/item/organ/genital/testicles/proc/send_full_message(msg = "Your balls finally feel full, again.") if(owner && istext(msg)) - owner << msg + to_chat(owner, msg) return TRUE +/obj/item/organ/genital/testicles/update_appearance() + if(owner) + desc = "You see a pair of testicles dangling. They're quite [lowertext(size_name)]." + var/string + if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"]) + if(ishuman(owner)) // Check before recasting type, although someone fucked up if you're not human AND have use_skintones somehow... + var/mob/living/carbon/human/H = owner // only human mobs have skin_tone, which we need. + color = "#[skintone2hex(H.skin_tone)]" + string = "testicles_[size_name]-s" + else + color = "#[owner.dna.features["balls_color"]]" + string = "testicles_[size_name]" + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + icon_state = sanitize_text(string) + H.update_genitals() diff --git a/modular_citadel/code/modules/arousal/organs/vagina.dm b/modular_citadel/code/modules/arousal/organs/vagina.dm index b8ef7029b6..8c15aa5437 100644 --- a/modular_citadel/code/modules/arousal/organs/vagina.dm +++ b/modular_citadel/code/modules/arousal/organs/vagina.dm @@ -60,10 +60,9 @@ string = "vagina" if(ishuman(owner)) var/mob/living/carbon/human/H = owner + icon_state = sanitize_text(string) H.update_genitals() - icon_state = sanitize_text(string) - /obj/item/organ/genital/vagina/update_link() if(owner) linked_organ = (owner.getorganslot("womb")) diff --git a/modular_citadel/icons/obj/genitals/breasts_onmob.dmi b/modular_citadel/icons/obj/genitals/breasts_onmob.dmi index b0dc1d7aef1259bd40c6ae31cf34777fa1262ed6..1869e082de2455609c96af44c969430368bc09e4 100644 GIT binary patch delta 1537 zcmXw2YdDh&0REIXCplA25|yW#0WA>m;FK%qaPTByA~sBvv<#QSQD7d|>V(`$;T zd=Z71pI5PTOpzxFkKDLoLwJefn4wUjOy6f>SA9DcdGX4zFE5LIZZ%d6N+$eB)j{C! zGXp5Bv-+kJ8WO*6Rqimci~b1iEm_Y3C8H+8t%!!q+Z?wp@d0cMy>;FlbddJyoL1rK zw9f}=4I#yG!e-LZU*2sDa`Z^0t4c^u?s~TE= zP4_Z}TD5h)(4(5;8}i^DwV;i$@&5e`Q+-nnej~JzqyaR`Q~u zfY$j$^Sq|9avnIkydGS-@a+@KzDoqlLLYt45>&DYz=~?3Fk#@Z87R5#A}*GAgiM@q zAlgF&*X%cK9K?Za0F{LDAaqvau@^+kPtSe|-S@uMWM02Rv1+iZ zGz&}eOFzmUb9gL~DSc-LfXiS`l-{m)u%J0OH`}dp-lj~RCinkEps2}igHYsTRw6Sfo^2Bxu?e&jE#g_!o{7U`id(4`fQ zDH`$)_b!yza2kd_+jPr%gTMPYJWIvx7*C&U=DP<3ixRZS1Y8x=v-mv!f*+xzMe{B9 zdXC|^krclwQD9j9lpG=B*dTmmB0)4T*4W@94wg`0LS(3(0 zlrNob+^bsJYTQ>U&>BDpOmBD+icuG`-^R zDR~G_ci~iNkma%df*0G*GIgLx(I6*w)iLq7_7rI(sD-8%?tf%+7Oy$NSSsu4nG4rJ zPR7d}38Q^T+A~Wo%pSo>@#G{KMv-eV(^69t|9VbnBo+JcxuhDHCCmPrKzdoq6qofa zvr6aCg5*e5v~+GLnoG@AFF74tE$gjmRqVW!N8l29bTTKF({>}fm z*l4BOl`if1u>{+h_&{C5$xaS(PyjFF*WQJQ7Ju{;7=5J?P4NE>H+YY2K@S=2j4ioL zACFiW1$W8}lxCymSrYO9ZtXQr;(1foUK(tSl$DmpE+Y|6?iDwBA&y_MK@#Gv;@iH&rys(ujW^4eVI71ilkN;%^Yf5_ z$G1Dijy({WA$v8e*kfl&JNa!8&4FpO>)DKWKu_fB{*LL$kQp4}_&pr@xWwOVm<&5x gpQ2WoUT7B!6u`rdz$+dLEh($ delta 1344 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 I!NKYO1?a^1lmGw# diff --git a/modular_citadel/icons/obj/genitals/penis_onmob.dmi b/modular_citadel/icons/obj/genitals/penis_onmob.dmi index 2457759b732edd537fa4ac5d22d8abc7c0b13073..0ab1b951a70ea5af5a8d0ed08fb908560a15b3a4 100644 GIT binary patch literal 4855 zcmZu#dpy(o{~y{C4V7?Qr=uH+GFEA3C^{Wj&v zTj3}piiM5HZ5U>3v+eVn&hL-!_jKNm$NTfXeBSTZ`}umm-=Ej>`S{#E;bae0&{P0{ zK+t0jcBeofIoMj3my`C)lr6hS3)2(7pE+V?W(EL2Z*T9|*x1z6)br=h7Zw%-bBo{K zcPuj}rWu0_5Xc(@`dVEHfI!m0s@f-eq;qA$PC1vk!M`P?0m2LTnh*d z3kbOa0)=OlW}rjjtW|H(7mboUgMal(sn-Z*=feXccLtu1Khs?vm?>F}yI1aiHKSrd z_C4q0^%jJc_L~Qc(ZgXS^y?F+#|?)r&DC2{bq>~(;a`qj-OP6~Nu4t6rtSPqanGG* ziPNPQ$!X%F7gN>m6(shh&zEwRzQND=ZYrty@b2j2R!>Xw4CKe=-M0h}pU`iEAG*dQ zM_+U=_1&lyaP1-N^0W4nanJL2tlzNLj=JlQ{vJr%v4S!SYp2b;*D^L~ZZj91JYMdw z-%wEYRC{|;1x|&N=qzWMaHGEAtuLNJ$6c;PdvUuUwt*G{Y+Hb zzOgLrzH|)oy}>I6=!N;MM+UEu@6C+bJ!;NY57DW#h$(_C4b7Trhmw5r^PBKGYz zJo$1%JJ{6knQ?7imjN^Q*Q$Q=c>9Hfk04n3)~78LbBJM0WjXBApO1eldDnO5h~Y<< z<;*=6)uRqb9}25kxW(6(!s=KnQp2vq1{9K06Vil(6@f+hEoGQtb5GMyzmcVR6NWOS zYhOTMacKnzq+)o?4t*v(Yjy~V{d#CKsLT3k9Ai5GOzd?OE>~}OEYfKADa7HHqpkOw z$=-8(OD;@Tm)^$zNli)@Y+DKu&&gO3k_?0&xVdpt3Nw#d(AOOJ-3Y>h6_N?_kb}BP zuh&5r)ooe|SL$Q@NflZ}IFVROB%6@#$vr1q$NEEr&dU& zamHG9o;YBWkAG_e3*WNG(6|hxfnQ~FEOFTNZ1QgH{PN+j_*NofVN?yUuTfc;gif<{ zXzW!MPF%mz$1zyVW)2O5zw*G|OFUYg4l^}M!mpu$|hOYDvzEY5sK zZuHZQKJc2iqL`01)PKbiT9yzN)pu>K+raLF)sGIqaGt=ASC6z=o_Pz>4O6{~k9A<>GXyd}uhIWziK~Zyzf-+4@wq*{ zll3}gdqou&rHR|am_S_&>6#HuX~8Xl!isYbkgIS3^sg(V84-gFj5hWapx+kv!88qw zBZx~971DtI9q$#R;oU-8V%YCwbU`Yj3pSzas`?i#sKDq<<}A5n9FW%E4>e5z1jPg7HI1|q{PnE_P; zM4oycGtapT);gLkKDaucz67;s3nt)|uZzOVmm%gK0Bjb0>9YuR1yeO_b^5Bvzl+8t z!2P2G_RPUnJS7Cr*uQG_hKqCa(6T07!Ph^N7e8xov81yWlVnIOVf_n}vUfrPVl+3T zF+1@R?R6vg+lZw@rlQ@)!EGsu7XFH{mJTl!B%hlJmn+a1&j~yvKm~WZL8qu)D2F1# z+m(G&fQ_>MwM9RwqQD)vhPs*VKQ+VH5CXAM%K%9marJFg>!Dzcqlrp61n&J1A3{qT z6V^Pz66zSQDy2yv?I;^btFnItE|FTX|JjFiPI7-fKuyHP%w?LPHjSL?@yr5ImEl{t)P8^r1 zAzZlD;wrSyQrm_l-4tx$z+^IkU&anDu8EX?q?!Kl)(+ceGgBkw0h;R+;PTEK=KNf( zJuUid9r}K;==EglnAw*EI$$P|(4}81Cljc_wK^Lk^`D`MgGh<@l#B){1yv}pJxWK} z5oZKSi)j?p7^l`&y~R@+3}^iow;sk3FHQ8p+|vhPFBn`!2T4*fY8vja16p~5VF|Y+ z+?3hl6rp6t$<+M^IB7Gc^mvX^ox$>HW&2KDjtL>E`UPa_F@C+)#U)Xu$q8axZU%u1 zzN{iZ*3_1ae5{sj~K}Agf5t7QKLWs>FnjIO2Npqi&LqnPm28#`yfMj z5+uK90vd*1qE7WFx?WS}xW-6+1|SKY*8CBf>qj{e;)yA3=+%QC6At9=?Vbb#972J< zcau?gM22qU<$MT_cON4!WyJ__W(X;LOcGvu6Z(TBw?Q{UyKB*H=6taC(v11_aG{2CO4AA1G{a~LXU~tZBNzE$v&;oW{cqhh zG)c#l=>Rz0HtZ00xi42F!Qx{(Yxs@p;(u_W(bK&(mvYtn3a)5`~eiES~VCz`0~n$@o^1eaH#SK}o4hAv^bnH7PJ`z2t3UqM0%w zRwGJ$W8!pF=;sZZ={TJWl*jN;i@i>Ft(bT|7X`rpuPq|3@FBlMi;0M~?{2qILVcoDA`9a$rF8hYwBDpIOrBvO}o?rplm;oeLG|%OZ1xD1%oPd z!BP@6^3au*1{8GVsx8rOv5#s)Y~coytds7++XmAoQ`ELjk`iqXQ*UGzk@2@70ViW2 z5eHf>Xs2dVcMw{W;|Co4oS3eF0lZVeUl z{AVpoI%dxu0KSJEx^(axO`0Q)39*9wijhNCZzkk=44+McQ*yhS=`8W zVMt0S>hmeb`Gx|HXM?(Dllzl#4$Md#bE7smHUvw0ftL#yTdQZ9(%;2 zDB@2C)L_=G8%&8{R8i{CFS3A>sYp*NOJEZE6saA>ogV$Z`j-_GCRTWwWhK2c+;hH| z#wsoNs#IBa&G5(%2+P|%>JOP{n9vM>-;==D#2rx0Hq?7a1~%gwy~cGr5cU?Q^A_nk zBQ=3nvK9y=V{1||*Ye*9Xcj{&2>SCf-2C@kI5lAZDuCur?X{DoH)~bh` zMw|Xms}l<|!JTas3e^rg8wFV)gPG1ao|kS_2`(Md@w z0TP}pl1T@b9R4}HsH7utYRQ!d|C{(-e@R7cPjmh*9ItD2kMrF;yVX)-9OY2`0bICYP_vONViE=LikK= zd?Q77p=bDEsdtS3(#+`wx1ffc3Di;ui5+$?Vb_s2M{BS|Ve$w$J5(tkQ2&@d*F+*YQ1>XExO(e%wqx{b1G?k$-*+6M%B z>Yzr`YDbW|l(^A#0ASLQ8~aBcu+Zo0++fWFgzn<28h@>()6(@48tVwFi30mS4sfuN zDGAXu4;Os3=B$?;hXn{aZB3tZP?3YcAL|m9Bs>-s36fhC4p7W!LyA71U?+xuRa52b z>nMmUOjP+Oh5QD><)&*r93c2?qEOVDYWs@g{H*9$a z)gBz$Grjtk-V^UyHg9_*sGa9=2v)o_mNvW~q%PWDIe)HC?$lSaY8i#Q;#gVYXkNqQ j$z7&(nhM$k>vjM%#ku=s#4)IDZ5xgqak4A3@rwIDtGgXE literal 3880 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 diff --git a/modular_citadel/icons/obj/genitals/vagina.dmi b/modular_citadel/icons/obj/genitals/vagina.dmi index 00891888a44047465c86f73ba5b441a0f56e884a..39bdd48e89a70449a43ab36290da524de343af45 100644 GIT binary patch delta 463 zcmV;=0Wkjl1M&orMj`-|Lq+Epbo!JXeXfNPv6kcI@+XHPD$)w3+J1eq7-lmTAf&pHU762H%r+J>+)07aHK%S@Y ze;SJ4ckCHt-z4TyMxq8Hk0tQu>Q+=6*cyE;mpm!e2Gr*CJw;5Rs0&b?!MS>Wu2Coo zK;)j^${J9OAdFW}Yqzc^gF;aNqL->9*8oZmSJg+!v_Bt;HUkPrQ6+(e{O^mPyY%*-(#>a%}+Nd@lw^{lQ%AfkB|-$N|uOXxUsM-?8t#IDJ>I_wvf?{|Sbkb?$fN@jw6o002ovPDHLk FV1h|e)3^Wt delta 346 zcmV-g0j2)(1pWh%Mk0WeLq+IMAMi+BUgUEI!{Eyl(|A;0d&e)(oHLezO@BH1CmF&I-I zHIj6V!vL5YqR>mE3T0BF=%OZySQ+qt6>*LkQ7D;8U(p-t5m5jrqdY}{IWC9-oWP$^ zI0gD^N1$eD``KHV7rO7S2@+-=;1pRw00lqb_bE;?L4h{u(~NvC;^4iBzofe*X>Vu| zBno;f1nPWKtYx1Qd%Tt$usK}pg%g~rQgAai)tw#i5=g4oK(*(9-FfwY;}qL1Kf7iX s+tN+p{?Y;bsS|g^gxi5VVx7;)17UDJ@=UOoxc~qF07*qoM6N<$f;#e;3;+NC diff --git a/modular_citadel/icons/obj/genitals/vagina_onmob.dmi b/modular_citadel/icons/obj/genitals/vagina_onmob.dmi index c22c12ded338f74567d6521f524ebb9a64d1ae81..e6ad183687987a2e865effef73ec8c3ab1ab668f 100644 GIT binary patch delta 1118 zcmZ3@KACfZI9~$?GXn#|WJ%XvAZ0L7)v*3Q14Hb80W%<%u_VYZn8D%MjWi(Vb5%%0 ziA!p6a#3bMNoIZ?14G4}wNnmqHyMZ=JO6IIMCsOm(|NH@-29R*<&|4jHpgr_d+7hZ zOm<<43tFWNwLNnLNcQW}Ot6nO+KG|`qbn~YPQ-h~HeRbD^ zwZ7|B(YJ=4LXS_Y80PKhoc!ke@*hUdVu?;>S|_|%MYgQGyMBgsTkaRVy^d?W&u{!& zR{8CMGn?w;n*4wg3Ll`v0k4U%#nhyHoV%B`3%4f3_?z$2@pG(XU&wEq}s<^HqG; z<)w~X&i?fABpCT{<$UKqZCXt1H<FH%=1G&q>Fi9X?Ab;uQn|rU9UuU0^{QT?b;9blYOwT(kNY-nFDKaV7`B;%>B`f=_ zuI7AMg4E^j>-neq-`{6v$M`Zmp{9`yrjUW*f}4%}{8%}|ryfQQ^qqZm zmh<-h}IgWB0Gi zJK$tJzr&v&(pR2;Uhl}jaCe6JlHcXuueIM`d6TE7oxEq)WVL6TY))kV&PdVgUc6^h zciOZ4_IdZ6oj=>#=ihb={#?I*+xE*hYQ9z18lOEY&OdGYrskig7QdFhd30;yek;*8 z$@^+*QiXT#-18;A-Y`M^^UwQwW*b(2-ael@-~DDcCr7a>C)Z~snP<5fGyZq9{?t%9 z(_WZp*T?s{)n~?fmBTff@@mtB)MkjP&5}@?Bds=X-dE{QJA`M{ZaWW-I8RqUmvv4F FO#pf){Luga delta 884 zcmV-)1B?8V39AQ?7Y<+q0{{R3K&`V50000jktH#IXZa3j00001bW%=J06^y0W&i*H z?|M{NbVOxyV{&P5bZKvH004NLt&~p-f-o4y&+bzUy;i9GxpfIEI%E*t<)uv>=!$I_ ze*2~#EF@toc6r~y^X&KT8T0UFyFbJ@Iv!9(g=9C5*LX4Wk@I9k<+_=N$jK?oa@93b zfug#9bSuahha`WLz>^^Hlim3gUtHu6CS>D+oK!$bn>zR^3&vzCy-N$Ibs74TWxK-3 zkRgLRs6apO)wQe1d2T z@%r6n8-@3)GXIklZ;oEC*5w381E$;US8uEM?X3q_lh-HUB*94rn|IOrce#h>6R2;2 z`S?14B0hcw?l)qRZv6-q8%VYO6a)Z&004lcT6S%1n-}OaFVhJ&WqEzRKA*n-|M^oE z->{mp{S@hQEgM9H0Blr0001Zh>N(on^vb&zkh`j?8huVt?$RL-=`Z$uVCEZ000000APXA z`h3`*7~=j!TAxqj_lGRL^&c<{yYd7aZap{)vb$?+teyke| zSM&$!D|oWNKTbgwU*EyS`t=58Z=pDWbp7U^f_E@p|Ee7VoQ*%Z{6;Ch(!ECj0000< KMNUMnLSTZC1f0bH diff --git a/tgstation.dme b/tgstation.dme index 4d74c8a95f..dea02c485f 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2502,12 +2502,6 @@ #include "code\modules\research\server.dm" #include "code\modules\research\stock_parts.dm" #include "code\modules\research\designs\AI_module_designs.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_construction.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_electronics.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_medical_and_dinnerware.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_sec_and_hacked.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tcomms_and_misc.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tools.dm" #include "code\modules\research\designs\biogenerator_designs.dm" #include "code\modules\research\designs\bluespace_designs.dm" #include "code\modules\research\designs\comp_board_designs.dm" @@ -2527,6 +2521,12 @@ #include "code\modules\research\designs\stock_parts_designs.dm" #include "code\modules\research\designs\telecomms_designs.dm" #include "code\modules\research\designs\weapon_designs.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_construction.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_electronics.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_medical_and_dinnerware.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_sec_and_hacked.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tcomms_and_misc.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tools.dm" #include "code\modules\research\machinery\_production.dm" #include "code\modules\research\machinery\circuit_imprinter.dm" #include "code\modules\research\machinery\departmental_circuit_imprinter.dm" From 84aafb87f91c3e142096e5699330e69f165fa339 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Sun, 26 May 2019 04:52:44 -0500 Subject: [PATCH 10/44] Lizard tails are actually marked --- .../mob/living/carbon/human/species_types/lizardpeople.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index c5a64ebd13..30bf705547 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -97,6 +97,7 @@ brutemod = 0.9 /datum/species/lizard/ashwalker/on_species_gain(mob/living/carbon/human/C, datum/species/old_species) - if((C.dna.features["spines"] != "None" ) && (C.dna.features["tail"] == "None")) //tbh, it's kinda ugly for them not to have a tail yet have floating spines - C.dna.features["tail"] = "Smooth" + if((C.dna.features["spines"] != "None" ) && (C.dna.features["tail_lizard"] == "None")) //tbh, it's kinda ugly for them not to have a tail yet have floating spines + C.dna.features["tail_lizard"] = "Smooth" + C.update_body() return ..() From 93813613aacb862d10c011b87bfe941b45887156 Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Mon, 27 May 2019 14:42:07 -0400 Subject: [PATCH 11/44] Some changes. --- code/game/objects/items/crayons.dm | 16 +++++++++++----- .../code/game/gamemodes/gangs/gang.dm | 13 +++++++------ .../code/game/gamemodes/gangs/gang_datums.dm | 2 +- .../code/game/gamemodes/gangs/gang_items.dm | 14 ++++++++++---- .../code/game/gamemodes/gangs/gang_pen.dm | 5 +++-- 5 files changed, 32 insertions(+), 18 deletions(-) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 184f4d02a3..30089f298f 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -69,6 +69,7 @@ var/post_noise = FALSE var/datum/team/gang/gang //For marking territory. + var/gang_tag_delay = 30 //this is the delay for gang mode tag applications on anything that gang = true on. /obj/item/toy/crayon/suicide_act(mob/user) user.visible_message("[user] is jamming [src] up [user.p_their()] nose and into [user.p_their()] brain. It looks like [user.p_theyre()] trying to commit suicide!") @@ -324,7 +325,7 @@ audible_message("You hear spraying.") playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5) - var/takes_time = !instant + var/takes_time = !instant //For order purposes, since I'm maximum bad. if(gang_mode) takes_time = TRUE @@ -333,7 +334,7 @@ wait_time *= 3 if(takes_time) //This is what deteremines the time it takes to spray a tag in gang mode. 50 is Default. - if(!do_after(user, 25, target = target)) //Lets try 25 instead of giving them all spraycans. + if(!do_after(user, gang_tag_delay, target = target)) //25 is a good number, but we have gang_tag_delay var now. return if(length(text_buffer)) @@ -345,7 +346,7 @@ if(actually_paints) if(gang_mode) - // Double check it wasn't tagged in the meanwhile + // Double check it wasn't tagged in the meanwhile. if(!can_claim_for_gang(user, target)) return tag_for_gang(user, target) @@ -588,6 +589,7 @@ is_capped = TRUE self_contained = FALSE // Don't disappear when they're empty can_change_colour = TRUE + gang = TRUE //Gang check is true for all things upon the honored hierarchy of spraycans, except those that are FALSE. validSurfaces = list(/turf/open/floor, /turf/closed/wall) reagent_contents = list("welding_fuel" = 1, "ethanol" = 1) @@ -733,6 +735,7 @@ icon_capped = "deathcan2_cap" icon_uncapped = "deathcan2" use_overlays = FALSE + gang = FALSE volume_multiplier = 25 charges = 100 @@ -747,6 +750,7 @@ icon_capped = "clowncan2_cap" icon_uncapped = "clowncan2" use_overlays = FALSE + gang = FALSE reagent_contents = list("lube" = 1, "banana" = 1) volume_multiplier = 5 @@ -759,6 +763,7 @@ icon_capped = "mimecan_cap" icon_uncapped = "mimecan" use_overlays = FALSE + gang = FALSE can_change_colour = FALSE paint_color = "#FFFFFF" //RGB @@ -770,9 +775,10 @@ /obj/item/toy/crayon/spraycan/gang charges = 20 // Charges back to 20, which is the default value for them. gang = TRUE + gang_tag_delay = 15 //Its 50% faster than a regular spraycan, for tagging. After-all they did spend points/meet the boss. pre_noise = FALSE - post_noise = TRUE + post_noise = TRUE // Its even more stealthy just a tad. /obj/item/toy/crayon/spraycan/gang/Initialize(loc, datum/team/gang/G) ..() @@ -784,7 +790,7 @@ /obj/item/toy/crayon/spraycan/gang/examine(mob/user) . = ..() if(user.mind && user.mind.has_antag_datum(/datum/antagonist/gang) || isobserver(user)) - to_chat(user, "This spraycan has been specially modified for tagging territory.") + to_chat(user, "This spraycan has been specially modified with a stage 2 nozzle kit, making it faster.") #undef RANDOM_GRAFFITI #undef RANDOM_LETTER diff --git a/modular_citadel/code/game/gamemodes/gangs/gang.dm b/modular_citadel/code/game/gamemodes/gangs/gang.dm index 8192041e3e..00ce3f81a9 100644 --- a/modular_citadel/code/game/gamemodes/gangs/gang.dm +++ b/modular_citadel/code/game/gamemodes/gangs/gang.dm @@ -193,7 +193,7 @@ "hands" = SLOT_HANDS ) - if(gangtool) + if(gangtool)//Here is where all of the text occurs when a gang boss first spawns in. var/obj/item/device/gangtool/G = new() var/where = H.equip_in_one_of_slots(G, slots) if (!where) @@ -201,7 +201,7 @@ else G.register_device(H) to_chat(H, "The Gangtool in your [where] will allow you to purchase weapons and equipment, send messages to your gang, and recall the emergency shuttle from anywhere on the station.") - to_chat(H, "As the gang boss, you can also promote your gang members to lieutenant. Unlike regular gangsters, Lieutenants cannot be deconverted and are able to use recruitment pens and gangtools.") + to_chat(H, "As the gang boss, you can also promote your gang members to lieutenant. Unlike regular gangsters, Lieutenants cannot be deconverted and are able to use gangtools too.") if(pen) var/obj/item/pen/gang/T = new() @@ -209,7 +209,7 @@ if (!where2) to_chat(H, "Your Syndicate benefactors were unfortunately unable to get you a recruitment pen to start.") else - to_chat(H, "The recruitment pen in your [where2] will help you get your gang started. Stab unsuspecting crew members with it to recruit them.") + to_chat(H, "The recruitment pen in your [where2] will help you get your gang started. Stab unsuspecting crew members with it to recruit them. All gangsters can use these, distribute them to see your gang grow.") if(spraycan) var/obj/item/toy/crayon/spraycan/gang/SC = new(null,gang) @@ -327,7 +327,7 @@ GLOB.gangs -= src ..() -/datum/team/gang/roundend_report() +/datum/team/gang/roundend_report() //roundend report. var/list/report = list() report += "[name]:" if(winner) @@ -342,9 +342,10 @@ return "
[report.Join("
")]
" -/datum/team/gang/proc/greet_gangster(datum/mind/gangster) +/datum/team/gang/proc/greet_gangster(datum/mind/gangster) //The text a person receives when recruited. to_chat(gangster, "You are now a member of the [name] Gang!") - to_chat(gangster, "Help your bosses take over the station by claiming territory with special spraycans only they can provide. Simply spray on any unclaimed area of the station.") + to_chat(gangster, "Help your bosses take over the station by claiming territory with spraycans. Simply spray on any unclaimed area of the station.") + to_chat(gangster, "You can also use recruitment pens to recruit more to your cause, If your boss provides you one.") to_chat(gangster, "Their ultimate objective is to take over the station with a Dominator machine.") to_chat(gangster, "You can identify your mates by their large, \[G\] icon.") gangster.store_memory("You are a member of the [name] Gang!") diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm b/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm index 010778413b..334d6bf423 100644 --- a/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm +++ b/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm @@ -3,7 +3,7 @@ // color (must be a hex, "blue" isn't acceptable due to how spraycans are handled) // inner_outfits (must be a list() with typepaths of the clothes in it. One is fine, but there is support for multiple: one will be picked at random when bought) // outer_outfits (same as above) -// You also need to make a gang graffiti, that will go in crayondecal.dmi inside our icons(not tg's), with the same name of the gang it's assigned to. Nothing else,just the icon. +// You also need to make a gang graffiti, that will go in crayondecal.dmi inside our icons, with the same name of the gang it's assigned to. Nothing else,just the icon. // Those are all required. If one is missed, stuff could break. /datum/team/gang/clandestine diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_items.dm b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm index ccaab546e5..0f16b6462b 100644 --- a/modular_citadel/code/game/gamemodes/gangs/gang_items.dm +++ b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm @@ -76,7 +76,7 @@ var/outfit = pick(gang.outer_outfits) if(outfit) var/obj/item/O = new outfit(user.loc) - O.armor = O.armor.setRating(melee = 20, bullet = 35, laser = 10, energy = 10, bomb = 30, bio = 0, rad = 0, fire = 30, acid = 30) + O.armor = O.armor.setRating(melee = 25, bullet = 35, laser = 15, energy = 10, bomb = 30, bio = 0, rad = 0, fire = 30, acid = 30) O.desc += " Tailored for the [gang.name] Gang to offer the wearer moderate protection against ballistics and physical trauma." user.put_in_hands(O) to_chat(user, " This is your gang's official outerwear, wearing it will increase your influence") @@ -135,6 +135,12 @@ icon_state = "knuckles" w_class = 3 +datum/gang_item/clothing/shades //Addition: Why not have cool shades on a gang member anyways? + name = "Cool Sunglasses" + id = "glasses" + cost = 5 + item_path = /obj/item/clothing/glasses/sunglasses + /datum/gang_item/clothing/belt name = "Badass Belt" id = "belt" @@ -168,7 +174,7 @@ cost = 5 item_path = /obj/item/switchblade -/datum/gang_item/weapon/surplus +/datum/gang_item/weapon/surplus //For when a gang boss is extra broke or cheap. name = "Surplus Rifle" id = "surplus" cost = 6 @@ -177,7 +183,7 @@ /datum/gang_item/weapon/ammo/surplus_ammo name = "Surplus Rifle Ammo" id = "surplus_ammo" - cost = 5 + cost = 3 item_path = /obj/item/ammo_box/magazine/m10mm/rifle /datum/gang_item/weapon/improvised @@ -308,7 +314,7 @@ /datum/gang_item/equipment/wetwork_boots name = "Wetwork boots" id = "wetwork" - cost = 10 + cost = 8 item_path = /obj/item/clothing/shoes/combat/gang /obj/item/clothing/shoes/combat/gang diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_pen.dm b/modular_citadel/code/game/gamemodes/gangs/gang_pen.dm index ceb780a8c5..3dfdf4dd9b 100644 --- a/modular_citadel/code/game/gamemodes/gangs/gang_pen.dm +++ b/modular_citadel/code/game/gamemodes/gangs/gang_pen.dm @@ -9,12 +9,13 @@ . = ..() last_used = world.time -/obj/item/pen/gang/attack(mob/living/M, mob/user, stealth = TRUE) +/obj/item/pen/gang/attack(mob/living/M, mob/user, stealth = TRUE) //ha if(!istype(M)) return if(!ishuman(M) || !ishuman(user) || M.stat == DEAD) return ..() - var/datum/antagonist/gang/boss/L = user.mind.has_antag_datum(/datum/antagonist/gang/boss) + //var/datum/antagonist/gang/boss/L = user.mind.has_antag_datum(/datum/antagonist/gang/boss) //Pen works with bosses only. + var/datum/antagonist/gang/L = user.mind.has_antag_datum(/datum/antagonist/gang) //Pen works with anyone in gang. if(!L) return ..() if(!..()) From 21c678736b5bafd360318e78d30b6eedb5bcc7cf Mon Sep 17 00:00:00 2001 From: Sishen Date: Mon, 27 May 2019 22:46:28 -0400 Subject: [PATCH 12/44] crewmonitor --- _maps/map_files/BoxStation/BoxStation.dmm | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index bba92be7a7..dcd2c47cb2 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -27901,8 +27901,8 @@ pixel_x = 30 }, /obj/machinery/light, -/mob/living/simple_animal/bot/cleanbot{ - name = "C.L.E.A.N." +/obj/machinery/computer/crew{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -31596,7 +31596,7 @@ /area/medical/sleeper) "bwC" = ( /obj/machinery/computer/med_data{ - dir = 4 + dir = 3 }, /turf/open/floor/plasteel/white, /area/medical/sleeper) @@ -56882,6 +56882,12 @@ /obj/item/pen, /turf/open/floor/plasteel/white, /area/science/circuit) +"ium" = ( +/mob/living/simple_animal/bot/cleanbot{ + name = "C.L.E.A.N." + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "izv" = ( /obj/machinery/vending/clothing, /obj/machinery/light/small{ @@ -94182,7 +94188,7 @@ blm bmL boi bpw -bhh +ium bsx btX bvj From 674e8a42274a31a824976cd3143dfd99454e2a4e Mon Sep 17 00:00:00 2001 From: Coolgat3 Date: Thu, 30 May 2019 18:59:43 +0200 Subject: [PATCH 13/44] Glubbs --- code/modules/clothing/gloves/miscellaneous.dm | 2 +- icons/obj/clothing/gloves.dmi | Bin 13922 -> 14207 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index b691074c27..bc36353ac5 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -27,7 +27,7 @@ /obj/item/clothing/gloves/combat name = "combat gloves" desc = "These tactical gloves are fireproof and shock resistant." - icon_state = "black" + icon_state = "combat" item_state = "blackgloves" siemens_coefficient = 0 permeability_coefficient = 0.05 diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index a90efcdfea1c50dc851f4b953bee6cf81eacc40e..619db9290dcae78ccc808e43b118948ee80f2c7c 100644 GIT binary patch literal 14207 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 From 85ab98884250d368bb5ffcc2833e9cba853f6448 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Thu, 30 May 2019 20:09:19 +0200 Subject: [PATCH 14/44] 0, null, and "", all fulfill the ! operator. --- .../food_and_drinks/drinks/drinks/bottle.dm | 2 +- .../mob/living/carbon/human/human_defense.dm | 2 +- code/modules/mob/living/living_defense.dm | 16 +++++----------- .../guns/energy/kinetic_accelerator.dm | 4 ++-- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 46e637e640..b753a6c246 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -73,7 +73,7 @@ var/mob/living/carbon/human/H = target var/headarmor = 0 // Target's head armor - armor_block = H.run_armor_check(affecting, "melee","","",armour_penetration) // For normal attack damage + armor_block = H.run_armor_check(affecting, "melee", null, null,armour_penetration) // For normal attack damage //If they have a hat/helmet and the user is targeting their head. if(istype(H.head, /obj/item/clothing/head) && affecting == BODY_ZONE_HEAD) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index b66ebdb001..d280c1d311 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -256,7 +256,7 @@ var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) if(!affecting) affecting = get_bodypart(BODY_ZONE_CHEST) - var/armor_block = run_armor_check(affecting, "melee","","",10) + var/armor_block = run_armor_check(affecting, "melee", null, null,10) playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) visible_message("[M] has slashed at [src]!", \ diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 643c91b95a..27e06f327f 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -1,24 +1,18 @@ -/mob/living/proc/run_armor_check(def_zone = null, attack_flag = "melee", absorb_text = null, soften_text = null, armour_penetration, penetrated_text) +/mob/living/proc/run_armor_check(def_zone = null, attack_flag = "melee", absorb_text = "Your armor absorbs the blow!", soften_text = "Your armor softens the blow!", armour_penetration, penetrated_text = "Your armor was penetrated!") var/armor = getarmor(def_zone, attack_flag) //the if "armor" check is because this is used for everything on /living, including humans if(armor && armour_penetration) armor = max(0, armor - armour_penetration) if(penetrated_text) - to_chat(src, "[penetrated_text]") - else - to_chat(src, "Your armor was penetrated!") + to_chat(src, "[penetrated_text]") else if(armor >= 100) if(absorb_text) - to_chat(src, "[absorb_text]") - else - to_chat(src, "Your armor absorbs the blow!") + to_chat(src, "[absorb_text]") else if(armor > 0) if(soften_text) - to_chat(src, "[soften_text]") - else - to_chat(src, "Your armor softens the blow!") + to_chat(src, "[soften_text]") return armor @@ -43,7 +37,7 @@ return /mob/living/bullet_act(obj/item/projectile/P, def_zone) - var/armor = run_armor_check(def_zone, P.flag, "","",P.armour_penetration) + var/armor = run_armor_check(def_zone, P.flag, null, null,P.armour_penetration) if(!P.nodamage) apply_damage(P.damage, P.damage_type, def_zone, armor) if(P.dismemberment) diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index fba355d738..a4ec979a06 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -424,7 +424,7 @@ M.gets_drilled(K.firer) if(modifier) for(var/mob/living/L in range(1, target_turf) - K.firer - target) - var/armor = L.run_armor_check(K.def_zone, K.flag, "", "", K.armour_penetration) + var/armor = L.run_armor_check(K.def_zone, K.flag, null, null, K.armour_penetration) L.apply_damage(K.damage*modifier, K.damage_type, K.def_zone, armor) to_chat(L, "You're struck by a [K.name]!") @@ -530,7 +530,7 @@ var/kill_modifier = 1 if(K.pressure_decrease_active) kill_modifier *= K.pressure_decrease - var/armor = L.run_armor_check(K.def_zone, K.flag, "", "", K.armour_penetration) + var/armor = L.run_armor_check(K.def_zone, K.flag, null, null, K.armour_penetration) L.apply_damage(bounties_reaped[L.type]*kill_modifier, K.damage_type, K.def_zone, armor) /obj/item/borg/upgrade/modkit/bounty/proc/get_kill(mob/living/L) From fa4cf533cbafae880223b52b84c1b6c8d52262da Mon Sep 17 00:00:00 2001 From: Ghommie Date: Thu, 30 May 2019 20:20:05 +0200 Subject: [PATCH 15/44] honestly AP bullet spam is ballocks too. --- code/modules/mob/living/living_defense.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 27e06f327f..0d74094d81 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -37,7 +37,7 @@ return /mob/living/bullet_act(obj/item/projectile/P, def_zone) - var/armor = run_armor_check(def_zone, P.flag, null, null,P.armour_penetration) + var/armor = run_armor_check(def_zone, P.flag, null, null, P.armour_penetration, null) if(!P.nodamage) apply_damage(P.damage, P.damage_type, def_zone, armor) if(P.dismemberment) From 5dde4555cce52bf2ef86ff067cf9dce9319e1174 Mon Sep 17 00:00:00 2001 From: Sishen Date: Fri, 31 May 2019 21:11:39 -0400 Subject: [PATCH 16/44] lmao2crate --- code/modules/cargo/packs.dm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index ca8f10869d..5e26914349 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -874,7 +874,6 @@ name = "Shield Generator Satellite" desc = "Protect the very existence of this station with these Anti-Meteor defenses. Contains three Shield Generator Satellites." cost = 3000 - special = TRUE contains = list( /obj/machinery/satellite/meteor_shield, /obj/machinery/satellite/meteor_shield, @@ -886,8 +885,7 @@ /datum/supply_pack/engineering/shield_sat_control name = "Shield System Control Board" desc = "A control system for the Shield Generator Satellite system." - cost = 5000 - special = TRUE + cost = 3000 contains = list(/obj/item/circuitboard/computer/sat_control) crate_name= "shield control board crate" From 78822d2e42eb3555ac1569483c3e481336ad217e Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 31 May 2019 23:06:08 -0400 Subject: [PATCH 17/44] Update resonator.dm --- code/modules/mining/equipment/resonator.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/mining/equipment/resonator.dm b/code/modules/mining/equipment/resonator.dm index e23c3deb58..2672bc1cb6 100644 --- a/code/modules/mining/equipment/resonator.dm +++ b/code/modules/mining/equipment/resonator.dm @@ -8,10 +8,10 @@ righthand_file = 'icons/mob/inhands/equipment/mining_righthand.dmi' desc = "A handheld device that creates small fields of energy that resonate until they detonate, crushing rock. It does increased damage in low pressure." w_class = WEIGHT_CLASS_NORMAL - force = 15 + force = 18 throwforce = 10 var/burst_time = 30 - var/fieldlimit = 4 + var/fieldlimit = 6 var/list/fields = list() var/quick_burst_mod = 0.8 @@ -20,7 +20,7 @@ desc = "An upgraded version of the resonator that can produce more fields at once, as well as having no damage penalty for bursting a resonance field early." icon_state = "resonator_u" item_state = "resonator_u" - fieldlimit = 6 + fieldlimit = 8 quick_burst_mod = 1 /obj/item/resonator/attack_self(mob/user) From d6486e2f6c9aae1904d45befd6434c19aac457d0 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 31 May 2019 23:13:31 -0400 Subject: [PATCH 18/44] Update resonator.dm --- code/modules/mining/equipment/resonator.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mining/equipment/resonator.dm b/code/modules/mining/equipment/resonator.dm index 2672bc1cb6..f63b459f10 100644 --- a/code/modules/mining/equipment/resonator.dm +++ b/code/modules/mining/equipment/resonator.dm @@ -20,6 +20,7 @@ desc = "An upgraded version of the resonator that can produce more fields at once, as well as having no damage penalty for bursting a resonance field early." icon_state = "resonator_u" item_state = "resonator_u" + force = 20 fieldlimit = 8 quick_burst_mod = 1 From a37f84fb9b6d02ab44b60cde2d42498d9a7b9a4d Mon Sep 17 00:00:00 2001 From: CalamaBanana Date: Sat, 1 Jun 2019 17:28:17 +0200 Subject: [PATCH 19/44] Ports RP Deer taur and adds Elf Ears to Mammals Ports RP Deer taur and adds Elf Ears to Mammals --- code/modules/clothing/suits/_suits.dm | 2 +- .../mob/dead/new_player/sprite_accessories.dm | 13 +++++++++++++ modular_citadel/icons/mob/mam_taur.dmi | Bin 27986 -> 33826 bytes 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/code/modules/clothing/suits/_suits.dm b/code/modules/clothing/suits/_suits.dm index 8a02245550..7346dc9ea9 100644 --- a/code/modules/clothing/suits/_suits.dm +++ b/code/modules/clothing/suits/_suits.dm @@ -36,7 +36,7 @@ if(tauric == TRUE) center = TRUE dimension_x = 64 - else if(H.dna.features["taur"] in list("Fox","Wolf","Otie","Drake","Lab","Shepherd","Husky","Eevee","Panther","Horse","Cow","Tiger")) + else if(H.dna.features["taur"] in list("Fox","Wolf","Otie","Drake","Lab","Shepherd","Husky","Eevee","Panther","Horse","Cow","Tiger","Deer")) taurmode = PAW_TAURIC if(tauric == TRUE) center = TRUE diff --git a/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm b/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm index a4532d0820..e552c2cbdd 100644 --- a/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm +++ b/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm @@ -959,6 +959,13 @@ name = "Eevee" icon_state = "eevee" + +/datum/sprite_accessory/mam_ears/elf + name = "Elf" + icon_state = "elf" + color_src = MUTCOLORS3 + + /datum/sprite_accessory/mam_ears/elephant name = "Elephant" icon_state = "elephant" @@ -1497,6 +1504,12 @@ datum/sprite_accessory/mam_tails/insect icon_state = "cow" taur_mode = HOOF_TAURIC +/datum/sprite_accessory/taur/deer + name = "Deer" + icon_state = "deer" + taur_mode = HOOF_TAURIC + color_src = MUTCOLORS + /datum/sprite_accessory/taur/drake name = "Drake" icon_state = "drake" diff --git a/modular_citadel/icons/mob/mam_taur.dmi b/modular_citadel/icons/mob/mam_taur.dmi index 3d0d4a0e841e85f93eaf89a4c3447a09eca94d68..84367ebf0af6c83676f4354b51e6869dc6e6755d 100644 GIT binary patch literal 33826 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 n&FAV;ge#o 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 literal 27986 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 LEtPU5tMLB;xQmD- From 9aaeed6f8156543dc85cdadde458e37e3c00cc94 Mon Sep 17 00:00:00 2001 From: Sishen Date: Sat, 1 Jun 2019 19:46:09 -0400 Subject: [PATCH 20/44] Update packs.dm --- code/modules/cargo/packs.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 5e26914349..479a8db0ad 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -873,7 +873,7 @@ /datum/supply_pack/engineering/shield_sat name = "Shield Generator Satellite" desc = "Protect the very existence of this station with these Anti-Meteor defenses. Contains three Shield Generator Satellites." - cost = 3000 + cost = 4000 contains = list( /obj/machinery/satellite/meteor_shield, /obj/machinery/satellite/meteor_shield, @@ -885,7 +885,7 @@ /datum/supply_pack/engineering/shield_sat_control name = "Shield System Control Board" desc = "A control system for the Shield Generator Satellite system." - cost = 3000 + cost = 4000 contains = list(/obj/item/circuitboard/computer/sat_control) crate_name= "shield control board crate" From 9347ad57b11e0ff20bcf834efff894877f787f73 Mon Sep 17 00:00:00 2001 From: Sishen Date: Sat, 1 Jun 2019 20:20:55 -0400 Subject: [PATCH 21/44] sneaky erp --- code/modules/mob/say_vr.dm | 76 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index 6cc0ca185f..850566f625 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -117,6 +117,73 @@ proc/get_top_level_mob(var/mob/S) message = null emote_type = EMOTE_VISIBLE +///////////////// SUBTLE 2: NO GHOST BOOGALOO + +/datum/emote/living/subtler + key = "subtler" + key_third_person = "subtler" + message = null + mob_type_blacklist_typecache = list(/mob/living/brain) + + +/datum/emote/living/subtler/proc/check_invalid(mob/user, input) + . = TRUE + if(copytext(input,1,5) == "says") + to_chat(user, "Invalid emote.") + else if(copytext(input,1,9) == "exclaims") + to_chat(user, "Invalid emote.") + else if(copytext(input,1,6) == "yells") + to_chat(user, "Invalid emote.") + else if(copytext(input,1,5) == "asks") + to_chat(user, "Invalid emote.") + else + . = FALSE + +/datum/emote/living/subtler/run_emote(mob/user, params, type_override = null) + if(jobban_isbanned(user, "emote")) + to_chat(user, "You cannot send subtle emotes (banned).") + return FALSE + else if(user.client && user.client.prefs.muted & MUTE_IC) + to_chat(user, "You cannot send IC messages (muted).") + return FALSE + else if(!params) + var/subtle_emote = copytext(sanitize(input("Choose an emote to display.") as message|null), 1, MAX_MESSAGE_LEN) + if(subtle_emote && !check_invalid(user, subtle_emote)) + var/type = input("Is this a visible or hearable emote?") as null|anything in list("Visible", "Hearable") + switch(type) + if("Visible") + emote_type = EMOTE_VISIBLE + if("Hearable") + emote_type = EMOTE_AUDIBLE + else + alert("Unable to use this emote, must be either hearable or visible.") + return + message = subtle_emote + else + return FALSE + else + message = params + if(type_override) + emote_type = type_override + . = TRUE + if(!can_run_emote(user)) + return FALSE + + user.log_message(message, INDIVIDUAL_EMOTE_LOG) + message = "[user] " + "[message]" + + for(var/mob/M) + if(M in list(/mob/living)) + M.show_message(message) + + if(emote_type == EMOTE_AUDIBLE) + user.audible_message(message=message,hearing_distance=1) + else + user.visible_message(message=message,self_message=message,vision_distance=1) + log_emote("[key_name(user)] : [message]") + + message = null + ///////////////// VERB CODE /mob/living/verb/subtle() set name = "Subtle" @@ -125,3 +192,12 @@ proc/get_top_level_mob(var/mob/S) to_chat(usr, "Speech is currently admin-disabled.") return usr.emote("subtle") + +///////////////// VERB CODE 2 +/mob/living/verb/subtler() + set name = "Subtler" + set category = "IC" + if(GLOB.say_disabled) //This is here to try to identify lag problems + to_chat(usr, "Speech is currently admin-disabled.") + return + usr.emote("subtler") From 818ec19561278b6294531912c3ad8afd4b5787f5 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Sun, 2 Jun 2019 04:44:57 -0500 Subject: [PATCH 22/44] Working as intended, fixed a few other missing sprites Started groundwork for multi-breasts and hidden balls. --- code/__HELPERS/_cit_helpers.dm | 2 + code/__HELPERS/global_lists.dm | 8 ++- code/__HELPERS/mobs.dm | 3 +- code/modules/client/preferences.dm | 1 + code/modules/client/preferences_savefile.dm | 1 + .../code/modules/arousal/organs/breasts.dm | 11 ++-- .../code/modules/arousal/organs/eggsack.dm | 1 - .../code/modules/arousal/organs/genitals.dm | 49 +++++++++--------- .../organs/genitals_sprite_accessories.dm | 18 ++++++- .../code/modules/arousal/organs/penis.dm | 5 +- .../code/modules/arousal/organs/testicles.dm | 45 ++++++++-------- .../code/modules/arousal/organs/womb.dm | 2 - .../modules/client/preferences_savefile.dm | 1 + .../icons/obj/genitals/breasts_onmob.dmi | Bin 1593 -> 1401 bytes modular_citadel/icons/obj/genitals/penis.dmi | Bin 3200 -> 2624 bytes .../icons/obj/genitals/penis_onmob.dmi | Bin 4855 -> 3880 bytes .../icons/obj/genitals/testicles.dmi | Bin 0 -> 1116 bytes .../icons/obj/genitals/testicles_onmob.dmi | Bin 0 -> 762 bytes .../icons/obj/genitals/vagina_onmob.dmi | Bin 1171 -> 1076 bytes 19 files changed, 87 insertions(+), 60 deletions(-) create mode 100644 modular_citadel/icons/obj/genitals/testicles.dmi create mode 100644 modular_citadel/icons/obj/genitals/testicles_onmob.dmi diff --git a/code/__HELPERS/_cit_helpers.dm b/code/__HELPERS/_cit_helpers.dm index e21bee2e36..668b151b6e 100644 --- a/code/__HELPERS/_cit_helpers.dm +++ b/code/__HELPERS/_cit_helpers.dm @@ -59,8 +59,10 @@ GLOBAL_LIST_EMPTY(ipc_antennas_list) GLOBAL_LIST_EMPTY(cock_shapes_list)//global_lists.dm for the list initializations //Now also _DATASTRUCTURES globals.dm GLOBAL_LIST_EMPTY(cock_shapes_icons) //Associated list for names->icon_states for cockshapes. GLOBAL_LIST_EMPTY(balls_shapes_list) +GLOBAL_LIST_EMPTY(balls_shapes_icons) GLOBAL_LIST_EMPTY(breasts_size_list) GLOBAL_LIST_EMPTY(breasts_shapes_list) +GLOBAL_LIST_EMPTY(breasts_shapes_icons) GLOBAL_LIST_EMPTY(vagina_shapes_list) GLOBAL_LIST_INIT(cum_into_containers_list, list(/obj/item/reagent_containers/food/snacks/pie)) //Yer fuggin snowflake name list jfc GLOBAL_LIST_INIT(dick_nouns, list("dick","cock","member","shaft")) diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index f6ef08fe0d..3f3322c3ec 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -46,7 +46,6 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_dorsal, GLOB.xeno_dorsal_list) //genitals init_sprite_accessory_subtypes(/datum/sprite_accessory/penis, GLOB.cock_shapes_list) - for(var/K in GLOB.cock_shapes_list) var/datum/sprite_accessory/penis/value = GLOB.cock_shapes_list[K] GLOB.cock_shapes_icons[K] = value.icon_state @@ -54,6 +53,13 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list) GLOB.breasts_size_list = list("a","b","c","d","e") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing. + for(var/K in GLOB.breast_shapes_list) + var/datum/sprite_accessory/breasts/value = GLOB.breasts_shapes_list[K] + GLOB.breasts_shapes_icons[K] = value.icon_state + init_sprite_accessory_subtypes(/datum/sprite_accessory/testicles, GLOB.balls_shapes_list) + for(var/K in GLOB.balls_shapes_list) + var/datum/sprite_accessory/testicles/value = GLOB.balls_shapes_list[K] + GLOB.balls_shapes_icons[K] = value.icon_state //END OF CIT CHANGES //Species diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 8eb8d45cba..51c814a5f9 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -170,6 +170,7 @@ "balls_amount" = 2, "balls_sack_size" = BALLS_SACK_SIZE_DEF, "balls_size" = BALLS_SIZE_DEF, + "balls_shape" = "Pair", "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, @@ -187,7 +188,7 @@ "has_breasts" = FALSE, "breasts_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "breasts_size" = pick(GLOB.breasts_size_list), - "breasts_shape" = pick(GLOB.breasts_shapes_list), + "breasts_shape" = "Pair", "breasts_fluid" = "milk", "has_vag" = FALSE, "vag_shape" = pick(GLOB.vagina_shapes_list), diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index d80f56c8c8..91e7b2a5bc 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -117,6 +117,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) "balls_color" = "fff", "balls_amount" = 2, "balls_sack_size" = BALLS_SACK_SIZE_DEF, + "balls_shape" = "Pair", "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 39b44f1ab9..c2675ba867 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -330,6 +330,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_has_balls"] >> features["has_balls"] S["feature_balls_color"] >> features["balls_color"] S["feature_balls_size"] >> features["balls_size"] + S["feature_balls_shape"] >> features["balls_shape"] S["feature_balls_sack_size"] >> features["balls_sack_size"] S["feature_balls_fluid"] >> features["balls_fluid"] //breasts features diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm index 7d482ec3a0..3f8e3fc6f1 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/modular_citadel/code/modules/arousal/organs/breasts.dm @@ -5,7 +5,6 @@ icon = 'modular_citadel/icons/obj/genitals/breasts.dmi' zone = "chest" slot = "breasts" - w_class = 3 size = BREASTS_SIZE_DEF fluid_id = "milk" var/amount = 2 @@ -14,7 +13,7 @@ can_masturbate_with = TRUE masturbation_verb = "massage" can_climax = TRUE - fluid_transfer_factor =0.5 + fluid_transfer_factor = 0.5 /obj/item/organ/genital/breasts/Initialize() . = ..() @@ -40,6 +39,10 @@ switch(lowershape) if("pair") desc = "You see a pair of breasts." + if("quad") + desc = "You see two pairs of breast, one just under the other." + if("six") + desc = "You see three pairs of breasts, running from their chest to their belly." else desc = "You see some breasts, they seem to be quite exotic." if (size) @@ -54,10 +57,10 @@ if(ishuman(owner)) // Check before recasting type, although someone fucked up if you're not human AND have use_skintones somehow... var/mob/living/carbon/human/H = owner // only human mobs have skin_tone, which we need. color = "#[skintone2hex(H.skin_tone)]" - string = "breasts_[lowertext(shape)]_[size]-s" + string = "breasts_[GLOB.breasts_shapes_icons[lowertext(shape)]]_[size]-s" else color = "#[owner.dna.features["breasts_color"]]" - string = "breasts_[lowertext(shape)]_[size]" + string = "breasts_[GLOB.breasts_shapes_icons[lowertext(shape)]]_[size]" if(ishuman(owner)) var/mob/living/carbon/human/H = owner icon_state = sanitize_text(string) diff --git a/modular_citadel/code/modules/arousal/organs/eggsack.dm b/modular_citadel/code/modules/arousal/organs/eggsack.dm index 27104cd36a..402d246e40 100644 --- a/modular_citadel/code/modules/arousal/organs/eggsack.dm +++ b/modular_citadel/code/modules/arousal/organs/eggsack.dm @@ -6,7 +6,6 @@ zone = "groin" slot = "testicles" color = null //don't use the /genital color since it already is colored - w_class = 3 internal = TRUE var/egg_girth = EGG_GIRTH_DEF var/cum_mult = CUM_RATE_MULT diff --git a/modular_citadel/code/modules/arousal/organs/genitals.dm b/modular_citadel/code/modules/arousal/organs/genitals.dm index 592d1e2f33..460c6b4188 100644 --- a/modular_citadel/code/modules/arousal/organs/genitals.dm +++ b/modular_citadel/code/modules/arousal/organs/genitals.dm @@ -1,25 +1,26 @@ /obj/item/organ/genital color = "#fcccb3" - var/shape = "human" - var/sensitivity = 1 - var/list/genital_flags = list() - var/can_masturbate_with = FALSE - var/masturbation_verb = "masturbate" - var/can_climax = FALSE - var/fluid_transfer_factor = 0.0 //How much would a partner get in them if they climax using this? - var/size = 2 //can vary between num or text, just used in icon_state strings - var/fluid_id = null - var/fluid_max_volume = 50 - var/fluid_efficiency = 1 - var/fluid_rate = 1 - var/fluid_mult = 1 - var/producing = FALSE - var/aroused_state = FALSE //Boolean used in icon_state strings - var/aroused_amount = 50 //This is a num from 0 to 100 for arousal percentage for when to use arousal state icons. + w_class = WEIGHT_CLASS_NORMAL + var/shape = "human" + var/sensitivity = AROUSAL_START_VALUE + var/list/genital_flags = list() + var/can_masturbate_with = FALSE + var/masturbation_verb = "masturbate" + var/can_climax = FALSE + var/fluid_transfer_factor = 0.0 //How much would a partner get in them if they climax using this? + var/size = 2 //can vary between num or text, just used in icon_state strings + var/fluid_id = null + var/fluid_max_volume = 50 + var/fluid_efficiency = 1 + var/fluid_rate = 1 + var/fluid_mult = 1 + var/producing = FALSE + var/aroused_state = FALSE //Boolean used in icon_state strings + var/aroused_amount = 50 //This is a num from 0 to 100 for arousal percentage for when to use arousal state icons. var/obj/item/organ/genital/linked_organ - var/through_clothes = FALSE - var/internal = FALSE - var/hidden = FALSE + var/through_clothes = FALSE + var/internal = FALSE + var/hidden = FALSE /obj/item/organ/genital/Initialize() . = ..() @@ -188,7 +189,11 @@ T.color = "#[dna.features["balls_color"]]" T.size = dna.features["balls_size"] T.sack_size = dna.features["balls_sack_size"] - T.shape = "single" + T.shape = dna.features["balls_shape"] + if(dna.features["balls_shape"] == "Hidden") + T.internal = TRUE + else + T.internal = FALSE T.fluid_id = dna.features["balls_fluid"] T.fluid_rate = dna.features["balls_cum_rate"] T.fluid_mult = dna.features["balls_cum_mult"] @@ -298,9 +303,7 @@ for(var/obj/item/organ/O in H.internal_organs) if(isgenital(O)) var/obj/item/organ/genital/G = O - to_chat(world, "checking [G] for exposure") if(G.is_exposed()) //Checks appropriate clothing slot and if it's through_clothes - to_chat(world, "[G] is [G.is_exposed() ? "true" : "false"]") genitals_to_add += H.getorganslot(G.slot) //Now we added all genitals that aren't internal and should be rendered @@ -311,7 +314,6 @@ var/datum/sprite_accessory/S size = G.size aroused_state = G.aroused_state - to_chat(world, "switching [G.type] for sprite loading") switch(G.type) if(/obj/item/organ/genital/penis) S = GLOB.cock_shapes_list[G.shape] @@ -327,7 +329,6 @@ var/mutable_appearance/genital_overlay = mutable_appearance(S.icon, layer = -layer) genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]_[aroused_state]_[layertext]" - to_chat(world, "[G.slot]_[S.icon_state]_[size]_[aroused_state]_[layertext] is icon state") if(S.center) genital_overlay = center_image(genital_overlay, S.dimension_x, S.dimension_y) diff --git a/modular_citadel/code/modules/arousal/organs/genitals_sprite_accessories.dm b/modular_citadel/code/modules/arousal/organs/genitals_sprite_accessories.dm index eaf493482f..b913a90fb6 100644 --- a/modular_citadel/code/modules/arousal/organs/genitals_sprite_accessories.dm +++ b/modular_citadel/code/modules/arousal/organs/genitals_sprite_accessories.dm @@ -58,15 +58,20 @@ //Testicles //These ones aren't inert /datum/sprite_accessory/testicles - icon = 'modular_citadel/icons/obj/genitals/penis_onmob.dmi' + icon = 'modular_citadel/icons/obj/genitals/testicles_onmob.dmi' icon_state = "testicle" name = "testicle" //the preview name of the accessory color_src = "balls_color" locked = 0 +/datum/sprite_accessory/testicles/hidden + icon_state = "hidden" + name = "Hidden" + alt_aroused = TRUE + /datum/sprite_accessory/testicles/single icon_state = "single" - name = "single" + name = "Single" alt_aroused = TRUE //Vaginas @@ -120,6 +125,15 @@ name = "Pair" alt_aroused = TRUE +/datum/sprite_accessory/breasts/quad + icon_state = "quad" + name = "Quad" + alt_aroused = TRUE + +/datum/sprite_accessory/breasts/sextuple + icon_state = "sextuple" + name = "Sextuple" + alt_aroused = TRUE //OVIPOSITORS BE HERE /datum/sprite_accessory/ovipositor diff --git a/modular_citadel/code/modules/arousal/organs/penis.dm b/modular_citadel/code/modules/arousal/organs/penis.dm index 2498ff6370..b6cb8fa4b2 100644 --- a/modular_citadel/code/modules/arousal/organs/penis.dm +++ b/modular_citadel/code/modules/arousal/organs/penis.dm @@ -5,14 +5,13 @@ icon = 'modular_citadel/icons/obj/genitals/penis.dmi' zone = "groin" slot = ORGAN_SLOT_PENIS - w_class = 3 can_masturbate_with = TRUE masturbation_verb = "stroke" can_climax = TRUE - fluid_transfer_factor = 0.5 + fluid_transfer_factor = 0.5 size = 2 //arbitrary value derived from length and girth for sprites. var/length = 6 //inches - var/cached_length //used to detect a change in length + var/cached_length //used to detect a change in length var/girth = 0 var/girth_ratio = COCK_GIRTH_RATIO_DEF //0.73; check citadel_defines.dm var/knot_girth_ratio = KNOT_GIRTH_RATIO_DEF diff --git a/modular_citadel/code/modules/arousal/organs/testicles.dm b/modular_citadel/code/modules/arousal/organs/testicles.dm index 2ee92d743a..0415199415 100644 --- a/modular_citadel/code/modules/arousal/organs/testicles.dm +++ b/modular_citadel/code/modules/arousal/organs/testicles.dm @@ -1,22 +1,20 @@ /obj/item/organ/genital/testicles - name = "testicles" - desc = "A male reproductive organ." - icon_state = "testicles" - icon = 'modular_citadel/icons/obj/genitals/penis.dmi' - var/icon_on = 'modular_citadel/icons/obj/genitals/penis_onmob.dmi' - zone = "groin" - slot = "testicles" - w_class = 3 - size = BALLS_SIZE_MIN - var/size_name = "Normal" - shape = "single" - var/sack_size = BALLS_SACK_SIZE_DEF - fluid_id = "semen" - producing = TRUE + name = "testicles" + desc = "A male reproductive organ." + icon_state = "testicles" + icon = 'modular_citadel/icons/obj/genitals/testicles.dmi' + zone = "groin" + slot = "testicles" + size = BALLS_SIZE_MIN + var/size_name = "average" + shape = "single" + var/sack_size = BALLS_SACK_SIZE_DEF + fluid_id = "semen" + producing = TRUE can_masturbate_with = TRUE masturbation_verb = "massage" can_climax = TRUE - var/sent_full_message = TRUE //defaults to 1 since they're full to start + var/sent_full_message = TRUE //defaults to 1 since they're full to start /obj/item/organ/genital/testicles/Initialize() . = ..() @@ -30,11 +28,11 @@ /obj/item/organ/genital/testicles/update_size() if(size == 1) - size_name = "Normal" + size_name = "average" if(size == 2) - size_name = "Enlarged" - if(size == 3) - size_name = "Engorged" + size_name = "enlarged" + if(size >= 3) + size_name = "engorged" /obj/item/organ/genital/testicles/proc/generate_cum() reagents.maximum_volume = fluid_max_volume @@ -69,16 +67,19 @@ /obj/item/organ/genital/testicles/update_appearance() if(owner) - desc = "You see a pair of testicles dangling. They're quite [lowertext(size_name)]." + if(!internal) + desc = "You see an [lowertext(size_name)] pair of testicles dangling." + else + desc = "They don't have any testicles you can see." var/string if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"]) if(ishuman(owner)) // Check before recasting type, although someone fucked up if you're not human AND have use_skintones somehow... var/mob/living/carbon/human/H = owner // only human mobs have skin_tone, which we need. color = "#[skintone2hex(H.skin_tone)]" - string = "testicles_[size_name]-s" + string = "testicles_[GLOB.balls_shapes_icons[shape]]_[size]-s" else color = "#[owner.dna.features["balls_color"]]" - string = "testicles_[size_name]" + string = "testicles_[GLOB.balls_shapes_icons[shape]]_[size]" if(ishuman(owner)) var/mob/living/carbon/human/H = owner icon_state = sanitize_text(string) diff --git a/modular_citadel/code/modules/arousal/organs/womb.dm b/modular_citadel/code/modules/arousal/organs/womb.dm index c59d74e629..686d9059a0 100644 --- a/modular_citadel/code/modules/arousal/organs/womb.dm +++ b/modular_citadel/code/modules/arousal/organs/womb.dm @@ -5,12 +5,10 @@ icon_state = "womb" zone = "groin" slot = "womb" - w_class = 3 internal = TRUE fluid_id = "femcum" producing = TRUE - /obj/item/organ/genital/womb/Initialize() . = ..() reagents.add_reagent(fluid_id, fluid_max_volume) diff --git a/modular_citadel/code/modules/client/preferences_savefile.dm b/modular_citadel/code/modules/client/preferences_savefile.dm index 209d46db61..2921f70684 100644 --- a/modular_citadel/code/modules/client/preferences_savefile.dm +++ b/modular_citadel/code/modules/client/preferences_savefile.dm @@ -56,6 +56,7 @@ WRITE_FILE(S["feature_has_balls"], features["has_balls"]) WRITE_FILE(S["feature_balls_color"], features["balls_color"]) WRITE_FILE(S["feature_balls_size"], features["balls_size"]) + WRITE_FILE(S["feature_balls_shape"], features["balls_shape"]) WRITE_FILE(S["feature_balls_sack_size"], features["balls_sack_size"]) WRITE_FILE(S["feature_balls_fluid"], features["balls_fluid"]) //breasts features diff --git a/modular_citadel/icons/obj/genitals/breasts_onmob.dmi b/modular_citadel/icons/obj/genitals/breasts_onmob.dmi index 1869e082de2455609c96af44c969430368bc09e4..b0dc1d7aef1259bd40c6ae31cf34777fa1262ed6 100644 GIT binary patch delta 1344 zcmV-G1;6^a4EYL>BmpOpB`SaaJ*ANE00001bW%=J06^y0W&i*H(t1=_bVOxyV{&P5 zbZKvH004NLrIkAi!Y~wt=j2y}c2-(-bt$dd!3g3W^0>7be2@hF`?hr!^tjzSoP2zc z!_7t2Y+EVneajydqQ70mTCC;;XHV}^KP<}yXFd6IpWaJMI?*s@CXj!QDXP2nL1|T} z&G8^l8E4LiIKIMJ7xab3x%?O_k(j|~2BTSwW-*$>Xbz`U&90U8?>Hn!m>pqu1lkd3 zr)LrD!4SlnfD#Q#v?$S{M28aHe?+Jk6B7D!s3oD61Y6PyWXD6i0hzt~U zvFf1^78(zY%YvFE4U3hj4*y)SWWjk4m-ldd?CV7Neq>vEIp^UXdwg_dM-c!3z$air zOqu?3P@(y3+?5xVw z!2D#n`fyp#*JNTd%2oA%JW!@AS3~pL(d1)2KRKtb0{{R30001EGV9(V$-dUg=lah< zx$_gU{`Br^t^A{2zN+WHF{jUb^E-ikt(C7``ehUSwjl+1~~765+$00000=*w=J)27uIKfZn$ zjBmacN7+@!?Yidu!@1b%i&HPW!Tv&tK)g56C}np0=8Mu2Y&0_6{8TpNlutw2tTgy*f3YZ|@!crROb2QK6yl zkZ&k|V68@Z#~TjK0{{R30000V3aef9Zno6?bpL-jsHA*WmUI5USEuD)_wwg@{?wd` z?tE6(pLSnci5-2dn%}?5|E}j_nU^0=QhtBKoLZu8j;7mthkvWriw@i7)Ryh;Z|$gf zrXIL(d}fZ_R}EKQHnet~?e1%fGXJMs>|C8e&;R0{LeXndIWqlf&Ponm<|28Y}v3kK`ywSLs3awatV4?X0dS83; zveP{ie@Vz21?0?-^GVdcws6#Yj4z+$YuVSna|SG-eJ_1600000002Hv#Y=6qbNws{L z2LF41k#0WA>m;FK%qaPTByA~sBvv<#QSQD7d|>V(`$;T zd=Z71pI5PTOpzxFkKDLoLwJefn4wUjOy6f>SA9DcdGX4zFE5LIZZ%d6N+$eB)j{C! zGXp5Bv-+kJ8WO*6Rqimci~b1iEm_Y3C8H+8t%!!q+Z?wp@d0cMy>;FlbddJyoL1rK zw9f}=4I#yG!e-LZU*2sDa`Z^0t4c^u?s~TE= zP4_Z}TD5h)(4(5;8}i^DwV;i$@&5e`Q+-nnej~JzqyaR`Q~u zfY$j$^Sq|9avnIkydGS-@a+@KzDoqlLLYt45>&DYz=~?3Fk#@Z87R5#A}*GAgiM@q zAlgF&*X%cK9K?Za0F{LDAaqvau@^+kPtSe|-S@uMWM02Rv1+iZ zGz&}eOFzmUb9gL~DSc-LfXiS`l-{m)u%J0OH`}dp-lj~RCinkEps2}igHYsTRw6Sfo^2Bxu?e&jE#g_!o{7U`id(4`fQ zDH`$)_b!yza2kd_+jPr%gTMPYJWIvx7*C&U=DP<3ixRZS1Y8x=v-mv!f*+xzMe{B9 zdXC|^krclwQD9j9lpG=B*dTmmB0)4T*4W@94wg`0LS(3(0 zlrNob+^bsJYTQ>U&>BDpOmBD+icuG`-^R zDR~G_ci~iNkma%df*0G*GIgLx(I6*w)iLq7_7rI(sD-8%?tf%+7Oy$NSSsu4nG4rJ zPR7d}38Q^T+A~Wo%pSo>@#G{KMv-eV(^69t|9VbnBo+JcxuhDHCCmPrKzdoq6qofa zvr6aCg5*e5v~+GLnoG@AFF74tE$gjmRqVW!N8l29bTTKF({>}fm z*l4BOl`if1u>{+h_&{C5$xaS(PyjFF*WQJQ7Ju{;7=5J?P4NE>H+YY2K@S=2j4ioL zACFiW1$W8}lxCymSrYO9ZtXQr;(1foUK(tSl$DmpE+Y|6?iDwBA&y_MK@#Gv;@iH&rys(ujW^4eVI71ilkN;%^Yf5_ z$G1Dijy({WA$v8e*kfl&JNa!8&4FpO>)DKWKu_fB{*LL$kQp4}_&pr@xWwOVm<&5x gpQ2WoUT7B!6u`rdz$+dLEh($ diff --git a/modular_citadel/icons/obj/genitals/penis.dmi b/modular_citadel/icons/obj/genitals/penis.dmi index 02597b3cdb719218e18723d99805b0a601319d48..397fa335e537e9926e119efcabda1fc3bb91ad72 100644 GIT binary patch delta 2619 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 literal 3200 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 literal 4855 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 diff --git a/modular_citadel/icons/obj/genitals/testicles.dmi b/modular_citadel/icons/obj/genitals/testicles.dmi new file mode 100644 index 0000000000000000000000000000000000000000..3d7a5f4f4801004f4439bf82c46f6f34a1b8b14f GIT binary patch literal 1116 zcmV-i1f%C0000pP)t-sz`($> zv$Nmd-`LpL*Votd^z`QD=BTKst*x!Mx3}7~vi9ER>e<}o#>@Hc^8Ww;z`($g<)POA z0004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS z%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+(=$pSoZ^zil2jm5sU)?yBr`cDwOEOZGbOXA z7$|1Q#hF%=n41b=W2%fV&df{CNsTuoU5gRvT8xR;qDzh^$kAj(jwWLwG?8FxMrKM% zY92|E0M$ZDBtW&05D9RHkrYNSr;(!xPrxcGxca$(^92APnDaxBc^Y*900SIJL_t(| zob8&4lA|yTL$n{sBNW*gF6OaEw4cHMK2|L8}@t zWCIBvUEOtEulsBH0f0^c?Nor4eu9h80RREY_WNzE{Ss68GWgPtZ(!?Q?qa1rC!kVdf?bzGS z4h8ZDHXnwtzv_^nf%I)}GMP*!lgadcO{6>h=Vh7a1B6sakUz~c6F>wPM3C40K|TRc z>kJI05OS3O<+FbPP!0AD0KrN+0ub_7cXZo$3^vukpCm{yZLXUQjIx#=0EmxvDgcML z2ps?rpnMOo?Es>|ewF~@vH<{?{|T@Y2;)dGvuD%*)-4c7(*WlC#;-9D0hVtQRRQ2^ zw}}8K-!B3TP)&4x7M?|`03N_x z09#_(OdEZNIq&q5r9`C?RY7G-%iTm6e<7qeZG9r zkEZ!6^#f1gn|v_F zME$_;<)Oxeae&FP#IDh>>)|=6l z`hmCIjLR zUfsO&^w{Z}CW78TS;mqezhDN3XE)M-obOd35hX6E#mPmP1tppJc?=8{bCyoq$k${b z;+p-gU82%O})w$xYJPFj9d!tqp@HT>^xMdt5$J^P$gV$f#m`CnAi z0^hRP&poo}cEH`YTg2=G9o>T`i?#{71k-7uzYLK{L$qFuL#HmqgJIeLmY zQZBJ-R=UJ)b4&S-tuAX+Yw{Itc5HQ8Bbu@{q*b9gGjZLhnQ-Q z#dS`bkiS1c>Veb2Nt?7J`%NX-wI#GA8b zzd!wHTWC!A^JmL7UwziT{qk$ZR zfQ|?2D)ImFb?48s_v2UXSbzR({I`qEE`fA&uO?ElvWtPBhB Z;l23wYGwY}*$OcrSx;9#mvv4FO#q}SaOVI3 literal 0 HcmV?d00001 diff --git a/modular_citadel/icons/obj/genitals/vagina_onmob.dmi b/modular_citadel/icons/obj/genitals/vagina_onmob.dmi index e6ad183687987a2e865effef73ec8c3ab1ab668f..f5daa3fea1ba98eefe5f6bc9512d66a61ab9186a 100644 GIT binary patch literal 1076 zcmV-41k3x0P)bJ$*|z zQ0Oua8{NwnH%t#1>>1DOO(@D0tTyy3vi1d?=L@d(yGAQgwo+j4;R)7Sh+iz2g8(K9 zhxy>4@toAB3R9UhctJ>d8G2hw^X}Luj_w)`k+sB8<1-JvDO1wMKj{TObWPe{8EcCy9lBLFPWY1;*0001& zYo2d-6D-&}zg}h=-UbUs^PlpDUO5i{00000&{*$zP&8lYJx_|}3sm&Zp>gRJ}PegUThXDWp z003GT+b6Tpe&Qe9Ha;Wsd8lA?p0jE_5SnkQ$8)e^zV~votQL5-L)rcMrWPO0=fjm{ zeZX|ka8Ysnxt3qO_~Ku^&8l`n2J>Y@^>=*ufa00000aPi(f{6cY(w<brQY+L=<`hg00000 zz@=+GK8Y5L=I?$53*;8Te6*q8tq%wQ00000;3&nkr1v~1n!iukhUh%#x^uobpsQd( z#?Cv;#JFSu0000uL#cNInMHKku~?)QeLM-zbM~S5VwZvq6cvNasHy0Y;)mzs7V(il6p4)00000oFMgXpt1NzuPG9~4nOUYiOzHO(E@)Sj*c9x zn6m#&yOeJ#Jlmn{{=WY8YJ>R`zMd^Te^FGtzpLd3=Q)erKFx*==1&>09V}R$qFO(- zc}_5Yg278J+)%y4;q|8|J^l0S##sOW006)_Xg-hW?u2>FsPcvA&*k*a7kYmIUh`jw u0ssI2003TD?_Z~BZglgUDDxZup!65M;!*YA3x8h#0000|ux0FmeePB`?kov)J0Op96w01C9j-{P@ioF&D8AjL$YWzc2Ee#Qt(NRLmW(HXRqWB{^i znyY?wxbEvB6fN?0U+EwZB~wBiknUlbSKFHkzT}VeK|M4(=Sccf{E}ndbWc~xrHag% zePyZi8)F6b1B;jxO}28cdZ1+RN}IOw+nDM()l`H{nJUeYe z3E2>_zmX~^cEWVX^@q0?0Gw)|*ry?G87n8&OVWyFlEwq_UPnb8+UIq2UjpL1K)g{U zjPBSkdqqpf2!qWz-QfHAkn=}U|FQu9wkt9$I5w;1Z`n1{q_2w&IrJ{<)-4E{{Dj8o z?2J6PK)**gg<_N{<|k+`J0#u~%fDsZg;ZS#G*DPs7{14w-KKoL(`gj7r_Zl)be^kz zrqkTvML*9uoe2aAclcW@v(c*5uD0O;6JfWxpYCVW+bh{#k z9Vrl=F@wfHp;{wxu&adY_4;UyQN^TxN+2+yjTP&X3(p#LrgpLhwPgli_0Ks`T}7cz!}H-uof-nM ze7|Lb)~)%R@RG@BUA1iFN)G%-gJZWUxX(`Rct|8Et=RlIG0b<5*!h2VI(A&S@Jh{< z*j2^P>xW_lu(1zBL3iWv*S4TznTIu5$tOHK40%jZ1{Eb<{M2nGM|ig{&vMnkPY4E-pEq&S% z*L%WsA-;#nOmP0?=kAqrtfSNeI@2`XzvV|=SDi!3DQP(Zo{q5Bd14foFS4PMLX(&0 zaB*rJp~6X5c!te;x1Z^a#Z~XZv0ZVT-MAVwuC`W>);@A(=XQ!%o1sL8lfoW`P_O?3 Doh}-H From e6e06a1a432810c091a586b960da31da51f501aa Mon Sep 17 00:00:00 2001 From: Ghommie Date: Sun, 2 Jun 2019 13:59:36 +0200 Subject: [PATCH 23/44] Makes clockwork wall - sonic jackhammer interaction account the wall's superheating. --- code/game/turfs/simulated/wall/misc_walls.dm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/code/game/turfs/simulated/wall/misc_walls.dm b/code/game/turfs/simulated/wall/misc_walls.dm index f40f74787a..8efac31f65 100644 --- a/code/game/turfs/simulated/wall/misc_walls.dm +++ b/code/game/turfs/simulated/wall/misc_walls.dm @@ -77,6 +77,19 @@ return ..() +/turf/closed/wall/clockwork/try_destroy(obj/item/I, mob/user, turf/T) + if(!heated) + return ..() + if(!istype(I, /obj/item/pickaxe/drill/jackhammer)) + return FALSE + to_chat(user, "You begin to smash though [src]...") + if(!do_after(user, 70, TRUE, src)) + return FALSE + I.play_tool_sound(src) + visible_message("[user] smashes through [src] with [I]!", "You hear the grinding of metal.") + dismantle_wall() + return TRUE + /turf/closed/wall/clockwork/ReplaceWithLattice() ..() for(var/obj/structure/lattice/L in src) From 1cfaf62a750973aad45c60f2083edb5956465dce Mon Sep 17 00:00:00 2001 From: Poojawa Date: Sun, 2 Jun 2019 07:47:37 -0500 Subject: [PATCH 24/44] multi-boobies sprited --- .../icons/obj/genitals/breasts.dmi | Bin 1028 -> 1497 bytes .../icons/obj/genitals/breasts_onmob.dmi | Bin 1401 -> 4932 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/modular_citadel/icons/obj/genitals/breasts.dmi b/modular_citadel/icons/obj/genitals/breasts.dmi index e864d09a704acb3ea667a7f9e0fe1fa9aca58d8f..8c76891396623a234c9c66f4a0a252c34c910fb2 100644 GIT binary patch literal 1497 zcmYjRe>l^59RG$j=2;_YwZ)Wh7hP(YJJ&YCc&_bc=W#M=bcK>_a-C|dwo#%u;fbLl zk<%iSA{!~?S1RRKF)gP2jEy#C_no_Yo_jsd`}KOi-tYJ4*FT?RDuo1xphD9t>HOt@D5k6gSVrY zf2Ew=u=*r~7LjEeQnCHBEX5|XV+lhS<~^QaXV@;KTg>rFO7b3MR;tEh_nDXMOOcC`XrSqvwno4zh>{5EB8au&<`M3qd z2ls@0a!=LkqEg2!Ac=!C>ey~jx=Y)yY&deXKkAae$z{@oq<$ULRJBFP96>gCI*Z5b zcbWr$LAbA{yMJ8XWYA9(8PVj}fH4z`BVMW{qCRfS-p2yg&TraGbDBMIVpFIA(&|Iz zYm1E9vWM@@rG3^^u~%j|QWMG`-P9PH$k<8r zHk%+hv{x|tf+Yqiy?-RPe&=`rdmL5iXykr$k~e!(C199x;Mo;xd6%j*@*S!PgKWV>&>!rCX}ha{MxR?(-VL|3bT>G>CTruSxI zb{NG(PM{s87MB+x_4OgIR-Z^v5+RWqwB1N138L{Fx4FH5M%@c#w<#huAqq@w96{flv}sZR@y<;PsRkaLz!f4(ePDCrR(rLYmV=#f1*=7k5C^RVoBwM#&p z=-PZ-jI~H**wKP%3EzE2h#+VRdEt-30EitoIalq>o<$DdI-s<}VJ{EVq^90Uc{s4w zKCtgZkk>-MOWNS?j8&C_ER$Hy<+5K*zmj&QbD8P~q4nf9Px&T3)fsTO9)*dddcDa?NH0q#aPWbAvYD(S{mHeu`_54v1= zZ$4Suyk=<=y)S&&=Y=k-k2XB}N; zk3+-sI7HWX=iTrgxLH{(pP<>LLj#1Nk^*{j`fX6C$yah9-W7;+VX366E({rr@=Me= zbP^xm%G8@{Y`{+V|3FE5vb delta 1012 zcmVmzXf9l!X z`R?-e-sk^-|0F<3=>Px#0d!JMQvg8b*k%9#0GfJKSad{Xb7OL8aCB*JZU6vyoKseC za&`CgQ*iP1<%z^9 z*CjPjNY#)+s)l4zH6)R$ArZF*Wd&D17jPN`0L*K`r9KWXDF6Th=t)FDRA_gi-TMdugn&m_`vgH$ZI^22|=rVfy69(1$5W5L`p@s z!b06b&}u+{hzib)VFJ4K*a|rn0-i4$ulh&de(DurLGMp5OW*|)(D-y&k=dsm0+;#4 z^|yA_ErZL3wjhv70nHu)e~bYEZ~qJeiOEsmc82xUA*X#~A9lQ@9Umx!fL;iJV&B-G z1Abm@AO-o$p#e2K=G>jw-Dydfv@KWHcJ#(asf=DpI`k_U`}w7i5;u1 z*O(CPH&TEpD$Y9(Qck;r5a20HIPW~liD?p6+w*rA7HC%J`-t#PNS~00fEVv>eOp}a$%WT+9ns*$>n{VSrpjn05$22(llL5oT@+0;v?};9|$`AdtBde;i~#kU10xdRwaA*ns5@ z=YHT5c37@iaXSb6zWxHm5_e=jE5W~nfUO)1Sk$u>I@n62+&f?nt$3*p`1*sr#`^EQ zaNs#ggM(u531RVE1h|FZz8?SwKTyd-LOg|;;C{sl4>F#^V2>81;P?80GAsxV7{Fcl z5Gq{4MP4s%N^V(Z%$V^%Vd|aK>PTYI>PR9X>-_@(lvw>DA?y7^0@aixih3UpQSalC i$?_eIxi-%D_V^3Ie9JL3nZqOi0000 diff --git a/modular_citadel/icons/obj/genitals/breasts_onmob.dmi b/modular_citadel/icons/obj/genitals/breasts_onmob.dmi index b0dc1d7aef1259bd40c6ae31cf34777fa1262ed6..69a531bd11511356b8a89b4057a1fc243f3e078e 100644 GIT binary patch literal 4932 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 V@;9v|T&-FkGBdWmP;TfM^FLE7$}j)` literal 1401 zcmXYv3p5jY9LHCYE=Ed*Ji1A8=u+Jj(yp4^-5m2CCX{!}BSY-jPQ99jeL=7?YrSth_w@+>`(%m&;vRT2d;NeSLi_7K=`&uki)kYPxh$EF2x5 zZfC1{TuO69s*!CeKAygSpJqNrt3*HAFE9lXg^EayOG=4LOaK7Vi%RpHwOZ`;GX+!d zU(*7DQ&X*}+~!@M&BS#KBW#Y^*NvJ~gVj2oa}gGs)5>uhx`wb8;@IZ;C9F&DgI~?4 z$G}8BU|Y6&jEfXi%)jX2)Mp=kI49e>^6xd*IRA3a@&TApOi$KnW=jxgHM6~5ZfKMH zq&aryi=YS5$4ITQIuw5nEl(mkeaQWZ>E$#vu3ju9MsL1(cN^*E9^fz4NBT-2S$lW{ zNI7Wl9vQ0KlAN!G=m+K3$40uC=7aXhmyJ72I$r?*Y6qbZSHJY41s)5AfE%_i6XV|i zwY*AwPDSATu7U~>!LyN;<*2KW7^|1vceV9X-wMgQ4UBakvTu_tfyBHD9c9Sd$mR^) zg7qZq{2WAzk3^sy1^=31uqjdQdH_I^RrooNLIui;EWI|4nMFi%tZM^;Hiq>A?J3gx zf!Z7}x3Uf4@1lHW$SzHWvObmUnt#dB&^E7JhzZtZyp9 z1?)(9y_v7-L>!;vAN;@^?h?p)UF%o&(iN+VNUHorD6>+)I!5Wmt~lSqQS)A3nnt2c zjo9zx>Elwj(H`_VBS0ZYejMa&cUt0SFm98|k{2 zyH(~|kjev8KAo=-J?Z4Q{z&C^bE<;JKhOG9;~3A@`fcWs?c?ryOoJ`JEIWZTP&Nbt zGx0_b5}5|>qy8NW4KrU`>pu#KzTh{1+4Vf;w4kkOn81UQ9R)E0w(J&?h&(kgEKH93 z^A3=0hmu(73WfRR9A_HxV($gafdY*Fcs;M7p5@dvshw2^ZFHddZo#nISD6m+&A52( z?Tuh|=iJ!kb%q6a>CFb0-`GU6E8o>MFtUBCwKZ1+*2rrS4M8&{U9yHr0zS@jgPz+P zHqFxQ1SdYPAz^5~B%L)KlZ|5Hsln=OfuhmrWO1U%R8cB8>h4V@i*gc=5W=Y!GCKC_ zaK43Su32?Sl29`!Pf-%#Yr>u^=@yAycgQNPp_MAE&eo_@}(hT)nIf) zCTQ)hZo2_WUuUG@r?Mw&1vB%iubhFHlttOsih1VzyIQg}MjAiE6;>-2*?G3@oL~<3 zjG_H2=d>O+iZd-ToHh%;^R<+BXOSA6-}2ey+>BK2Fc~m8;drveaZ^LxJR!7m;kW+> Dyhh3= From 69b1373209440bb895bf8535bf3e9abe08ab3202 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Sun, 2 Jun 2019 08:06:16 -0500 Subject: [PATCH 25/44] compile testing and tweaks --- code/__HELPERS/global_lists.dm | 3 ++- code/modules/client/preferences.dm | 17 ++++++++++++----- .../code/modules/arousal/organs/genitals.dm | 4 ++-- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 3f3322c3ec..ac113b4e08 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -53,9 +53,10 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list) GLOB.breasts_size_list = list("a","b","c","d","e") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing. - for(var/K in GLOB.breast_shapes_list) + for(var/K in GLOB.breasts_shapes_list) var/datum/sprite_accessory/breasts/value = GLOB.breasts_shapes_list[K] GLOB.breasts_shapes_icons[K] = value.icon_state + init_sprite_accessory_subtypes(/datum/sprite_accessory/testicles, GLOB.balls_shapes_list) for(var/K in GLOB.balls_shapes_list) var/datum/sprite_accessory/testicles/value = GLOB.balls_shapes_list[K] diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 91e7b2a5bc..01b0b0415d 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -702,6 +702,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) else dat += "Testicles Color:" dat += "    Change
" + dat += "Testicles showing:[features["balls_shape"]]" dat += APPEARANCE_CATEGORY_COLUMN dat += "Has Vagina:" dat += "[features["has_vag"] == TRUE ? "Yes" : "No"]" @@ -1837,7 +1838,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) features["cock_color"] = sanitize_hexcolor(new_cockcolor) else - user << "Invalid color. Your color is not bright enough." + to_chat(user,"Invalid color. Your color is not bright enough.") if("cock_length") var/new_length = input(user, "Penis length in inches:\n([COCK_SIZE_MIN]-[COCK_SIZE_MAX])", "Character Preference") as num|null @@ -1859,7 +1860,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) features["balls_color"] = sanitize_hexcolor(new_ballscolor) else - user << "Invalid color. Your color is not bright enough." + to_chat(user,"Invalid color. Your color is not bright enough.") + + if("balls_shape") + var/new_shape + new_shape = input(user, "Testicle Type:", "Character Preference") as null|anything in GLOB.balls_shapes_list + if(new_shape) + features["balls_shape"] = new_shape if("egg_size") var/new_size @@ -1875,7 +1882,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) features["eggsack_egg_color"] = sanitize_hexcolor(new_egg_color) else - user << "Invalid color. Your color is not bright enough." + to_chat(user,"Invalid color. Your color is not bright enough.") if("breasts_size") var/new_size @@ -1898,7 +1905,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) features["breasts_color"] = sanitize_hexcolor(new_breasts_color) else - user << "Invalid color. Your color is not bright enough." + to_chat(user,"Invalid color. Your color is not bright enough.") if("vag_shape") var/new_shape @@ -1915,7 +1922,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) features["vag_color"] = sanitize_hexcolor(new_vagcolor) else - user << "Invalid color. Your color is not bright enough." + to_chat(user,"Invalid color. Your color is not bright enough.") if("ooccolor") var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference",ooccolor) as color|null diff --git a/modular_citadel/code/modules/arousal/organs/genitals.dm b/modular_citadel/code/modules/arousal/organs/genitals.dm index 460c6b4188..cbf14e420a 100644 --- a/modular_citadel/code/modules/arousal/organs/genitals.dm +++ b/modular_citadel/code/modules/arousal/organs/genitals.dm @@ -141,14 +141,14 @@ if (NOGENITALS in dna.species.species_traits) return //Order should be very important. FIRST vagina, THEN testicles, THEN penis, as this affects the order they are rendered in. - if(dna.features["has_breasts"]) - give_breasts() if(dna.features["has_vag"]) give_vagina() if(dna.features["has_womb"]) give_womb() if(dna.features["has_balls"]) give_balls() + if(dna.features["has_breasts"]) // since we have multi-boobs as a thing, we'll want to at least draw over these. but not over the pingas. + give_breasts() if(dna.features["has_cock"]) give_penis() if(dna.features["has_ovi"]) From 25458fad630b770e3d8c5ed9d3053aeb3ee3d04f Mon Sep 17 00:00:00 2001 From: Poojawa Date: Sun, 2 Jun 2019 08:40:51 -0500 Subject: [PATCH 26/44] I refuse to eat crow. --- .../code/modules/arousal/organs/breasts.dm | 8 +++---- .../code/modules/arousal/organs/testicles.dm | 22 +++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm index 3f8e3fc6f1..1223f0b616 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/modular_citadel/code/modules/arousal/organs/breasts.dm @@ -41,8 +41,8 @@ desc = "You see a pair of breasts." if("quad") desc = "You see two pairs of breast, one just under the other." - if("six") - desc = "You see three pairs of breasts, running from their chest to their belly." + if("sextuple") + desc = "You see three sets of breasts, running from their chest to their belly." else desc = "You see some breasts, they seem to be quite exotic." if (size) @@ -57,10 +57,10 @@ if(ishuman(owner)) // Check before recasting type, although someone fucked up if you're not human AND have use_skintones somehow... var/mob/living/carbon/human/H = owner // only human mobs have skin_tone, which we need. color = "#[skintone2hex(H.skin_tone)]" - string = "breasts_[GLOB.breasts_shapes_icons[lowertext(shape)]]_[size]-s" + string = "breasts_[GLOB.breasts_shapes_icons[shape]]_[size]-s" else color = "#[owner.dna.features["breasts_color"]]" - string = "breasts_[GLOB.breasts_shapes_icons[lowertext(shape)]]_[size]" + string = "breasts_[GLOB.breasts_shapes_icons[shape]]_[size]" if(ishuman(owner)) var/mob/living/carbon/human/H = owner icon_state = sanitize_text(string) diff --git a/modular_citadel/code/modules/arousal/organs/testicles.dm b/modular_citadel/code/modules/arousal/organs/testicles.dm index 0415199415..0cf698392c 100644 --- a/modular_citadel/code/modules/arousal/organs/testicles.dm +++ b/modular_citadel/code/modules/arousal/organs/testicles.dm @@ -26,14 +26,6 @@ if(reagents && producing) generate_cum() -/obj/item/organ/genital/testicles/update_size() - if(size == 1) - size_name = "average" - if(size == 2) - size_name = "enlarged" - if(size >= 3) - size_name = "engorged" - /obj/item/organ/genital/testicles/proc/generate_cum() reagents.maximum_volume = fluid_max_volume if(reagents.total_volume >= reagents.maximum_volume) @@ -53,8 +45,7 @@ linked_organ = (owner.getorganslot("penis")) if(linked_organ) linked_organ.linked_organ = src - size = linked_organ.size - update_size() + else if(linked_organ) linked_organ.linked_organ = null @@ -67,8 +58,17 @@ /obj/item/organ/genital/testicles/update_appearance() if(owner) + if(size == 0) + size_name = "nonexistant" + if(size == 1) + size_name = "average" + if(size == 2) + size_name = "enlarged" + if(size >= 3) + size_name = "engorged" + if(!internal) - desc = "You see an [lowertext(size_name)] pair of testicles dangling." + desc = "You see an [size_name] pair of testicles dangling." else desc = "They don't have any testicles you can see." var/string From d4abb85641e600c7c4d4622788d4c81ff1aa8cff Mon Sep 17 00:00:00 2001 From: Poojawa Date: Sun, 2 Jun 2019 09:40:18 -0500 Subject: [PATCH 27/44] Update preferences.dm --- code/modules/client/preferences.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 01b0b0415d..91a329c67b 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -117,7 +117,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) "balls_color" = "fff", "balls_amount" = 2, "balls_sack_size" = BALLS_SACK_SIZE_DEF, - "balls_shape" = "Pair", + "balls_shape" = "Single", "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, From d6e54bf2378cbd0aa219d946296f117dd685c395 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Sun, 2 Jun 2019 18:28:30 +0200 Subject: [PATCH 28/44] Fixes and updates pod's emergency suits storage. --- code/__DEFINES/components.dm | 5 ++-- .../components/storage/concrete/_concrete.dm | 9 ++++++ .../components/storage/concrete/emergency.dm | 22 ++++++++++++++ code/datums/components/storage/storage.dm | 30 ++++++++----------- code/game/objects/items/cards_ids.dm | 2 +- code/game/objects/obj_defense.dm | 1 + code/modules/shuttle/emergency.dm | 24 ++------------- code/modules/shuttle/on_move.dm | 3 +- 8 files changed, 52 insertions(+), 44 deletions(-) create mode 100644 code/datums/components/storage/concrete/emergency.dm diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index 3338fc1cda..dbe8cfbb62 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -142,8 +142,9 @@ #define COMSIG_CARBON_SOUNDBANG "carbon_soundbang" //from base of mob/living/carbon/soundbang_act(): (list(intensity)) // /obj signals -#define COMSIG_OBJ_DECONSTRUCT "obj_deconstruct" //from base of obj/deconstruct(): (disassembled) -#define COMSIG_OBJ_SETANCHORED "obj_setanchored" //called in /obj/structure/setAnchored(): (value) +#define COMSIG_OBJ_DECONSTRUCT "obj_deconstruct" //from base of obj/deconstruct(): (disassembled) +#define COMSIG_OBJ_BREAK "obj_break" //from base of /obj/obj_break(): (damage_flag) +#define COMSIG_OBJ_SETANCHORED "obj_setanchored" //called in /obj/structure/setAnchored(): (value) // /obj/item signals #define COMSIG_ITEM_ATTACK "item_attack" //from base of obj/item/attack(): (/mob/living/target, /mob/living/user) diff --git a/code/datums/components/storage/concrete/_concrete.dm b/code/datums/components/storage/concrete/_concrete.dm index 4d7e8bddc5..0b78605869 100644 --- a/code/datums/components/storage/concrete/_concrete.dm +++ b/code/datums/components/storage/concrete/_concrete.dm @@ -6,6 +6,8 @@ /datum/component/storage/concrete var/drop_all_on_deconstruct = TRUE var/drop_all_on_destroy = FALSE + var/drop_all_on_break = FALSE + var/unlock_on_break = FALSE var/transfer_contents_on_component_transfer = FALSE var/list/datum/component/storage/slaves = list() @@ -16,6 +18,7 @@ . = ..() RegisterSignal(parent, COMSIG_ATOM_CONTENTS_DEL, .proc/on_contents_del) RegisterSignal(parent, COMSIG_OBJ_DECONSTRUCT, .proc/on_deconstruct) + RegisterSignal(parent, COMSIG_OBJ_BREAK, .proc/on_break) /datum/component/storage/concrete/Destroy() var/atom/real_location = real_location() @@ -100,6 +103,12 @@ if(drop_all_on_deconstruct) do_quick_empty() +/datum/component/storage/concrete/proc/on_break(datum/source, damage_flag) + if(drop_all_on_break) + do_quick_empty() + if(unlock_on_break) + set_locked(source, FALSE) + /datum/component/storage/concrete/can_see_contents() . = ..() for(var/i in slaves) diff --git a/code/datums/components/storage/concrete/emergency.dm b/code/datums/components/storage/concrete/emergency.dm new file mode 100644 index 0000000000..e5f9d83a17 --- /dev/null +++ b/code/datums/components/storage/concrete/emergency.dm @@ -0,0 +1,22 @@ +/datum/component/storage/concrete/emergency + drop_all_on_break = TRUE + unlock_on_break = TRUE + locked = TRUE + +/datum/component/storage/concrete/emergency/Initialize() + . = ..() + RegisterSignal(parent, COMSIG_ATOM_EMAG_ACT, .proc/unlock_me) + +/datum/component/storage/concrete/emergency/signal_insertion_attempt(datum/source, obj/item/I, mob/M, silent = FALSE, force = FALSE) + if(!silent && istype(I, /obj/item/card/emag)) + silent = TRUE // suppresses the message + return ..() + +/datum/component/storage/concrete/check_locked(datum/source, mob/user, message = FALSE) + . = locked && GLOB.security_level < SEC_LEVEL_RED + if(message && . && user) + to_chat(user, "The storage unit will only unlock during a Red or Delta security alert.") + +/datum/component/storage/concrete/emergency/proc/unlock_me(datum/source) + if(locked) + set_locked(source, FALSE) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index dc25729e37..869fe59ae9 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -156,8 +156,7 @@ next += slave.parent /datum/component/storage/proc/attack_self(datum/source, mob/M) - if(locked) - to_chat(M, "[parent] seems to be locked!") + if(check_locked(source, M, TRUE)) return FALSE if((M.get_active_held_item() == parent) && allow_quick_empty) quick_empty(M) @@ -166,8 +165,7 @@ if(!isitem(O) || !click_gather || SEND_SIGNAL(O, COMSIG_CONTAINS_STORAGE)) return FALSE . = COMPONENT_NO_ATTACK - if(locked) - to_chat(M, "[parent] seems to be locked!") + if(check_locked(source, M, TRUE)) return FALSE var/atom/A = parent var/obj/item/I = O @@ -238,8 +236,7 @@ var/atom/A = parent if((!ishuman(M) && (A.loc != M)) || (M.stat != CONSCIOUS) || M.restrained() || !M.canmove) return - if(locked) - to_chat(M, "[parent] seems to be locked!") + if(check_locked(null, M, TRUE)) return FALSE A.add_fingerprint(M) to_chat(M, "You start dumping out [parent].") @@ -281,7 +278,7 @@ /datum/component/storage/proc/set_locked(datum/source, new_state) locked = new_state - if(locked) + if(check_locked()) close_all() /datum/component/storage/proc/_process_numerical_display() @@ -456,8 +453,7 @@ var/atom/A = parent var/atom/dump_destination = dest_object.get_dumping_location() if(A.Adjacent(M) && dump_destination && M.Adjacent(dump_destination)) - if(locked) - to_chat(M, "[parent] seems to be locked!") + if(check_locked(null, M, TRUE)) return FALSE if(dump_destination.storage_contents_dump_act(src, M)) playsound(A, "rustle", 50, 1, -5) @@ -563,10 +559,9 @@ var/atom/host = parent if(real_location == I.loc) return FALSE //Means the item is already in the storage item - if(locked) + if(check_locked(null, M, !stop_messages)) if(M && !stop_messages) host.add_fingerprint(M) - to_chat(M, "[host] seems to be locked!") return FALSE if(real_location.contents.len >= max_items) if(!stop_messages) @@ -659,8 +654,10 @@ /datum/component/storage/proc/on_check() return TRUE -/datum/component/storage/proc/check_locked() - return locked +/datum/component/storage/proc/check_locked(datum/source, mob/user, message = FALSE) + . = locked + if(message && . && user) + to_chat(user, "[parent] seems to be locked!") /datum/component/storage/proc/signal_take_type(datum/source, type, atom/destination, amount = INFINITY, check_adjacent = FALSE, force = FALSE, mob/user, list/inserted) if(!force) @@ -720,9 +717,7 @@ if(A.loc == user) . = COMPONENT_NO_ATTACK_HAND - if(locked) - to_chat(user, "[parent] seems to be locked!") - else + if(!check_locked(source, user, TRUE)) show_to(user) A.do_jiggle() @@ -747,8 +742,7 @@ /datum/component/storage/proc/on_alt_click(datum/source, mob/user) if(!isliving(user) || !user.CanReach(parent)) return - if(locked) - to_chat(user, "[parent] seems to be locked!") + if(check_locked(source, user, TRUE)) return var/atom/A = parent diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 30b1ca3399..4143e45624 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -105,7 +105,7 @@ if(isturf(A)) return - if(istype(A,/obj/item/storage/lockbox)) + if(istype(A,/obj/item/storage/lockbox) || istype(A, /obj/item/storage/pod))) A.emag_act(user) uses = max(uses - 1, 0) if(!uses) diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index 6221416db8..2db2cd08d8 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -241,6 +241,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e //what happens when the obj's health is below integrity_failure level. /obj/proc/obj_break(damage_flag) + SEND_SIGNAL(src, COMSIG_OBJ_BREAK, damage_flag) return //what happens when the obj's integrity reaches zero. diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 9af4194049..d41fd6a79b 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -516,10 +516,10 @@ name = "emergency space suits" desc = "A wall mounted safe containing space suits. Will only open in emergencies." anchored = TRUE - density = FALSE icon = 'icons/obj/storage.dmi' icon_state = "safe" - var/unlocked = FALSE + integrity_failure = 100 + component_type = /datum/component/storage/concrete/emergency /obj/item/storage/pod/PopulateContents() new /obj/item/clothing/head/helmet/space/orange(src) @@ -535,26 +535,6 @@ new /obj/item/survivalcapsule(src) new /obj/item/storage/toolbox/emergency(src) -/obj/item/storage/pod/attackby(obj/item/W, mob/user, params) - if (can_interact(user)) - return ..() - -/obj/item/storage/pod/attack_hand(mob/user) - if (can_interact(user)) - SEND_SIGNAL(src, COMSIG_TRY_STORAGE_SHOW, user) - return TRUE - -/obj/item/storage/pod/MouseDrop(over_object, src_location, over_location) - if(can_interact(usr)) - return ..() - -/obj/item/storage/pod/can_interact(mob/user) - if(!..()) - return FALSE - if(GLOB.security_level == SEC_LEVEL_RED || GLOB.security_level == SEC_LEVEL_DELTA || unlocked) - return TRUE - to_chat(user, "The storage unit will only unlock during a Red or Delta security alert.") - /obj/docking_port/mobile/emergency/backup name = "backup shuttle" id = "backup" diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm index 9942446868..a6904c28cc 100644 --- a/code/modules/shuttle/on_move.dm +++ b/code/modules/shuttle/on_move.dm @@ -290,7 +290,8 @@ All ShuttleMove procs go here // ignores the movement of the shuttle from the staging area on CentCom to // the station as it is loaded in. if (oldT && !is_centcom_level(oldT.z)) - unlocked = TRUE + GET_COMPONENT(STR, /datum/component/storage/concrete/emergency) + STR?.unlock_me() /************************************Mob move procs************************************/ From 73e279dada06506fe7ac67cd2f1e09b96313c776 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Sun, 2 Jun 2019 18:29:43 +0200 Subject: [PATCH 29/44] excessive parenthesis wrapping. --- code/game/objects/items/cards_ids.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 4143e45624..96bbe759ca 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -105,7 +105,7 @@ if(isturf(A)) return - if(istype(A,/obj/item/storage/lockbox) || istype(A, /obj/item/storage/pod))) + if(istype(A,/obj/item/storage/lockbox) || istype(A, /obj/item/storage/pod)) A.emag_act(user) uses = max(uses - 1, 0) if(!uses) From da4ce71ba342c8b4d16ad29efe239453751bbf17 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Sun, 2 Jun 2019 19:02:16 +0200 Subject: [PATCH 30/44] alphabetic index, you silly brainfrying wonks. --- tgstation.dme | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/tgstation.dme b/tgstation.dme index 9219376f29..fe53839289 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -380,6 +380,7 @@ #include "code\datums\components\storage\concrete\_concrete.dm" #include "code\datums\components\storage\concrete\bag_of_holding.dm" #include "code\datums\components\storage\concrete\bluespace.dm" +#include "code\datums\components\storage\concrete\emergency.dm" #include "code\datums\components\storage\concrete\implant.dm" #include "code\datums\components\storage\concrete\pockets.dm" #include "code\datums\components\storage\concrete\rped.dm" @@ -2504,22 +2505,10 @@ #include "code\modules\research\designs\AI_module_designs.dm" #include "code\modules\research\designs\biogenerator_designs.dm" #include "code\modules\research\designs\bluespace_designs.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_all_misc.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_cargo .dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_engi.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_medical.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sci.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sec.dm" #include "code\modules\research\designs\computer_part_designs.dm" #include "code\modules\research\designs\electronics_designs.dm" #include "code\modules\research\designs\equipment_designs.dm" #include "code\modules\research\designs\limbgrower_designs.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_all_misc.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_engi.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_medical.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_sci.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_service.dm" #include "code\modules\research\designs\mecha_designs.dm" #include "code\modules\research\designs\mechfabricator_designs.dm" #include "code\modules\research\designs\medical_designs.dm" @@ -2537,6 +2526,18 @@ #include "code\modules\research\designs\autolathe_desings\autolathe_designs_sec_and_hacked.dm" #include "code\modules\research\designs\autolathe_desings\autolathe_designs_tcomms_and_misc.dm" #include "code\modules\research\designs\autolathe_desings\autolathe_designs_tools.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_all_misc.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_cargo .dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_engi.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_medical.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sci.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sec.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_all_misc.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_engi.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_medical.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_sci.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_service.dm" #include "code\modules\research\machinery\_production.dm" #include "code\modules\research\machinery\circuit_imprinter.dm" #include "code\modules\research\machinery\departmental_circuit_imprinter.dm" From ed7d0575b26cc7062de3798f1852eb614a48505c Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Mon, 3 Jun 2019 14:40:57 -0700 Subject: [PATCH 31/44] Ass Blast USA --- code/__DEFINES/traits.dm | 1 + code/datums/traits/neutral.dm | 9 +++++++ .../mob/living/carbon/human/species.dm | 21 ++++++++++++++-- tgstation.dme | 24 +++++++++---------- 4 files changed, 41 insertions(+), 14 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index b2caf614b3..5c2deae875 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -72,6 +72,7 @@ #define TRAIT_CROCRIN_IMMUNE "crocin_immune" #define TRAIT_NYMPHO "nymphomania" #define TRAIT_MASO "masochism" +#define TRAIT_ASSBLASTUSA "assblastusa" // common trait sources #define TRAIT_GENERIC "generic" diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index f299e9904a..f70e3a3c68 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -93,3 +93,12 @@ gain_text = "You feel more prudish." lose_text = "You don't feel as prudish as before." medical_record_text = "Patient exhibits a special gene that makes them immune to Crocin and Hexacrocin." + +/datum/quirk/assblastusa + name = "Buns of Steel" + desc = "You've never skipped ass day. With this trait, you are completely immune to all forms of ass slapping and anyone who tries to slap your rock hard ass usually gets a broken hand." + mob_trait = TRAIT_ASSBLASTUSA + value = 0 + medical_record_text = "Patient never skipped ass day." + gain_text = "Your ass rivals those of golems." + lose_text = "Your butt feels more squishy and slappable." \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 9a0a978d7a..ff2064c30f 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1486,6 +1486,24 @@ GLOBAL_LIST_EMPTY(roundstart_races) user.adjustStaminaLossBuffered(3) return FALSE else if(aim_for_groin && (target == user || target.lying || same_dir) && (target_on_help || target_restrained || target_aiming_for_groin)) + user.do_attack_animation(target, ATTACK_EFFECT_ASS_SLAP) + user.adjustStaminaLossBuffered(3) + if(target.has_trait(TRAIT_ASSBLASTUSA)) + var/hit_zone = (user.held_index_to_dir(user.active_hand_index) == "l" ? "l_":"r_") + "arm" + user.adjustStaminaLoss(50, affected_zone = hit_zone) + var/obj/item/bodypart/affecting = user.get_bodypart(hit_zone) + if(affecting) + if(affecting.receive_damage(5, 0)) + user.update_damage_overlays() + user.visible_message(\ + "\The [user] slaps \the [target]'s ass, but their hand bounces off like they hit metal!",\ + "You slap [user == target ? "your" : "\the [target]'s"] ass, but feel an intense amount of pain as you realise their buns are harder than steel!",\ + "You hear a slap." + ) + playsound(target.loc, 'sound/weapons/tap.ogg', 50, 1, -1) + user.emote("scream") + return FALSE + playsound(target.loc, 'sound/weapons/slap.ogg', 50, 1, -1) user.visible_message(\ "\The [user] slaps \the [target]'s ass!",\ @@ -1498,8 +1516,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) target.mob_climax(forced_climax=TRUE) if (!target.has_trait(TRAIT_NYMPHO)) stop_wagging_tail(target) - user.do_attack_animation(target, ATTACK_EFFECT_ASS_SLAP) - user.adjustStaminaLossBuffered(3) + return FALSE else if(attacker_style && attacker_style.disarm_act(user,target)) return 1 diff --git a/tgstation.dme b/tgstation.dme index f2cef76dd9..c9098249b0 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2505,22 +2505,10 @@ #include "code\modules\research\designs\AI_module_designs.dm" #include "code\modules\research\designs\biogenerator_designs.dm" #include "code\modules\research\designs\bluespace_designs.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_all_misc.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_cargo .dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_engi.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_medical.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sci.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sec.dm" #include "code\modules\research\designs\computer_part_designs.dm" #include "code\modules\research\designs\electronics_designs.dm" #include "code\modules\research\designs\equipment_designs.dm" #include "code\modules\research\designs\limbgrower_designs.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_all_misc.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_engi.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_medical.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_sci.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_service.dm" #include "code\modules\research\designs\mecha_designs.dm" #include "code\modules\research\designs\mechfabricator_designs.dm" #include "code\modules\research\designs\medical_designs.dm" @@ -2538,6 +2526,18 @@ #include "code\modules\research\designs\autolathe_desings\autolathe_designs_sec_and_hacked.dm" #include "code\modules\research\designs\autolathe_desings\autolathe_designs_tcomms_and_misc.dm" #include "code\modules\research\designs\autolathe_desings\autolathe_designs_tools.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_all_misc.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_cargo .dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_engi.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_medical.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sci.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sec.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_all_misc.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_engi.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_medical.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_sci.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_service.dm" #include "code\modules\research\machinery\_production.dm" #include "code\modules\research\machinery\circuit_imprinter.dm" #include "code\modules\research\machinery\departmental_circuit_imprinter.dm" From b175150719cf2008357dab454d919d94fbeb517d Mon Sep 17 00:00:00 2001 From: Poojawa Date: Tue, 4 Jun 2019 23:27:33 -0500 Subject: [PATCH 32/44] fixes missing chest markings --- modular_citadel/icons/mob/mam_markings.dmi | Bin 93880 -> 93563 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/modular_citadel/icons/mob/mam_markings.dmi b/modular_citadel/icons/mob/mam_markings.dmi index 3575f38e1cdb20d6d5ad39684f176f60a0021ec5..9931f52fe750ae870e51360db66dfa42426df45a 100644 GIT binary patch delta 50129 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
|#RkAiwh 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%0D-v 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 VhUXrt+i}%UH*~J&U9))ce*pAxV1NJs From b053fe3c86634d2f2743e36c3ad888f2d6735d63 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Tue, 4 Jun 2019 23:36:58 -0500 Subject: [PATCH 33/44] Probably fixes synth hand issues --- code/modules/surgery/bodyparts/bodyparts.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 71b659b73f..564a0623a0 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -262,6 +262,7 @@ else if(status == BODYPART_ROBOTIC) icon = DEFAULT_BODYPART_ICON_ROBOTIC body_markings = null + auxmarking = null if(owner) owner.updatehealth() @@ -292,6 +293,7 @@ should_draw_greyscale = FALSE no_update = TRUE body_markings = "husk" // reeee + auxmarking = "husk" if(no_update) return @@ -339,13 +341,16 @@ if(H.dna.features.["mam_body_markings"] != "None") body_markings_icon = Smark.icon body_markings = lowertext(H.dna.features.["mam_body_markings"]) + auxmarking = lowertext(H.dna.features.["mam_body_markings"]) if(MATRIXED) markings_color = list(colorlist) else body_markings = "plain" + auxmarking = "plain" markings_color = (H.dna.features.["mcolor"]) else body_markings = null + auxmarking = null markings_color = "" if(!dropping_limb && H.dna.check_mutation(HULK)) @@ -361,6 +366,7 @@ if(status == BODYPART_ROBOTIC) dmg_overlay_type = "robotic" body_markings = null + auxmarking = null if(dropping_limb) no_update = TRUE //when attached, the limb won't be affected by the appearance changes of its mob owner. From a2b4f4261c1444c7eafa52ecf07a51b33efcc344 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Wed, 5 Jun 2019 02:33:25 -0500 Subject: [PATCH 34/44] Fixes missing hands and marking overlap cleans up the code a bit too. Improves female chest sprites. --- .../mob/living/carbon/human/update_icons.dm | 2 ++ code/modules/surgery/bodyparts/bodyparts.dm | 33 +++++++----------- modular_citadel/icons/mob/mam_markings.dmi | Bin 93563 -> 93529 bytes 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 9b5375035e..ef5b9045ca 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -660,6 +660,8 @@ generate/load female uniform sprites matching all previously decided variables . += "-[BP.dmg_overlay_type]" if(BP.body_markings) . += "-[BP.body_markings]" + else + . += "-no_marking" if(has_trait(TRAIT_HUSK)) . += "-husk" diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 564a0623a0..e35b8efbd0 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -48,7 +48,7 @@ var/body_markings = "" //for bodypart markings var/body_markings_icon = 'modular_citadel/icons/mob/mam_markings.dmi' var/list/markings_color = list() - var/auxmarking + var/auxmarking = "" var/list/auxmarking_color = list() var/animal_origin = null //for nonhuman bodypart (e.g. monkey) @@ -261,8 +261,6 @@ icon = DEFAULT_BODYPART_ICON_ORGANIC else if(status == BODYPART_ROBOTIC) icon = DEFAULT_BODYPART_ICON_ROBOTIC - body_markings = null - auxmarking = null if(owner) owner.updatehealth() @@ -338,20 +336,14 @@ if("mam_body_markings" in S.default_features) var/datum/sprite_accessory/Smark Smark = GLOB.mam_body_markings_list[H.dna.features["mam_body_markings"]] + body_markings_icon = Smark.icon if(H.dna.features.["mam_body_markings"] != "None") - body_markings_icon = Smark.icon body_markings = lowertext(H.dna.features.["mam_body_markings"]) auxmarking = lowertext(H.dna.features.["mam_body_markings"]) - if(MATRIXED) - markings_color = list(colorlist) else body_markings = "plain" auxmarking = "plain" - markings_color = (H.dna.features.["mcolor"]) - else - body_markings = null - auxmarking = null - markings_color = "" + markings_color = list(colorlist) if(!dropping_limb && H.dna.check_mutation(HULK)) mutation_color = "00aa00" @@ -400,7 +392,8 @@ . += image('icons/mob/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_[brutestate]0", -DAMAGE_LAYER, image_dir) if(burnstate) . += image('icons/mob/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_0[burnstate]", -DAMAGE_LAYER, image_dir) - if(body_markings && status != BODYPART_ROBOTIC) + + if(!isnull(body_markings) && status == BODYPART_ORGANIC) if(!use_digitigrade) if(BODY_ZONE_CHEST) . += image(body_markings_icon, "[body_markings]_[body_zone]_[icon_gender]", -MARKING_LAYER, image_dir) @@ -456,7 +449,7 @@ limb.icon_state = "[species_id]_[body_zone]" // Body markings - if(body_markings) + if(!isnull(body_markings)) if(species_id == "husk") marking = image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[body_zone]", -MARKING_LAYER, image_dir) else if(species_id == "husk" && use_digitigrade) @@ -476,7 +469,7 @@ if(aux_zone) aux = image(limb.icon, "[species_id]_[aux_zone]", -aux_layer, image_dir) . += aux - if(body_markings) + if(!isnull(auxmarking)) if(species_id == "husk") auxmarking = image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[aux_zone]", -aux_layer, image_dir) else @@ -489,17 +482,18 @@ limb.icon_state = "[body_zone]_[icon_gender]" else limb.icon_state = "[body_zone]" + if(aux_zone) - aux = image(limb.icon, "[species_id]_[aux_zone]", -aux_layer, image_dir) + aux = image(limb.icon, "[aux_zone]", -aux_layer, image_dir) . += aux - if(body_markings) + if(!isnull(auxmarking)) if(species_id == "husk") auxmarking = image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[aux_zone]", -aux_layer, image_dir) else auxmarking = image(body_markings_icon, "[body_markings]_[aux_zone]", -aux_layer, image_dir) . += auxmarking - if(body_markings) + if(!isnull(body_markings)) if(species_id == "husk") marking = image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[body_zone]", -MARKING_LAYER, image_dir) else if(species_id == "husk" && use_digitigrade) @@ -515,17 +509,16 @@ . += marking return - if(should_draw_greyscale) var/draw_color = mutation_color || species_color || (skin_tone && skintone2hex(skin_tone)) if(draw_color) limb.color = "#[draw_color]" if(aux_zone) aux.color = "#[draw_color]" - if(body_markings) + if(!isnull(auxmarking)) auxmarking.color = list(markings_color) - if(body_markings) + if(!isnull(body_markings)) if(species_id == "husk") marking.color = "#141414" else diff --git a/modular_citadel/icons/mob/mam_markings.dmi b/modular_citadel/icons/mob/mam_markings.dmi index 9931f52fe750ae870e51360db66dfa42426df45a..8327be6eaf0663c9f3c42a9173f4468488b89fb8 100644 GIT binary patch literal 93529 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
jQyJ?b_eIan2Q`ABfBnahq?PAKQ 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 oZ|_V5!!!J4oT0xzxyEV`;2%>uLM*KOV literal 93563 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 B@Qwfg From 60ab3b54d51fc34106336640d42b31d388276b6a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:40:31 -0500 Subject: [PATCH 35/44] Automatic changelog generation for PR #8524 [ci skip] --- html/changelogs/AutoChangeLog-pr-8524.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8524.yml diff --git a/html/changelogs/AutoChangeLog-pr-8524.yml b/html/changelogs/AutoChangeLog-pr-8524.yml new file mode 100644 index 0000000000..66a7b6d456 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8524.yml @@ -0,0 +1,4 @@ +author: "BurgerBB" +delete-after: True +changes: + - rscadd: "Adds a new trait \"Buns of Steel\" that makes you immune to the effects of ass slapping, and temporarily makes the user's arm useless like a stun baton hit. It costs 0 points." From 73fe37ada015db2cb0d12beb823341bd7dc93bac Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:41:25 -0500 Subject: [PATCH 36/44] Automatic changelog generation for PR #8518 [ci skip] --- html/changelogs/AutoChangeLog-pr-8518.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8518.yml diff --git a/html/changelogs/AutoChangeLog-pr-8518.yml b/html/changelogs/AutoChangeLog-pr-8518.yml new file mode 100644 index 0000000000..cbc34893b6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8518.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - tweak: "escape pods emergency suits storage can now be busted open by emags or excessive damage." + - bugfix: "Fixes alt click bypassing the escape pods' suits storage lock." From 1eef9b39e30a808e1a43097f888868ea7fc3ded9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:42:50 -0500 Subject: [PATCH 37/44] Automatic changelog generation for PR #8517 [ci skip] --- html/changelogs/AutoChangeLog-pr-8517.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8517.yml diff --git a/html/changelogs/AutoChangeLog-pr-8517.yml b/html/changelogs/AutoChangeLog-pr-8517.yml new file mode 100644 index 0000000000..5e14c1c696 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8517.yml @@ -0,0 +1,6 @@ +author: "Poojawa" +delete-after: True +changes: + - rscadd: "Added visible and hidden testicles" + - rscadd: "Added multi-boob support. Now you can have two or three pairs of breasts." + - bugfix: "fixed missing vagina and breast sprites" From 8dc5619369f10bc47c3b0c259a05d0f3a4167afc Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:44:07 -0500 Subject: [PATCH 38/44] Automatic changelog generation for PR #8506 [ci skip] --- html/changelogs/AutoChangeLog-pr-8506.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8506.yml diff --git a/html/changelogs/AutoChangeLog-pr-8506.yml b/html/changelogs/AutoChangeLog-pr-8506.yml new file mode 100644 index 0000000000..6711217fb5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8506.yml @@ -0,0 +1,5 @@ +author: "CalamaBanana" +delete-after: True +changes: + - rscadd: "Added Deer taur" + - rscadd: "Added Elf ears to mammals" From f18943387fba7bc0c0a2eeb22633b4061785e3cd Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:49:13 -0500 Subject: [PATCH 39/44] Automatic changelog generation for PR #8504 [ci skip] --- html/changelogs/AutoChangeLog-pr-8504.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8504.yml diff --git a/html/changelogs/AutoChangeLog-pr-8504.yml b/html/changelogs/AutoChangeLog-pr-8504.yml new file mode 100644 index 0000000000..4e80d02845 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8504.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - bugfix: "resonators being so shitty" From 65e2d1d37c70a89a509ad392a6aadc04b78691e4 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:49:59 -0500 Subject: [PATCH 40/44] Automatic changelog generation for PR #8489 [ci skip] --- html/changelogs/AutoChangeLog-pr-8489.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8489.yml diff --git a/html/changelogs/AutoChangeLog-pr-8489.yml b/html/changelogs/AutoChangeLog-pr-8489.yml new file mode 100644 index 0000000000..5e90c56d67 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8489.yml @@ -0,0 +1,5 @@ +author: "Coolgat3" +delete-after: True +changes: + - rscadd: "Added combat gloves sprite" + - imageadd: "Added said sprite" From 055396d110b8eabf524055913d03c0c2c6e75e3e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:52:19 -0500 Subject: [PATCH 41/44] Automatic changelog generation for PR #8491 [ci skip] --- html/changelogs/AutoChangeLog-pr-8491.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8491.yml diff --git a/html/changelogs/AutoChangeLog-pr-8491.yml b/html/changelogs/AutoChangeLog-pr-8491.yml new file mode 100644 index 0000000000..0e82e809f7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8491.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Reduces goonchat lag from being blasted by pellets and bullets repeatedly whilst wearing armor by properly removing the armor protection texts this times." + - spellcheck: "also reduced the size of armor protection messages in general. they clog up the chat box." From 962afa97bc798a98ccba4f63309706fb01044e0d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:53:37 -0500 Subject: [PATCH 42/44] Automatic changelog generation for PR #8516 [ci skip] --- html/changelogs/AutoChangeLog-pr-8516.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8516.yml diff --git a/html/changelogs/AutoChangeLog-pr-8516.yml b/html/changelogs/AutoChangeLog-pr-8516.yml new file mode 100644 index 0000000000..f7419f1add --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8516.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - balance: "Adds in a 7 seconds delay to the jackhammer dismantling a superheated clockwork wall." From ecef40258b3fe0b9b5b47baaf84fae13203f5d76 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:55:21 -0500 Subject: [PATCH 43/44] Automatic changelog generation for PR #8387 [ci skip] --- html/changelogs/AutoChangeLog-pr-8387.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8387.yml diff --git a/html/changelogs/AutoChangeLog-pr-8387.yml b/html/changelogs/AutoChangeLog-pr-8387.yml new file mode 100644 index 0000000000..4770fe08fc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8387.yml @@ -0,0 +1,4 @@ +author: "jtgsz" +delete-after: True +changes: + - rscadd: "ported gang mode" From d44aa44ec6eb21edc2bddf552cd4ee485efc8316 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 04:02:43 -0500 Subject: [PATCH 44/44] Automatic changelog generation for PR #8528 [ci skip] --- html/changelogs/AutoChangeLog-pr-8528.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8528.yml diff --git a/html/changelogs/AutoChangeLog-pr-8528.yml b/html/changelogs/AutoChangeLog-pr-8528.yml new file mode 100644 index 0000000000..0dece1e63d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8528.yml @@ -0,0 +1,7 @@ +author: "Poojawa" +delete-after: True +changes: + - bugfix: "fixed prosthetic hands being invisible" + - bugfix: "male foxes exist again" + - bugfix: "female chest markings improved from being too dark in comparison to their other colors, blending better" + - bugfix: "Markings behave better on non-organic limbs."
Other Roles