Files
GS13NG/code/game/gamemodes/changeling/cellular_emporium.dm
T
CitadelStationBotandkevinz000 1b22c5fe0c [MIRROR] Separates actions.dmi into multiple files (#2214)
* Separates actions.dmi into multiple files

* Delete beam_rifle.dm.rej

* Delete action.dm.rej
2017-08-03 06:09:39 -07:00

86 lines
2.5 KiB
Plaintext

// cellular emporium
// The place where changelings go to buy their biological weaponry.
/datum/cellular_emporium
var/name = "cellular emporium"
var/datum/changeling/changeling
/datum/cellular_emporium/New(my_changeling)
. = ..()
changeling = my_changeling
/datum/cellular_emporium/Destroy()
changeling = null
. = ..()
/datum/cellular_emporium/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.always_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "cellular_emporium", name, 900, 480, master_ui, state)
ui.open()
/datum/cellular_emporium/ui_data(mob/user)
var/list/data = list()
var/can_readapt = changeling.canrespec
var/genetic_points_remaining = changeling.geneticpoints
var/absorbed_dna_count = changeling.absorbedcount
data["can_readapt"] = can_readapt
data["genetic_points_remaining"] = genetic_points_remaining
data["absorbed_dna_count"] = absorbed_dna_count
var/list/abilities = list()
for(var/path in subtypesof(/obj/effect/proc_holder/changeling))
var/obj/effect/proc_holder/changeling/ability = path
var/dna_cost = initial(ability.dna_cost)
if(dna_cost <= 0)
continue
var/list/AL = list()
AL["name"] = initial(ability.name)
AL["desc"] = initial(ability.desc)
AL["helptext"] = initial(ability.helptext)
AL["owned"] = changeling.has_sting(ability)
var/req_dna = initial(ability.req_dna)
AL["dna_cost"] = dna_cost
AL["can_purchase"] = ((req_dna <= absorbed_dna_count) && (dna_cost <= genetic_points_remaining))
abilities += list(AL)
data["abilities"] = abilities
return data
/datum/cellular_emporium/ui_act(action, params)
if(..())
return
switch(action)
if("readapt")
if(changeling.canrespec)
changeling.lingRespec(usr)
if("evolve")
var/sting_name = params["name"]
changeling.purchasePower(usr, sting_name)
/datum/action/innate/cellular_emporium
name = "Cellular Emporium"
icon_icon = 'icons/obj/drinks.dmi'
button_icon_state = "changelingsting"
background_icon_state = "bg_alien"
var/datum/cellular_emporium/cellular_emporium
/datum/action/innate/cellular_emporium/New(our_target)
. = ..()
button.name = name
if(istype(our_target, /datum/cellular_emporium))
cellular_emporium = our_target
else
throw EXCEPTION("cellular_emporium action created with non emporium")
/datum/action/innate/cellular_emporium/Activate()
cellular_emporium.ui_interact(owner)