mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
Ensures xeno loadout validation is done correctly
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user