forked from ParadiseSS13/Paradise
-
Notifications
You must be signed in to change notification settings - Fork 127
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Ports (most(ok like half)) station traits from tg. Ready for review i…
…nto TM (ParadiseSS13#22334) * no longer super sick time to port station traits in a 4 hour rush as you have lost control of your life * some changes /fixes * Apply suggestions from code review Co-authored-by: Luc <[email protected]> Co-authored-by: Contrabang <[email protected]> * more changes * oh right, the murders (uplink price tweaks) * Update code/controllers/subsystem/SSjobs.dm Co-authored-by: Henri215 <[email protected]> * Apply suggestions from code review Co-authored-by: Henri215 <[email protected]> * compiles * doesnt work but works better * tgui dogs still sleep but I want to sleep * it should finally compile now. Probably. * Update tgui.bundle.js * Sorry IAN, transfer components is shoddy as hell * removes minor uneeded /tgui * also extra line whoops * final stuff * reverting changes I made earlier is hard ok * Weight change, uplink reference * oh right, the hey fucko * Update code/_globalvars/traits.dm Co-authored-by: Henri215 <[email protected]> * Update tgui.bundle.js * pushes * pulls it * Apply suggestions from code review Co-authored-by: Contrabang <[email protected]> * more changes, ion rifle blocked on cyb revolution * dipshit remove the debug / tgui pritier and such * tgui * updates tgui again as nanomap was merged * Apply suggestions from code review Co-authored-by: Ryan <[email protected]> * comment / tgui * every day I worry all day * Full TGUI rebuild + prettier * ah fuck * leave a customer feedback at the link below! * tgui momenr * tgui moment * FUCK I am dumb * vertical TGUI * She T's on my GUI till I * Update tgui.bundle.js * Apply suggestions from code review Co-authored-by: Gaxeer <[email protected]> * Update code/modules/supply/supply_pack.dm Co-authored-by: Gaxeer <[email protected]> * IPC can now use robotic hearts / pulse demon hearts and charge * fixes revert not working for hangover / arrivals * tgui moment * hhgreg * fixes that one bug * Every day I worry all day * deconflicted for real this t ime * Update code/datums/station_traits/postive_traits.dm Co-authored-by: Ryan <[email protected]> * ch-ch-ch-changes * Update SSjobs.dm * Update code/modules/supply/supply_pack.dm Co-authored-by: Ryan <[email protected]> * deconflicted but won't pass CI * fixes double dipping on traits * my le consoles, they le no work? * Great Great Asset, Asset, Great Great Asset, Asset... * sorry slime mains * fixes borgs being punished heavier * actually fixes it, I was dense * hopefully fixes borg drunk further * makes it compile? * actually makes it compile god whyyyy --------- Co-authored-by: Luc <[email protected]> Co-authored-by: Contrabang <[email protected]> Co-authored-by: Henri215 <[email protected]> Co-authored-by: Ryan <[email protected]> Co-authored-by: SteelSlayer <[email protected]> Co-authored-by: Gaxeer <[email protected]>
- Loading branch information
1 parent
2c7a9b3
commit d668a29
Showing
51 changed files
with
1,632 additions
and
47 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
#define STATION_TRAIT_POSITIVE 1 | ||
#define STATION_TRAIT_NEUTRAL 2 | ||
#define STATION_TRAIT_NEGATIVE 3 | ||
|
||
/// For traits that shouldn't be selected, like abstract types (wow) | ||
#define STATION_TRAIT_ABSTRACT (1<<0) | ||
/// Only run on planet stations | ||
#define STATION_TRAIT_PLANETARY (1<<1) | ||
/// Only run on space stations | ||
#define STATION_TRAIT_SPACE_BOUND (1<<2) | ||
|
||
/// Not restricted by space or planet, can always just happen | ||
#define STATION_TRAIT_MAP_UNRESTRICTED STATION_TRAIT_PLANETARY | STATION_TRAIT_SPACE_BOUND | ||
|
||
/// The data file that future station traits forced by an admin are stored in | ||
#define FUTURE_STATION_TRAITS_FILE "data/future_station_traits.json" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
PROCESSING_SUBSYSTEM_DEF(station) | ||
name = "Station" | ||
init_order = INIT_ORDER_STATION | ||
flags = SS_TICKER | ||
wait = 5 SECONDS | ||
cpu_display = SS_CPUDISPLAY_DEFAULT | ||
offline_implications = "Station traits will no longer process. No intervention needed at this time." | ||
|
||
/// A list of currently active station traits | ||
var/list/station_traits = list() | ||
/// Assoc list of trait type || assoc list of traits with weighted value. Used for picking traits from a specific category. | ||
var/list/selectable_traits_by_types = list(STATION_TRAIT_POSITIVE = list(), STATION_TRAIT_NEUTRAL = list(), STATION_TRAIT_NEGATIVE = list()) | ||
|
||
/datum/controller/subsystem/processing/station/Initialize() | ||
SetupTraits() | ||
|
||
///Rolls for the amount of traits and adds them to the traits list | ||
/datum/controller/subsystem/processing/station/proc/SetupTraits() | ||
|
||
if(fexists("data/next_traits.txt")) | ||
var/forced_traits_contents = file2list("data/next_traits.txt") | ||
fdel("data/next_traits.txt") | ||
var/list/temp_list = splittext(forced_traits_contents[1], ",") | ||
|
||
for(var/trait_text_path in temp_list) | ||
var/station_trait_path = text2path(trait_text_path) | ||
if(!ispath(station_trait_path, /datum/station_trait) || station_trait_path == /datum/station_trait) | ||
var/message = "Invalid station trait path [station_trait_path] was requested in the future station traits!" | ||
log_game(message) | ||
message_admins(message) | ||
continue | ||
|
||
setup_trait(station_trait_path) | ||
|
||
return | ||
|
||
for(var/i in subtypesof(/datum/station_trait)) | ||
var/datum/station_trait/trait_typepath = i | ||
|
||
// If forced, (probably debugging), just set it up now, keep it out of the pool. | ||
if(initial(trait_typepath.force)) | ||
setup_trait(trait_typepath) | ||
continue | ||
|
||
if(initial(trait_typepath.trait_flags) & STATION_TRAIT_ABSTRACT) | ||
continue //Dont add abstract ones to it | ||
selectable_traits_by_types[initial(trait_typepath.trait_type)][trait_typepath] = initial(trait_typepath.weight) | ||
|
||
var/positive_trait_count = pick(20;0, 5;1, 1;2) | ||
var/neutral_trait_count = pick(10;0, 10;1, 3;2) | ||
var/negative_trait_count = pick(20;0, 5;1, 1;2) | ||
|
||
pick_traits(STATION_TRAIT_POSITIVE, positive_trait_count) | ||
pick_traits(STATION_TRAIT_NEUTRAL, neutral_trait_count) | ||
pick_traits(STATION_TRAIT_NEGATIVE, negative_trait_count) | ||
|
||
///Picks traits of a specific category (e.g. bad or good) and a specified amount, then initializes them and adds them to the list of traits. | ||
/datum/controller/subsystem/processing/station/proc/pick_traits(trait_sign, amount) | ||
if(!amount) | ||
return | ||
for(var/iterator in 1 to amount) | ||
var/datum/station_trait/trait_type = pickweight(selectable_traits_by_types[trait_sign]) //Rolls from the table for the specific trait type | ||
setup_trait(trait_type) | ||
|
||
///Creates a given trait of a specific type, while also removing any blacklisted ones from the future pool. | ||
/datum/controller/subsystem/processing/station/proc/setup_trait(datum/station_trait/trait_type) | ||
var/datum/station_trait/trait_instance = new trait_type() | ||
station_traits += trait_instance | ||
log_game("Station Trait: [trait_instance.name] chosen for this round.") | ||
trait_instance.blacklist += trait_instance.type | ||
for(var/i in trait_instance.blacklist) | ||
var/datum/station_trait/trait_to_remove = i | ||
selectable_traits_by_types[initial(trait_to_remove.trait_type)] -= trait_to_remove |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.