Proxy Records: Difference between revisions

From Kolmafia
Jump to navigation Jump to search
imported>Bale
update
imported>Relyk
weeeeeeeeeeee
Line 1: Line 1:
Proxy Records is a way for KoLmafia to pass additional information to the scripter. Many datatypes contain these proxy records. such as items, skills, effects, monsters and coinmasters. This information is referred to as proxy records because the manner of reference is similar to a field of a [[Data_Structures#Records|record]].
Proxy records are special records associated with the special [[Data Types|data types]] available to scripters. These records are always available for the special datatypes. The fields in a proxy record are referenced in the same manner as a [[Data_Structures#Records|record]].


==Special Datatypes==


{{CodeSample|
===bounty===
description=This is an example of how to retrieve proxy record information in a script. Notice it uses the same notation as if the item datatype is a record.|
{| cellpadding="3" cellspacing="0" border="1px" class="sortable"
code=<syntaxhighlight>
|- | style="background-color: #F2F2F2"
item it = $item[coffee pixie stick];
|-
print("You can buy a "+ it +" at the "+ it.seller);
! Field
print("It will consume "+ it.spleen +" spleen and give "+ it.adventures +" adventures.");
! Data type
</syntaxhighlight>}}
! Default value
! ASH Accessor Function / Notes
|-
| plural
| string
| ""
|
|-
| type
| string
| ""
|
|-
| kol_internal_type
| string
| ""
|
|-
| number
| int
| 0
|
|-
| image
| string
| ""
|
|-
| monster
| monster
| none
|
|-
| location
| location
| none
|
|}


===class===
{| cellpadding="3" cellspacing="0" border="1px" class="sortable"
|- | style="background-color: #F2F2F2"
|-
! Field
! Data type
! Default value
! ASH Accessor Function / Notes
|-
| primestat
| stat
| Muscle
|
|}


Here's an example of displaying a proxy record in the CLI. Note that it displays all fields associated with that datatype.
===coinmaster===
<pre>
{| cellpadding="3" cellspacing="0" border="1px" class="sortable"
> ash $item[coffee pixie stick]
|- | style="background-color: #F2F2F2"
|-
! Field
! Data type
! Default value
! ASH Accessor Function / Notes
|-
| token
| string
| ""
|
|-
| item
| item
| none
|
|-
| property
| string
| ""
|
|-
| available_tokens
| int
| 0
|
|-
| buys
| boolean
| false
|
|-
| sells
| boolean
| false
|
|}


Returned: coffee pixie stick
===effect===
plural => coffee pixie sticks
{| cellpadding="3" cellspacing="0" border="1px" class="sortable"
descid => 936288573
|- | style="background-color: #F2F2F2"
image => cpstick.gif
|-
smallimage => cpstick.gif
! Field
levelreq => 4
! Data type
quality =>
! Default value
adventures => 5-10
! ASH Accessor Function / Notes
muscle => 0
|-
mysticality => 0
| default
moxie => 0
| string
fullness => 0
| ""
inebriety => 0
|
spleen => 4
|-
minhp => 0
| note
maxhp => 0
| string
minmp => 0
| ""
maxmp => 0
|
dailyusesleft => 0
|-
notes =>
| all
quest => false
| aggregate
gift => false
boolean [string] =>
tradeable => false
|
discardable => true
|-
combat => false
| image
combat_reusable => false
| string
usable => true
| "/images/debug.gif"
reusable => false
|
multi => true
|-
fancy => false
| descid
candy => false
| string
seller => Arcade Ticket Counter
| ""
buyer => none
|
name_length => 18
|}


> ash $coinmaster[Arcade Ticket Counter]
===element===
{| cellpadding="3" cellspacing="0" border="1px" class="sortable"
|- | style="background-color: #F2F2F2"
|-
! Field
! Data type
! Default value
! ASH Accessor Function / Notes
|-
| image
| string
| "circle.gif"
|
|}


Returned: Arcade Ticket Counter
===familiar===
token => ticket
{| cellpadding="3" cellspacing="0" border="1px" class="sortable"
item => Game Grid ticket
|- | style="background-color: #F2F2F2"
property =>
|-
available_tokens => 0
! Field
buys => false
! Data type
sells => true
! Default value
! ASH Accessor Function / Notes
|-
| hatchling
| item
| none
|
|-
| image
| string
| "debug.gif"
|
|-
| name
| string
| ""
|
|-
| charges
| int
| 0
|
|-
| drop_name
| string
| ""
|
|-
| drop_item
| item
| none
|
|-
| drops_today
| int
| 0
|
|-
| drops_limit
| int
| 0
|
|-
| combat
| boolean
| false
|
|-
| physical_damage
| boolean
| false
|
|-
| elemental_damage
| boolean
| false
|
|-
| block
| boolean
| false
|
|-
| delevel
| boolean
| false
|
|-
| hp_during_combat
| boolean
| false
|
|-
| mp_during_combat
| boolean
| false
|
|-
| other_action_during_combat
| boolean
| false
|
|-
| hp_after_combat
| boolean
| false
|
|-
| mp_after_combat
| boolean
| false
|
|-
| other_action_after_combat
| boolean
| false
|
|-
| passive
| boolean
| false
|
|-
| variable
| boolean
| false
|
|}
===item===
{| cellpadding="3" cellspacing="0" border="1px" class="sortable"
|- | style="background-color: #F2F2F2"
|-
! Field
! Data type
! Default value
! ASH Accessor Function / Notes
|-
| plural
| string
| ""
|
|-
| descid
| string
| ""
|
|-
| image
| string
| ""
|
|-
| smallimage
| string
| ""
|
|-
| levelreq
| int
| 0
|
|-
| quality
| string
| ""
|
|-
| adventures
| string
| ""
|
|-
| muscle
| string
| ""
|
|-
| mysticality
| string
| ""
|
|-
| moxie
| string
| ""
|
|-
| fullness
| int
| 0
|
|-
| inebriety
| int
| 0
|
|-
| spleen
| int
| 0
|
|-
| minhp
| int
| 0
|
|-
| maxhp
| int
| 0
|
|-
| minmp
| int
| 0
|
|-
| maxmp
| int
| 0
|
|-
| dailyusesleft
| int
| 0
|
|-
| notes
| string
| ""
|
|-
| quest
| boolean
| false
|
|-
| gift
| boolean
| false
|
|-
| tradeable
| boolean
| false
|
|-
| discardable
| boolean
| false
|
|-
| combat
| boolean
| false
|
|-
| combat_reusable
| boolean
| false
|
|-
| usable
| boolean
| false
|
|-
| reusable
| boolean
| false
|
|-
| multi
| boolean
| false
|
|-
| fancy
| boolean
| false
|
|-
| candy
| boolean
| false
|
|-
| seller
| coinmaster
| none
|
|-
| buyer
| coinmaster
| none
|
|-
| name_length
| int
| 0
|
|}


> ash $location[The Penultimate Fantasy Airship]
===location===
{| cellpadding="3" cellspacing="0" border="1px" class="sortable"
|- | style="background-color: #F2F2F2"
|-
! Field
! Data type
! Default value
! ASH Accessor Function / Notes
|-
| nocombats
| boolean
| false
|
|-
| zone
| string
| ""
|
|-
| parent
| string
| ""
|
|-
| parentdesc
| string
| ""
|
|-
| environment
| string
| ""
|
|-
| bounty
| bounty
| none
|
|-
| combat_queue
| string
| ""
|
|-
| noncombat_queue
| string
| ""
|
|-
| turns_spent
| int
| 0
|
|-
| kisses
| int
| 0
|
|-
| recommended_stat
| int
| 0
|
|-
| water_level
| int
| 0
|
|}


Returned: The Penultimate Fantasy Airship
===monster===
nocombats => false
{| cellpadding="3" cellspacing="0" border="1px" class="sortable"
zone => Beanstalk
|- | style="background-color: #F2F2F2"
parent => Beanstalk
|-
parentdesc => Above the Beanstalk
! Field
environment => outdoor
! Data type
bounty => burned-out arcanodiode
! Default value
combat_queue => MagiMechTech MechaMech; Quiet Healer; MagiMechTech MechaMech; MagiMechTech MechaMech; lobsterfrogman
! ASH Accessor Function / Notes
noncombat_queue => Random Lack of an Encounter; Random Lack of an Encounter; F-F-Fantastic!; Rainy Fax Dreams on your Wedding Day; Rainy Fax Dreams on your Wedding Day
|-
turns_spent => 30
| id
kisses => 0
| int
recommended_stat => 90
| 0
water_level => 2
|
|-
| base_hp
| int
| 0
| {{f|monster_hp}} (includes modifiers)
|-
| base_attack
| int
| 0
| {{f|monster_attack}} (includes modifiers)
|-
| base_defense
| int
| 0
| {{f|monster_defense}} (includes modifiers)
|-
| raw_hp
| int
| 0
| (excludes modifiers)
|-
| raw_attack
| int
| 0
| (excludes modifiers)
|-
| raw_defense
| int
| 0
| (excludes modifiers)
|-
| base_initiative
| int
| 0
| {{f|monster_initiative}} (includes modifiers)
|-
| raw_initiative
| int
| 0
| (excludes modifiers)
|-
| element attack_element
| element
| none
|
|-
| element defense_element
| element
| none
| {{f|monster_element}}
|-
| physical_resistance
| int
| 0
|
|-
| min_meat
| int
| 0
| (excludes modifiers)
|-
| max_meat
| int
| 0
| (excludes modifiers)
|-
| base_mainstat_exp
| foat
| 0.0
| (includes bonus stats from +ML, but not from +stat effects)
|-
| phylum
| phylum
| none
| {{f|monster_phylum}}
|-
| poison
| effect
| none
|
|-
| boss
| boolean
| false
|
|-
| dummy
| boolean
| false
|
|-
| image
| string
| ""
|
|-
| images
| aggregate boolean [string]
|
|
|-
| attributes
| string
| ""
| A compilation of attack, defense, initiative, element, meat drop, and phylum
|-
| random_attributes
| aggregate boolean [string]
|
| The monster's random modifiers - like those generated in the One Crazy Random Summer path
|-
| manuel_name
| string
| ""
|
|}


> ash $skill[empathy of the newt]
===phylum===
{| cellpadding="3" cellspacing="0" border="1px" class="sortable"
|- | style="background-color: #F2F2F2"
|-
! Field
! Data type
! Default value
! ASH Accessor Function / Notes
|-
| image
| string
| none
|
|}


Returned: Empathy of the Newt
===skill===
level => 8
{| cellpadding="3" cellspacing="0" border="1px" class="sortable"
image => empathy.gif
|- | style="background-color: #F2F2F2"
traincost => 3250
|-
class => Turtle Tamer
! Field
libram => false
! Data type
passive => false
! Default value
buff => true
! ASH Accessor Function / Notes
combat => false
|-
song => false
| level
expression => false
| int
permable => true
| -1
dailylimit => -1
|
timescast => 1
|-
| image
| string
| none
|
|-
| traincost
| int
| 0
|
|-
| class
| class
| none
|
|-
| libram
| boolean
| false
|
|-
| passive
| boolean
| false
|
|-
| buff
| boolean
| false
|
|-
| combat
| boolean
| false
|
|-
| song
| boolean
| false
|
|-
| expression
| boolean
| false
|
|-
| summon
| boolean
| false
|
|-
| permable
| boolean
| true
|
|-
| dailylimit
| int
| -1
|
|-
| timescast
| int
| 0
|
|}


> ash $familiar[slimeling]
=== slot ===
Slot does not have any fields.


Returned: Slimeling
===stat===
combat => true
Stat does not have any fields.
hatchling => squirming Slime larva
image => slimeling.gif
name => Princess Vina
charges => 0


> ash $monster[black widow]
===thrall===
 
{| cellpadding="3" cellspacing="0" border="1px" class="sortable"
Returned: black widow
|- | style="background-color: #F2F2F2"
base_hp => 257
|-
base_attack => 268
! Field
base_defense => 246
! Data type
raw_hp => 121
! Default value
raw_attack => 132
! ASH Accessor Function / Notes
raw_defense => 110
|-
base_initiative => 430
| id
raw_initiative => 50
| int
attack_element => none
| 0
defense_element => none
|
physical_resistance => 0
|-
min_meat => 40
| name
max_meat => 60
| string
base_mainstat_exp => 56.16666666666667
| ""
phylum => bug
|
poison => Really Quite Poisoned
|-
boss => false
| level
image => blackwidow.gif
| int
attributes => Atk: 132 Def: 110 HP: 121 Init: 50 Meat: 50 "Really Quite Poisoned" P: bug
| 0
 
|
> ash $effect[sugar rush]
|-
 
| image
Returned: Sugar Rush
| string
default => use either 1 Angry Farmer candy, 1 Tasty Fun Good rice candy, 1 Crimbo candied pecan, Crimbo fudge, Crimbo peppermint bark, 1 Breath mint, 1 that gum you like
| ""
note =>
|
all => aggregate boolean [string]
|-
  use 1 Angry Farmer candy => true
| tinyimage
  use 1 Tasty Fun Good rice candy => true
| string
  use 1 Crimbo candied pecan => true
| ""
  use Crimbo fudge => true
|
  use Crimbo peppermint bark => true
|-
  use 1 Breath mint => true
| skill
  use 1 that gum you like => true
| skill
image => http://images.kingdomofloathing.com/itemimages/hoppedup.gif
| none
descid => 83695b70e0470a36125feca3198a16b4
|
 
|-
> ash $thrall[Spice Ghost]
| current_modifiers
 
| string
Returned: Spice Ghost
| ""
id => 7
|
name =>
|}
level => 0
image => spiceghost.gif
tinyimage => t_spiceghost.gif
skill => Bind Spice Ghost
current_modifiers =>
</pre>
 
[[Category:Scripting]]

Revision as of 00:33, 18 October 2015

Proxy records are special records associated with the special data types available to scripters. These records are always available for the special datatypes. The fields in a proxy record are referenced in the same manner as a record.

Special Datatypes

bounty

Field Data type Default value ASH Accessor Function / Notes
plural string ""
type string ""
kol_internal_type string ""
number int 0
image string ""
monster monster none
location location none

class

Field Data type Default value ASH Accessor Function / Notes
primestat stat Muscle

coinmaster

Field Data type Default value ASH Accessor Function / Notes
token string ""
item item none
property string ""
available_tokens int 0
buys boolean false
sells boolean false

effect

Field Data type Default value ASH Accessor Function / Notes
default string ""
note string ""
all aggregate

boolean [string] =>

image string "/images/debug.gif"
descid string ""

element

Field Data type Default value ASH Accessor Function / Notes
image string "circle.gif"

familiar

Field Data type Default value ASH Accessor Function / Notes
hatchling item none
image string "debug.gif"
name string ""
charges int 0
drop_name string ""
drop_item item none
drops_today int 0
drops_limit int 0
combat boolean false
physical_damage boolean false
elemental_damage boolean false
block boolean false
delevel boolean false
hp_during_combat boolean false
mp_during_combat boolean false
other_action_during_combat boolean false
hp_after_combat boolean false
mp_after_combat boolean false
other_action_after_combat boolean false
passive boolean false
variable boolean false

item

Field Data type Default value ASH Accessor Function / Notes
plural string ""
descid string ""
image string ""
smallimage string ""
levelreq int 0
quality string ""
adventures string ""
muscle string ""
mysticality string ""
moxie string ""
fullness int 0
inebriety int 0
spleen int 0
minhp int 0
maxhp int 0
minmp int 0
maxmp int 0
dailyusesleft int 0
notes string ""
quest boolean false
gift boolean false
tradeable boolean false
discardable boolean false
combat boolean false
combat_reusable boolean false
usable boolean false
reusable boolean false
multi boolean false
fancy boolean false
candy boolean false
seller coinmaster none
buyer coinmaster none
name_length int 0

location

Field Data type Default value ASH Accessor Function / Notes
nocombats boolean false
zone string ""
parent string ""
parentdesc string ""
environment string ""
bounty bounty none
combat_queue string ""
noncombat_queue string ""
turns_spent int 0
kisses int 0
recommended_stat int 0
water_level int 0

monster

Field Data type Default value ASH Accessor Function / Notes
id int 0
base_hp int 0 monster_hp() (includes modifiers)
base_attack int 0 monster_attack() (includes modifiers)
base_defense int 0 monster_defense() (includes modifiers)
raw_hp int 0 (excludes modifiers)
raw_attack int 0 (excludes modifiers)
raw_defense int 0 (excludes modifiers)
base_initiative int 0 monster_initiative() (includes modifiers)
raw_initiative int 0 (excludes modifiers)
element attack_element element none
element defense_element element none monster_element()
physical_resistance int 0
min_meat int 0 (excludes modifiers)
max_meat int 0 (excludes modifiers)
base_mainstat_exp foat 0.0 (includes bonus stats from +ML, but not from +stat effects)
phylum phylum none monster_phylum()
poison effect none
boss boolean false
dummy boolean false
image string ""
images aggregate boolean [string]
attributes string "" A compilation of attack, defense, initiative, element, meat drop, and phylum
random_attributes aggregate boolean [string] The monster's random modifiers - like those generated in the One Crazy Random Summer path
manuel_name string ""

phylum

Field Data type Default value ASH Accessor Function / Notes
image string none

skill

Field Data type Default value ASH Accessor Function / Notes
level int -1
image string none
traincost int 0
class class none
libram boolean false
passive boolean false
buff boolean false
combat boolean false
song boolean false
expression boolean false
summon boolean false
permable boolean true
dailylimit int -1
timescast int 0

slot

Slot does not have any fields.

stat

Stat does not have any fields.

thrall

Field Data type Default value ASH Accessor Function / Notes
id int 0
name string ""
level int 0
image string ""
tinyimage string ""
skill skill none
current_modifiers string ""