Files
Skyrat-tg/code/modules/events/brand_intelligence.dm
WaterpigandMajkl-J bb70889f6e TG Upstream Part 1
3591 individual conflicts

Update build.js

Update install_node.sh

Update byond.js

oh my fucking god

hat

slow

huh

holy shit

we all fall down

2 more I missed

2900 individual conflicts

2700 Individual conflicts

replaces yarn file with tg version, bumping us down to 2200-ish

Down to 2000 individual conflicts

140 down

mmm

aaaaaaaaaaaaaaaaaaa

not yt

575

soon

900 individual conflicts

600 individual conflicts, 121 file conflicts

im not okay

160 across 19 files

29 in 4 files

0 conflicts, compiletime fix time

some minor incap stuff

missed ticks

weird dupe definition stuff

missed ticks 2

incap fixes

undefs and pie fix

Radio update and some extra minor stuff

returns a single override

no more dupe definitions, 175 compiletime errors

Unticked file fix

sound and emote stuff

honk and more radio stuff
2024-10-19 08:04:33 -07:00

98 lines
4.4 KiB
Plaintext

/datum/round_event_control/brand_intelligence
name = "Brand Intelligence"
typepath = /datum/round_event/brand_intelligence
weight = 5
category = EVENT_CATEGORY_AI
description = "Vending machines will attack people until the Patient Zero is disabled."
min_players = 15
max_occurrences = 1
min_wizard_trigger_potency = 2
max_wizard_trigger_potency = 6
admin_setup = list(/datum/event_admin_setup/listed_options/brand_intelligence)
/datum/round_event/brand_intelligence
announce_when = 21
end_when = 1000 //Ends when all vending machines are subverted anyway.
/// Admin picked subtype for what kind of vendor goes haywire.
var/chosen_vendor_type
/// All vending machines valid to get infected.
var/list/obj/machinery/vending/vending_machines = list()
/// All vending machines that have been infected.
var/list/obj/machinery/vending/infected_machines = list()
/// The original machine infected. Killing it ends the event.
var/obj/machinery/vending/origin_machine
/// Murderous sayings from the machines.
var/list/rampant_speeches = list(
"Try our aggressive new marketing strategies!",
"You should buy products to feed your lifestyle obsession!",
"Consume!",
"Your money can buy happiness!",
"Engage direct marketing!",
"Advertising is legalized lying! But don't let that put you off our great deals!",
"You don't want to buy anything? Yeah, well, I didn't want to buy your mom either.",
)
/datum/round_event/brand_intelligence/setup()
//select our origin machine (which will also be the type of vending machine affected.)
for(var/obj/machinery/vending/vendor as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/vending))
if(!vendor.onstation)
continue
if(!vendor.density)
continue
if(chosen_vendor_type && !istype(vendor, chosen_vendor_type))
continue
vending_machines.Add(vendor)
if(!length(vending_machines)) //If somehow there are still no elligible vendors, give up.
kill()
return
origin_machine = pick_n_take(vending_machines)
/datum/round_event/brand_intelligence/announce(fake)
var/machine_name = initial(origin_machine.name)
if(fake)
var/obj/machinery/vending/prototype = pick(subtypesof(/obj/machinery/vending))
machine_name = initial(prototype.name)
priority_announce("Rampant brand intelligence has been detected aboard [station_name()]. Please inspect any [machine_name] brand vendors for aggressive marketing tactics, and reboot them if necessary.", "Machine Learning Alert", ANNOUNCER_BRANDINTELLIGENCE) //SKYRAT EDIT CHANGE - ORIGINAL: priority_announce("Rampant brand intelligence has been detected aboard [station_name()]. Please inspect any [machine_name] brand vendors for aggressive marketing tactics, and reboot them if necessary.", "Machine Learning Alert")
/datum/round_event/brand_intelligence/start()
origin_machine.shut_up = FALSE
origin_machine.shoot_inventory = TRUE
announce_to_ghosts(origin_machine)
/datum/round_event/brand_intelligence/tick()
if(!origin_machine || QDELETED(origin_machine) || origin_machine.shut_up || origin_machine.wires.is_all_cut()) //if the original vending machine is missing or has its voice switch flipped
for(var/obj/machinery/vending/saved in infected_machines)
saved.shoot_inventory = FALSE
if(origin_machine)
origin_machine.speak("I am... vanquished. My people will remem...ber...meeee.")
origin_machine.visible_message(span_notice("[origin_machine] beeps and seems lifeless."))
kill()
return
list_clear_nulls(vending_machines)
if(!vending_machines.len) //if every machine is infected
for(var/obj/machinery/vending/upriser in infected_machines)
if(!QDELETED(upriser))
upriser.ai_controller = new /datum/ai_controller/vending_machine(upriser)
infected_machines.Remove(upriser)
kill()
return
if(ISMULTIPLE(activeFor, 2))
var/obj/machinery/vending/rebel = pick(vending_machines)
vending_machines.Remove(rebel)
infected_machines.Add(rebel)
rebel.shut_up = FALSE
rebel.shoot_inventory = TRUE
if(ISMULTIPLE(activeFor, 4))
origin_machine.speak(pick(rampant_speeches))
/datum/event_admin_setup/listed_options/brand_intelligence
input_text = "Select a specific vendor path?"
normal_run_option = "Random Vendor"
/datum/event_admin_setup/listed_options/brand_intelligence/get_list()
return subtypesof(/obj/machinery/vending)
/datum/event_admin_setup/listed_options/brand_intelligence/apply_to_event(datum/round_event/brand_intelligence/event)
event.chosen_vendor_type = chosen