mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-12 08:36:00 +01:00
[MIRROR] Add new Wallets! station trait (#6704)
* Add new Wallets! station trait * Update wallets.dm Co-authored-by: coiax <yellowbounder@gmail.com> Co-authored-by: Gandalf <jzo123@hotmail.com>
This commit is contained in:
@@ -27,6 +27,12 @@ PROCESSING_SUBSYSTEM_DEF(station)
|
||||
/datum/controller/subsystem/processing/station/proc/SetupTraits()
|
||||
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)
|
||||
@@ -40,15 +46,19 @@ PROCESSING_SUBSYSTEM_DEF(station)
|
||||
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_type, amount)
|
||||
/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/picked_trait = pickweight(selectable_traits_by_types[trait_type]) //Rolls from the table for the specific trait type
|
||||
picked_trait = new picked_trait()
|
||||
station_traits += picked_trait
|
||||
if(!picked_trait.blacklist)
|
||||
continue
|
||||
for(var/i in picked_trait.blacklist)
|
||||
var/datum/station_trait/trait_to_remove = i
|
||||
selectable_traits_by_types[initial(trait_to_remove.trait_type)] -= trait_to_remove
|
||||
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
|
||||
if(!trait_instance.blacklist)
|
||||
return
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user