diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index b86052793c3..855196a9a4e 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -63,16 +63,18 @@ var/loyalty = 1 if(H.client) switch(H.client.prefs.nanotrasen_relation) - if(COMPANY_LOYAL) loyalty = 1.30 - if(COMPANY_SUPPORTATIVE)loyalty = 1.15 - if(COMPANY_NEUTRAL) loyalty = 1 - if(COMPANY_SKEPTICAL) loyalty = 0.85 - if(COMPANY_OPPOSED) loyalty = 0.70 + if(COMPANY_LOYAL) loyalty = 1.30 + if(COMPANY_SUPPORTATIVE) loyalty = 1.15 + if(COMPANY_NEUTRAL) loyalty = 1 + if(COMPANY_SKEPTICAL) loyalty = 0.85 + if(COMPANY_OPPOSED) loyalty = 0.70 //give them an account in the station database - var/species_modifier = (H.species ? economic_species_modifier[H.species.type] : 2) - if(!species_modifier) - species_modifier = economic_species_modifier[/datum/species/human] + var/species_modifier = (H.species ? H.species.economic_modifier : null) + if (!species_modifier) + var/datum/species/human_species = global.all_species["Human"] + species_modifier = human_species.economic_modifier + PROCLOG_WEIRD("species [H.species || "NULL"] did not have a set economic_modifier!") var/money_amount = (rand(5,50) + rand(5, 50)) * loyalty * economic_modifier * species_modifier var/datum/money_account/M = create_account(H.real_name, money_amount, null) @@ -133,25 +135,14 @@ var/loyalty = 1 if(H.client) switch(H.client.prefs.nanotrasen_relation) - if(COMPANY_LOYAL) loyalty = 3 - if(COMPANY_SUPPORTATIVE)loyalty = 2 - if(COMPANY_NEUTRAL) loyalty = 1 - if(COMPANY_SKEPTICAL) loyalty = -2 - if(COMPANY_OPPOSED) loyalty = -3 + if(COMPANY_LOYAL) loyalty = 3 + if(COMPANY_SUPPORTATIVE) loyalty = 2 + if(COMPANY_NEUTRAL) loyalty = 1 + if(COMPANY_SKEPTICAL) loyalty = -2 + if(COMPANY_OPPOSED) loyalty = -3 //give them an account in the station database - var/species_modifier = 0 - if(economic_species_modifier[H.species.type]) - switch(economic_species_modifier[H.species.type]) - if(/datum/species/human) species_modifier = 0 - if(/datum/species/skrell) species_modifier = 0 - if(/datum/species/tajaran) species_modifier = -2 - if(/datum/species/unathi) species_modifier = -2 - if(/datum/species/diona) species_modifier = -4 - if(/datum/species/machine) species_modifier = -4 - if(/datum/species/bug) species_modifier = -6 - else species_modifier = -3 - + var/species_modifier = min((H.species ? H.species.economic_modifier : 0) - 9, 0) var/wealth = (loyalty + economic_modifier + species_modifier) diff --git a/code/modules/economy/economy_misc.dm b/code/modules/economy/economy_misc.dm index f9b7ca07740..db8bf5bb1d1 100644 --- a/code/modules/economy/economy_misc.dm +++ b/code/modules/economy/economy_misc.dm @@ -46,17 +46,6 @@ #define GEAR_EVA 15 - -/var/list/economic_species_modifier = list( - /datum/species/human = 12, - /datum/species/skrell = 10, - /datum/species/tajaran = 7, - /datum/species/unathi = 7, - /datum/species/diona = 3, - /datum/species/machine = 3, - /datum/species/bug = 1 - ) - //---- The following corporations are friendly with NanoTrasen and loosely enable trade and travel: //Corporation NanoTrasen - Generalised / high tech research and phoron exploitation. //Corporation Vessel Contracting - Ship and station construction, materials research. diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 852c614ee31..9027b8a8077 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -13,6 +13,7 @@ var/bodytype var/age_min = 17 var/age_max = 85 + var/economic_modifier = 0 // Icon/appearance vars. var/icobase = 'icons/mob/human_races/r_human.dmi' // Normal icon set. diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index b5f659f3ec0..e45345c526e 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -5,8 +5,15 @@ name_plural = "Humans" bodytype = "Human" age_max = 125 + economic_modifier = 12 + primitive_form = "Monkey" - unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/punch, /datum/unarmed_attack/bite) + unarmed_types = list( + /datum/unarmed_attack/stomp, + /datum/unarmed_attack/kick, + /datum/unarmed_attack/punch, + /datum/unarmed_attack/bite + ) blurb = "Humanity originated in the Sol system, and over the last four centuries has spread colonies across a wide swathe of space. \ They hold a wide range of forms and creeds.

\ The Sol Alliance is still massively influential, but independent human nations have managed to shake off its dominance and forge their \ @@ -21,7 +28,7 @@ appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR | HAS_EYE_COLOR | HAS_SOCKS remains_type = /obj/effect/decal/remains/human - stamina = 130 // Humans can sprint for longer than any other species + stamina = 130 // Humans can sprint for longer than any other species stamina_recovery = 5 sprint_speed_factor = 0.9 sprint_cost_factor = 0.5 @@ -35,7 +42,12 @@ deform = 'icons/mob/human_races/r_def_lizard.dmi' tail = "sogtail" tail_animation = 'icons/mob/species/unathi/tail.dmi' - unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp) + unarmed_types = list( + /datum/unarmed_attack/stomp, + /datum/unarmed_attack/kick, + /datum/unarmed_attack/claws, + /datum/unarmed_attack/bite/sharp + ) primitive_form = "Stok" darksight = 3 gluttonous = 1 @@ -44,6 +56,7 @@ fall_mod = 1.2 ethanol_resistance = 0.4 taste_sensitivity = TASTE_SENSITIVE + economic_modifier = 7 num_alternate_languages = 2 secondary_langs = list(LANGUAGE_UNATHI, LANGUAGE_AZAZIBA) @@ -74,8 +87,8 @@ heat_level_3 = 1100 //Default 1000 inherent_verbs = list( - /mob/living/proc/devour, - /mob/living/carbon/human/proc/regurgitate + /mob/living/proc/devour, + /mob/living/carbon/human/proc/regurgitate ) @@ -110,13 +123,18 @@ /datum/species/tajaran name = "Tajara" short_name = "taj" - name_plural = "Tajaran" + name_plural = "Tajara" bodytype = "Tajara" icobase = 'icons/mob/human_races/r_tajaran.dmi' deform = 'icons/mob/human_races/r_def_tajaran.dmi' tail = "tajtail" tail_animation = 'icons/mob/species/tajaran/tail.dmi' - unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp) + unarmed_types = list( + /datum/unarmed_attack/stomp, + /datum/unarmed_attack/kick, + /datum/unarmed_attack/claws, + /datum/unarmed_attack/bite/sharp + ) darksight = 8 slowdown = -1 brute_mod = 1.2 @@ -126,8 +144,9 @@ name_language = LANGUAGE_SIIK_MAAS ethanol_resistance = 0.8//Gets drunk a little faster rarity_value = 2 + economic_modifier = 7 - stamina = 90 // Tajarans evolved to maintain a steady pace in the snow, sprinting wastes energy + stamina = 90 // Tajara evolved to maintain a steady pace in the snow, sprinting wastes energy stamina_recovery = 4 sprint_speed_factor = 0.65 sprint_cost_factor = 0.75 @@ -160,7 +179,7 @@ "Your fur prickles in the heat.", "You feel uncomfortably warm.", "Your overheated skin itches." - ) + ) cold_discomfort_level = 275 /datum/species/tajaran/equip_survival_gear(var/mob/living/carbon/human/H) @@ -175,6 +194,7 @@ name_plural = "Skrell" bodytype = "Skrell" age_max = 500 + economic_modifier = 10 icobase = 'icons/mob/human_races/r_skrell.dmi' deform = 'icons/mob/human_races/r_def_skrell.dmi' eyes = "skrell_eyes_s" @@ -205,21 +225,25 @@ ethanol_resistance = 0.5//gets drunk faster taste_sensitivity = TASTE_SENSITIVE - stamina = 90 + stamina = 90 sprint_speed_factor = 1.25 //Evolved for rapid escapes from predators - /datum/species/diona name = "Diona" short_name = "dio" name_plural = "Dionaea" bodytype = "Diona" age_max = 1000 + economic_modifier = 3 icobase = 'icons/mob/human_races/r_diona.dmi' deform = 'icons/mob/human_races/r_def_plant.dmi' language = "Ceti Basic" default_language = LANGUAGE_ROOTSONG - unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/diona) + unarmed_types = list( + /datum/unarmed_attack/stomp, + /datum/unarmed_attack/kick, + /datum/unarmed_attack/diona + ) //primitive_form = "Nymph" slowdown = 7 rarity_value = 4 @@ -229,9 +253,9 @@ show_ssd = "completely quiescent" num_alternate_languages = 1 name_language = "Rootsong" - ethanol_resistance = -1//Can't get drunk + ethanol_resistance = -1 //Can't get drunk taste_sensitivity = TASTE_DULL - mob_size = 12//Worker gestalts are 150kg + mob_size = 12 //Worker gestalts are 150kg remains_type = /obj/effect/decal/cleanable/ash //no bones, so, they just turn into dust blurb = "Commonly referred to (erroneously) as 'plant people', the Dionaea are a strange space-dwelling collective \ species hailing from Epsilon Ursae Minoris. Each 'diona' is a cluster of numerous cat-sized organisms called nymphs; \ @@ -242,13 +266,13 @@ water and other radiation." has_organ = list( - "nutrient channel" = /obj/item/organ/diona/nutrients, - "neural strata" = /obj/item/organ/diona/strata, - "response node" = /obj/item/organ/diona/node, - "gas bladder" = /obj/item/organ/diona/bladder, - "polyp segment" = /obj/item/organ/diona/polyp, + "nutrient channel" = /obj/item/organ/diona/nutrients, + "neural strata" = /obj/item/organ/diona/strata, + "response node" = /obj/item/organ/diona/node, + "gas bladder" = /obj/item/organ/diona/bladder, + "polyp segment" = /obj/item/organ/diona/polyp, "anchoring ligament" = /obj/item/organ/diona/ligament - ) + ) has_limbs = list( "chest" = list("path" = /obj/item/organ/external/chest/diona), @@ -262,7 +286,7 @@ "r_hand" = list("path" = /obj/item/organ/external/hand/right/diona), "l_foot" = list("path" = /obj/item/organ/external/foot/diona), "r_foot" = list("path" = /obj/item/organ/external/foot/right/diona) - ) + ) //inherent_verbs = list() @@ -288,8 +312,8 @@ reagent_tag = IS_DIONA - stamina = -1 // Diona sprinting uses energy instead of stamina - sprint_speed_factor = 0.5 //Speed gained is minor + stamina = -1 // Diona sprinting uses energy instead of stamina + sprint_speed_factor = 0.5 //Speed gained is minor sprint_cost_factor = 0.8 /datum/species/diona/handle_sprint_cost(var/mob/living/carbon/H, var/cost) @@ -321,8 +345,6 @@ H << span("danger", "We have expended our energy reserves, and cannot continue to move at such a pace. We must find light!") return 0 - - /datum/species/diona/can_understand(var/mob/other) var/mob/living/carbon/alien/diona/D = other if(istype(D)) @@ -350,7 +372,6 @@ else//Most of the stuff in the parent function doesnt apply to nymphs add_inherent_verbs(H) - /datum/species/diona/handle_death(var/mob/living/carbon/human/H, var/gibbed = 0) if (!gibbed) // This proc sleeps. Async it. @@ -364,6 +385,7 @@ bodytype = "Machine" age_min = 1 age_max = 30 + economic_modifier = 3 blurb = "IPCs are, quite simply, 'Integrated Positronic Chassis'. In this scenario, positronic does not mean anything significant - it is a nickname given \ to all advanced processing units, based on the works of vintage writer Isaac Asimov. The long of the short is that they represent all unbound synthetic \ @@ -421,11 +443,11 @@ reagent_tag = IS_MACHINE has_organ = list( - "brain" = /obj/item/organ/mmi_holder/posibrain, - "cell" = /obj/item/organ/cell, - "optics" = /obj/item/organ/eyes/optical_sensor, + "brain" = /obj/item/organ/mmi_holder/posibrain, + "cell" = /obj/item/organ/cell, + "optics" = /obj/item/organ/eyes/optical_sensor, "ipc tag" = /obj/item/organ/ipc_tag - ) + ) vision_organ = "optics" @@ -441,15 +463,15 @@ "r_hand" = list("path" = /obj/item/organ/external/hand/right/ipc), "l_foot" = list("path" = /obj/item/organ/external/foot/ipc), "r_foot" = list("path" = /obj/item/organ/external/foot/right/ipc) - ) + ) heat_discomfort_level = 373.15 heat_discomfort_strings = list( "Your CPU temperature probes warn you that you are approaching critical heat levels!" ) - stamina = -1 // Machines use power and generate heat, stamina is not a thing - sprint_speed_factor = 1 // About as capable of speed as a human + stamina = -1 // Machines use power and generate heat, stamina is not a thing + sprint_speed_factor = 1 // About as capable of speed as a human datum/species/machine/handle_post_spawn(var/mob/living/carbon/human/H) H.gender = NEUTER @@ -473,8 +495,7 @@ datum/species/machine/handle_post_spawn(var/mob/living/carbon/human/H) /datum/species/machine/handle_death(var/mob/living/carbon/human/H) ..() H.h_style = "" - spawn(100) - if(H) H.update_hair() + addtimer(CALLBACK(H, /mob/living/carbon/human/.proc/update_hair), 100) /datum/species/machine/sanitize_name(var/new_name) return sanitizeName(new_name, allow_numbers = 1) @@ -586,6 +607,7 @@ datum/species/machine/handle_post_spawn(var/mob/living/carbon/human/H) bodytype = "Vaurca" age_min = 1 age_max = 20 + economic_modifier = 1 language = LANGUAGE_VAURCA primitive_form = "V'krexi" greater_form = "Vaurca Warrior"