mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-09 16:07:40 +00:00
136 lines
3.8 KiB
Plaintext
136 lines
3.8 KiB
Plaintext
var/const/COLOUR_LIST_SIZE=4
|
|
|
|
proc/sanitize_colour_list(var/list/lst=null)
|
|
if(!lst||!lst.len)
|
|
lst=new/list(COLOUR_LIST_SIZE)
|
|
if(lst.len!=COLOUR_LIST_SIZE)
|
|
var/new_lst[COLOUR_LIST_SIZE]
|
|
for(var/x=1,x<=COLOUR_LIST_SIZE,x++)
|
|
new_lst[x]=lst[x]
|
|
lst=new_lst
|
|
return lst
|
|
|
|
proc/generate_colour_icon(var/fil_chk=null,var/state=null,var/list/lst=null,var/add_layer=0,var/offset_x=0,var/offset_y=0,var/overlay_only=0,var/human=0)
|
|
if(!fil_chk||!state)return null
|
|
lst=sanitize_colour_list(lst)
|
|
var/icon/chk=new/icon(fil_chk)
|
|
var/list/available_states=chk.IconStates()
|
|
var/list/rtn_lst = list()
|
|
if(!overlay_only&&available_states.Find("[state]"))
|
|
rtn_lst += image("icon"=fil_chk, "icon_state"="[state]", "pixel_y"=offset_y, "pixel_x"=offset_x, "layer"=add_layer)
|
|
var/chk_len=human ? 1 : lst.len
|
|
for(var/x=1,x<=chk_len,x++)
|
|
if(!lst[x]&&!human)continue
|
|
var/state_check="[state]_[x]"
|
|
if(x==1)
|
|
if(human)
|
|
state_check="[state]_h"
|
|
else
|
|
if(!available_states.Find("[state_check]"))
|
|
state_check="[state]_h"
|
|
if(available_states.Find("[state_check]"))
|
|
var/image/colourized = image("icon"=fil_chk, "icon_state"="[state_check]", "pixel_y"=offset_y, "pixel_x"=offset_x, "layer"=add_layer)
|
|
var/new_color = "#" + "[human ? human : lst[x]]"
|
|
colourized.color = new_color
|
|
rtn_lst += colourized
|
|
return rtn_lst
|
|
|
|
/mob/living/carbon/human/var/heterochromia=0
|
|
|
|
/datum/dna
|
|
var/mutanttail //Narky code~
|
|
var/mutantwing
|
|
var/wingcolor="FFF"
|
|
var/special_color[COLOUR_LIST_SIZE]
|
|
var/global/const/COCK_NONE=0
|
|
var/global/const/COCK_NORMAL=1
|
|
var/global/const/COCK_HYPER=2
|
|
var/global/const/COCK_DOUBLE=3
|
|
var/list/cock=list("has"=COCK_NONE,"type"="human","color"="900")
|
|
var/vagina=0
|
|
var/datum/special_mutant/special
|
|
var/taur=0 //TEMP!
|
|
var/mob/living/simple_animal/naga_segment/naga=null //ALSO TEMP!
|
|
/* proc/generateExtraData()
|
|
var/list/EDL=list(
|
|
"race"=mutantrace,
|
|
"tail"=mutanttail,
|
|
"sc"=special_color,
|
|
"cock"=cock,
|
|
"vagina"=vagina)
|
|
return EDL
|
|
proc/addExtraData(var/list/EDL, var/setit=0)
|
|
if(EDL["race"]||setit)
|
|
mutantrace=EDL["race"]
|
|
if(EDL["tail"]||setit)
|
|
mutanttail=EDL["tail"]
|
|
if(EDL["sc"]||setit)
|
|
special_color=EDL["sc"]
|
|
if(EDL["cock"]||setit)
|
|
cock=EDL["cock"]
|
|
if(!isnull(EDL["vagina"])||setit)
|
|
vagina=EDL["vagina"]*
|
|
|
|
proc/setExtraData(var/list/EDL)*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/datum/special_mutant
|
|
proc/generate_overlay()
|
|
return 0
|
|
proc/generate_underlay()
|
|
return 0
|
|
|
|
|
|
/datum/dna/proc/mutantrace() //Easy legacy support!
|
|
if(species)
|
|
return species.id
|
|
else
|
|
return "human"
|
|
|
|
/datum/dna/proc/generate_race_block()
|
|
var/block_gen="fff"
|
|
if(species_list[mutantrace()])
|
|
//block_gen = construct_block(species_list.Find(mutantrace), species_list.len+1)
|
|
block_gen = construct_block(species_list.Find(species.id), species_list.len+1)
|
|
else
|
|
block_gen = construct_block(species_list.len+1, species_list.len+1)
|
|
return block_gen
|
|
|
|
/mob/living/proc/set_mutantrace(var/new_mutantrace=null)
|
|
new_mutantrace=kpcode_race_san(new_mutantrace)
|
|
var/datum/dna/dna=has_dna(src)
|
|
if(!dna)return
|
|
if(new_mutantrace)
|
|
//dna.mutantrace=new_mutantrace
|
|
if(species_list.Find(new_mutantrace))
|
|
//var/typ=species_list[species_list.Find(dna.species.id)]
|
|
//dna.species=new typ()
|
|
dna.species=kpcode_race_get(new_mutantrace)
|
|
dna.uni_identity = setblock(dna.uni_identity, DNA_MUTANTRACE_BLOCK, dna.generate_race_block())
|
|
regenerate_icons()
|
|
|
|
|
|
/datum/dna/proc/generate_cock_block()
|
|
var/cock_block=0
|
|
if(cock["has"])
|
|
cock_block+=1
|
|
if(vagina)
|
|
cock_block+=2
|
|
return construct_block(cock_block+1, 4)
|
|
|
|
/mob/living/proc/set_cock_block()
|
|
var/datum/dna/dna=has_dna(src)
|
|
if(!dna)return
|
|
dna.uni_identity = setblock(dna.uni_identity, DNA_COCK_BLOCK, dna.generate_cock_block())
|
|
|
|
|
|
/mob/living/proc/is_taur()
|
|
if(istype(src,/mob/living/carbon/human)&&src:dna&&src:dna:taur)
|
|
if(src:dna:species&&kpcode_cantaur(src:dna:species))
|
|
return 1
|
|
return 0 |