Ensures xeno loadout validation is done correctly

This commit is contained in:
Yoshax
2016-08-06 20:27:23 +01:00
parent eff90ea309
commit fe8d1b24af
2 changed files with 7 additions and 5 deletions

View File

@@ -342,9 +342,9 @@ var/global/datum/controller/occupations/job_master
else else
permitted = 1 permitted = 1
//if(G.whitelisted && !is_alien_whitelisted(H, all_species[G.whitelisted])) if(G.whitelisted && !is_alien_whitelisted(H, all_species[G.whitelisted]))
if(G.whitelisted && (G.whitelisted != H.species.name || !is_alien_whitelisted(H, G.whitelisted))) //if(G.whitelisted && (G.whitelisted != H.species.name || !is_alien_whitelisted(H, G.whitelisted)))
permitted = 0 permitted = 0
if(!permitted) if(!permitted)

View File

@@ -56,32 +56,34 @@ var/list/gear_datums = list()
var/mob/preference_mob = preference_mob() var/mob/preference_mob = preference_mob()
for(var/gear_name in gear_datums) for(var/gear_name in gear_datums)
var/datum/gear/G = gear_datums[gear_name] var/datum/gear/G = gear_datums[gear_name]
//if(G.whitelisted && !is_alien_whitelisted(preference_mob(), all_species[G.whitelisted]))
if(G.whitelisted && !is_alien_whitelisted(preference_mob, G.whitelisted)) if(G.whitelisted && !is_alien_whitelisted(preference_mob, all_species[G.whitelisted]))
continue continue
if(max_cost && G.cost > max_cost) if(max_cost && G.cost > max_cost)
continue continue
. += gear_name . += gear_name
/datum/category_item/player_setup_item/loadout/sanitize_character() /datum/category_item/player_setup_item/loadout/sanitize_character()
var/mob/preference_mob = preference_mob()
if(!islist(pref.gear)) if(!islist(pref.gear))
pref.gear = list() pref.gear = list()
for(var/gear_name in pref.gear) for(var/gear_name in pref.gear)
if(!(gear_name in gear_datums)) if(!(gear_name in gear_datums))
pref.gear -= gear_name pref.gear -= gear_name
var/total_cost = 0 var/total_cost = 0
for(var/gear_name in pref.gear) for(var/gear_name in pref.gear)
if(!gear_datums[gear_name]) if(!gear_datums[gear_name])
preference_mob << "<span class='warning'>You cannot have more than one of the \the [gear_name]</span>"
pref.gear -= gear_name pref.gear -= gear_name
else if(!(gear_name in valid_gear_choices())) else if(!(gear_name in valid_gear_choices()))
preference_mob << "<span class='warning'>You cannot take \the [gear_name] as you are not whitelisted for the species.</span>"
pref.gear -= gear_name pref.gear -= gear_name
else else
var/datum/gear/G = gear_datums[gear_name] var/datum/gear/G = gear_datums[gear_name]
if(total_cost + G.cost > MAX_GEAR_COST) if(total_cost + G.cost > MAX_GEAR_COST)
pref.gear -= gear_name pref.gear -= gear_name
preference_mob << "<span class='warning'>You cannot afford to take \the [gear_name]</span>"
else else
total_cost += G.cost total_cost += G.cost