Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @@ CSYS CODE
- @switch/inline isdbref(u(csc))=0,{@tel create(Combat System Configurator <CSC>)=config(master_room)}
- &csc u(coi)=locate(config(master_room),Combat System Configurator <CSC>,TXxi)
- @parent u(csc)=u(coi)
- @set u(csc)=WIZARD !NO_COMMAND SAFE
- @lock/Command u(csc)=@[u(sgo)]/Command
- @switch/inline isdbref(u(csdb))=0,{@tel create(Combat System Database <CSDB>)=u(csc)}
- &csdb u(coi)=locate(u(csc),Combat System Database <CSDB>,TXxi)
- @parent u(csdb)=u(coi)
- @set u(csdb)=WIZARD !NO_COMMAND SAFE
- @power u(csdb)=many_attribs
- &VAR`MSGHEAD u(csc)=CSYSEDIT
- &RFN`HEADER u(csc)=header(%0,,CSYSEDIT`BORDER,CSYSEDIT`BORDERDOT,CSYSEDIT`BORDERTEXT)
- &RFN`SUBHEADER u(csc)=subheader(%0,,CSYSEDIT`BORDER,CSYSEDIT`BORDERDOT,CSYSEDIT`BORDERTEXT)
- &MAINDB u(csc)=u(csdb)
- @@ ******** Validation
- @@ %0 = data, %1 = target, %2 = attribute
- &VAL`FORMSLOT u(csc)=@assert regmatchi(trim(%0),^(\\d+|\[a-z\])$)=@nspemit %#=msghead(v(VAR`MSGHEAD)) ERROR: Forms must be addressed by a positive integer value or single alphabetical character.;th setq(return,trim(%0))
- &VAL`FORMNAME u(csc)=th setq(return,trim(%0))
- &VAL`STAT u(csc)=@assert strlen(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: No stat entered.};@include u(ccs)/INC`PARTIAL=before(%0,=),u(RET`STATLIST),|,v(VAR`MSGHEAD),stat,stat;th setq(statnum,u(RET`STATNUM,%q<stat>))
- &VAL`STATNUM u(csc)=@assert isint(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: Stats must be Integers!};th setq(return,abs(trim(%0)))
- &VAL`CLASS u(csc)=@assert strlen(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: No class entered.};@include u(ccs)/INC`PARTIAL=%0,u(RET`CLALIST),|,v(VAR`MSGHEAD),class,class;th setq(clanum,u(RET`CLANUM,%q<class>))
- &VAL`ATKSLOT u(csc)=@assert valnum(setr(slot,add(%0,0)))=@include u(csc)/INC`PMSG=%#,{ERROR: Slot not entered or invalid. Must be a whole positive number!}
- &VAL`ATKNAME u(csc)=@assert strlen(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: Attack requires a name!};th setq(return,trim(%0))
- &VAL`ATKPOWER u(csc)=@assert strlen(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: Power level required!};@assert isint(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: Power Level must be an integer!};th setq(return,abs(trim(%0)))
- &VAL`ATKACC u(csc)=@assert strlen(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: Accuracy required!};@assert isint(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: Accuracy must be an integer!};th setq(return,abs(trim(%0)))
- &VAL`ATKTYPE u(csc)=@assert strlen(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: Type empty!};@include u(ccs)/INC`PARTIAL=%0,u(RET`TYPLIST),|,v(VAR`MSGHEAD),type,type;th setq(typnum,u(RET`TYPNUM,%q<type>))
- &VAL`ELEMENT u(csc)=@assert strlen(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: Element empty!};@include u(ccs)/INC`PARTIAL=%0,u(RET`ELELIST),|,v(VAR`MSGHEAD),element,element;th setq(elenum,u(RET`ELENUM,%q<element>))
- &VAL`ELEMENT`LIST u(csc)=@assert strlen(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: Element list empty!};@dolist/inline %0={@include u(csc)/VAL`ELEMENT=%i0;th setq(elelist,trim(cat(%q<elelist>,%q<element>)),elenumlist,trim(cat(%q<elenumlist>,%q<elenum>)))}
- &VAL`ATKSTRING u(csc)=@include u(csc)/VAL`ATKNAME=elements(%0,1,/);th setq(atkname,%q<return>);@include u(csc)/VAL`ATKTYPE=elements(%0,2,/);th setq(atktype,%q<typnum>);@include u(csc)/VAL`ELEMENT`LIST=elements(%0,3,/);th setq(atkele,%q<elenumlist>);@include u(csc)/VAL`ATKPOWER=elements(%0,4,/);th setq(atkpower,%q<return>);@include u(csc)/VAL`ATKACC=elements(%0,5,/);th setq(atkacc,%q<return>)
- &VAL`CATEGORY u(csc)=@assert strlen(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: Category empty!};@include u(ccs)/INC`PARTIAL=%0,u(RET`CATLIST,%1,|),|,v(VAR`MSGHEAD),category,category;th setq(catnum,u(RET`CATNUM,%q<category>,%1))
- &VAL`CATEGORY`LIST u(csc)=@assert strlen(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: Category list empty!};@dolist/inline %0={@include u(csc)/VAL`CATEGORY=%i0,%1;th setq(catlist,trim(cat(%q<catlist>,%q<category>)));th setq(catnumlist,trim(cat(%q<catnumlist>,%q<catnum>)))}
- &VAL`TAG u(csc)=@assert strlen(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: Tag empty!};@include u(ccs)/INC`PARTIAL=%0,u(RET`TAGLIST,%1,|),|,v(VAR`MSGHEAD),tag,tag;th setq(tagnum,u(RET`TAGNUM,%q<tag>,%1))
- &VAL`TAG`LIST u(csc)=@assert strlen(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: Tag list empty!};@dolist/inline %0={@include u(csc)/VAL`TAG=%i0,%1;th setq(taglist,trim(cat(%q<taglist>,%q<tag>)));th setq(tagnumlist,trim(cat(%q<tagnumlist>,%q<tagnum>)))}
- &VAL`PARASTRING u(csc)=th setq(options,iter(lattr(u(csc)/VAL`PARA`*),last(%i0,`),%b,|));@dolist/inline/delimit , %2={@include u(ccs)/INC`PARTIAL=before(%i0,/),%q<options>,|,v(VAR`MSGHEAD),para,para;@include u(csc)/VAL`PARA`%q<para>=after(%i0,/)}
- &VAL`PARA`INFLICTS u(csc)=@include u(csc)/DB`SEARCH=elements(%0,1,/),E;@assert cor(not(strlen(elements(%0,2,/))),regmatchi(elements(%0,2,/),^(X|\\d+)$))=@include u(csc)/INC`PMSG=%#,{ERROR: Status Effect chance must be blank, an integer, or X.};@switch/inline t(strlen(elements(%0,2,/)))[t(isint(elements(%0,2,/)))]=11,{th setq(return,abs(trim(elements(%0,2,/))))},10,{th setq(return,trim(elements(%0,2,/)))},00,{th setq(return,)}
- &VAL`PARA`CLEARS u(csc)=@include u(csc)/VAL`TAG`LIST=elements(%0,1,/),E;@assert cor(not(strlen(elements(%0,2,/))),regmatchi(elements(%0,2,/),^(X|\\d+)$))=@include u(csc)/INC`PMSG=%#,{ERROR: Status Effect chance must be blank, an integer, or X.};@switch/inline t(strlen(elements(%0,2,/)))[t(isint(elements(%0,2,/)))]=11,{th setq(return,abs(trim(elements(%0,2,/))))},10,{th setq(return,trim(elements(%0,2,/)))},00,{th setq(return,)}
- &VAL`PARA`CANCELS u(csc)=@include u(csc)/VAL`PARA`CLEARS
- &VAL`PARA`ADOPTS u(csc)=@include u(csc)/VAL`PARA`INFLICTS
- &VAL`PARA`AOE u(csc)=@assert strlen(elements(%0,1,/))=@include u(csc)/INC`PMSG=%#,{ERROR: No AOE value entered.};@assert valnum(elements(%0,1,/))=@include u(csc)/INC`PMSG=%#,{ERROR: AOE must be a positive integer.};th setq(return,abs(trim(elements(%0,1,/))))
- &VAL`PARA`MPBUST u(csc)=@include u(csc)/VAL`PERSTRING=elements(%0,1,/),MPBUST
- &VAL`PARA`HPSIPHON u(csc)=@include u(csc)/VAL`PERSTRING=elements(%0,1,/),HPSIPHON
- &VAL`PARA`MPSIPHON u(csc)=@include u(csc)/VAL`PERSTRING=elements(%0,1,/),MPSIPHON
- &VAL`PARA`REVIVE u(csc)=@include u(csc)/VAL`PERSTRING=elements(%0,1,/),REVIVE
- &VAL`PARA`DAMAGE u(csc)=@include u(csc)/VAL`PERSTRING=elements(%0,1,/),DAMAGE
- &VAL`PARA`HPCOST u(csc)=@include u(csc)/VAL`PERSTRING=elements(%0,1,/),HPCOST
- &VAL`PARA`MPCOST u(csc)=@include u(csc)/VAL`PERSTRING=elements(%0,1,/),MPCOST
- &VAL`PERSTRING u(csc)=@assert cor(regmatchi(%0,^(\\d+(:\\d+)?)$),regmatchi(%0,^(\\d+p(:\\d+p)?)$))=@include u(csc)/INC`PMSG=%#,{ERROR: %1 Entry must be in <val>, <valP>, <min>:<max>, or <minP>:<maxP> format.};th setq(return,regeditalli(ucstr(trim(%0)),\\d+,abs($0)))
- &VAL`EFFPARA u(csc)=th setq(options,iter(lattr(u(csc)/VAL`EFFPARA`*),last(%i0,`),%b,|));@dolist/inline/delimit , %2={@include u(ccs)/INC`PARTIAL=before(%i0,/),%q<options>,|,v(VAR`MSGHEAD),para,para;@include u(csc)/VAL`EFFPARA`%q<para>=after(%i0,/)}
- &VAL`EFFPARA`STACKABLE u(csc)=@assert cor(not(strlen(%0)),regmatchi(%0,^(X|\\d+)$))=@include u(csc)/INC`PMSG=%#,{ERROR: Stackable must be blank, an integer, or X.};th setq(return,trim(%0))
- &VAL`EFFPARA`DURATION u(csc)=@assert cor(not(strlen(%0)),regmatchi(%0,^(X|\\d+)$))=@include u(csc)/INC`PMSG=%#,{ERROR: Duration must be blank, an integer, or X.};th setq(return,trim(%0))
- &VAL`EFFPARA`DOT u(csc)=@include u(csc)/VAL`PERSTRING=%0,DOT
- &VAL`EFFPARA`REGEN u(csc)=@include u(csc)/VAL`PERSTRING=%0,REGEN
- &VAL`EFFPARA`DRAIN u(csc)=@include u(csc)/VAL`PERSTRING=%0,DRAIN
- &VAL`EFFPARA`GAIN u(csc)=@include u(csc)/VAL`PERSTRING=%0,GAIN
- &VAL`EFFPARA`HPSIPHON u(csc)=@include u(csc)/VAL`PERSTRING=%0,HPSIPHON
- &VAL`EFFPARA`MPSIPHON u(csc)=@include u(csc)/VAL`PERSTRING=%0,MPSIPHON
- &VAL`EFFPARA`EVAMOD u(csc)=@include u(csc)/VAL`INTMOD=%0,EVAMOD
- &VAL`EFFPARA`ACCMOD u(csc)=@include u(csc)/VAL`INTMOD=%0,ACCMOD
- &VAL`EFFPARA`STATMOD u(csc)=@include u(csc)/VAL`STAT=elements(%0,1,/);@include u(csc)/VAL`INTMOD=elements(%0,2,/),EVAMOD
- &VAL`EFFPARA`ELERESMOD u(csc)=@include u(csc)/VAL`ELEMENT=elements(%0,1,/);@include u(csc)/VAL`INTMOD=elements(%0,2,/),EVAMOD
- &VAL`EFFPARA`ELEPOWMOD u(csc)=@include u(csc)/VAL`ELEMENT=elements(%0,1,/);@include u(csc)/VAL`INTMOD=elements(%0,2,/),EVAMOD
- &VAL`EFFPARA`COSTMOD u(csc)=@include u(csc)/VAL`INTMOD=%2,COSTMOD
- &VAL`EFFPARA`HEALMOD u(csc)=@include u(csc)/VAL`INTMOD=%2,HEALMOD
- &VAL`EFFPARA`FORMLOCK u(csc)=@include u(csc)/VAL`INTMOD=%2,FORMLOCK
- &VAL`EFFPARA`BACKLASH u(csc)=@include u(csc)/VAL`INTMOD=%2,BACKLASH
- &VAL`INTMOD u(csc)=@assert isint(%0)=@include u9csc)/INC`PMSG=%#,{ERROR: %1 Must be an integer.};th setq(return,trim(%0))
- @@ ****** ELEMENT SECTION
- &ELE`1 u(maindb)=Physical
- &ELE`1`COLOR u(maindb)=n
- &ELE`2 u(maindb)=Gun
- &ELE`2`COLOR u(maindb)=n
- &ELE`3 u(maindb)=Force
- &ELE`3`COLOR u(maindb)=g
- &ELE`4 u(maindb)=Fire
- &ELE`4`COLOR u(maindb)=hr
- &ELE`5 u(maindb)=Ice
- &ELE`5`COLOR u(maindb)=hc
- &ELE`6 u(maindb)=Elec
- &ELE`6`COLOR u(maindb)=hy
- &ELE`7 u(maindb)=Mind
- &ELE`7`COLOR u(maindb)=m
- &ELE`8 u(maindb)=Expel
- &ELE`8`COLOR u(maindb)=hm
- &ELE`9 u(maindb)=Death
- &ELE`9`COLOR u(maindb)=hx
- &ELE`10 u(maindb)=Almighty
- &ELE`10`COLOR u(maindb)=hw
- &ELE`11 u(maindb)=Heal
- &ELE`11`COLOR u(maindb)=hg
- @@ ******** STAT SECTION
- &STA`1 u(maindb)=PHY
- &STA`1`FULLNAME u(maindb)=Physical
- &STA`2 u(maindb)=END
- &STA`2`FULLNAME u(maindb)=Endurance
- &STA`3 u(maindb)=MAG
- &STA`3`FULLNAME u(maindb)=Magic
- &STA`4 u(maindb)=WIL
- &STA`4`FULLNAME u(maindb)=Willpower
- &STA`5 u(maindb)=AGI
- &STA`5`FULLNAME u(maindb)=Agility
- &STA`6 u(maindb)=LUK
- &STA`6`FULLNAME u(maindb)=Luck
- @@ ******** ATK TYPE SECTION
- &TYP`1 u(maindb)=Physical
- &TYP`1`ATK u(maindb)=1
- &TYP`1`DEF u(maindb)=2
- &TYP`1`ACC u(maindb)=5
- &TYP`1`EVA u(maindb)=5
- &TYP`2 u(maindb)=Magical
- &TYP`2`ATK u(maindb)=3
- &TYP`2`DEF u(maindb)=4
- &TYP`2`ACC u(maindb)=5
- &TYP`2`EVA u(maindb)=5
- &TYP`3 u(maindb)=Elemental
- &TYP`3`ATK u(maindb)=1 3
- &TYP`3`DEF u(maindb)=2 4
- &TYP`3`ACC u(maindb)=5
- &TYP`3`EVA u(maindb)=5
- &TYP`4 u(maindb)=Healing
- &TYP`4`ATK u(maindb)=3
- &TYP`4`DEF u(maindb)=
- &TYP`4`ACC u(maindb)=
- &TYP`4`EVA u(maindb)=
- &TYP`4`AUTOHIT u(maindb)=1
- &TYP`4`HEALING u(maindb)=1
- &TYP`5 u(maindb)=Crippling
- &TYP`5`ATK u(maindb)=
- &TYP`5`DEF u(maindb)=
- &TYP`5`ACC u(maindb)=5
- &TYP`5`EVA u(maindb)=5
- &TYP`5`NODAMAGE u(maindb)=1
- @@ ******** CLASS SECTION
- &CLA`1 u(maindb)=Human
- &CLA`2 u(maindb)=Demon
- &CLA`3 u(maindb)=Persona User
- &CLA`4 u(maindb)=Avatar Tuner
- &CLA`5 u(maindb)=Devil Summoner
- @@ ******** Data Retrieval
- &RET`FORMNAME u(csc)=switch(%0,u(maindb),default(u(maindb)/F`%1,Unknown Form),strfirstof(get(%0/D`CSYS`FORM`%1),Unset Form))
- &RET`FORMNAME`FORMAL u(csc)=Form %1: '[u(RET`FORMNAME,%0,%1)]'
- &RET`ATKNAME u(csc)=switch(%0,u(maindb),if(gt(%+,2),default(u(maindb)/F`%1`ATK`%2,Unknown Attack),default(u(maindb)/A`%1,Unknown Attack)),strfirstof(get(%0/D`CSYS`FORM`%1`ATK`%2),Unset Attack))
- &RET`ATKNAME`FORMAL u(csc)=Attack %1: '[if(gt(%+,2),u(RET`ATKNAME,%0,%1,%2),u(RET`ATKNAME,%0,%1))]'
- &RET`EFFNAME u(csc)=default(u(maindb)/E`%1,Unknown Effect)
- &RET`EFFNAME`FORMAL u(csc)=Effect %1: '[u(RET`EFFNAME,%0,%1)]'
- &RET`ELENAME u(csc)=localize(switch(isint(%0),1,if(strlen(get(u(maindb)/ELE`%0`COLOR)),ansi(get(u(maindb)/ELE`%0`COLOR),get(u(maindb)/ELE`%0)),get(u(maindb)/ELE`%0)),0,if(setr(elenum,u(RET`ELENUM,%0)),u(RET`ELENAME,%q<elenum>),*UNKNOWN*)))
- &RET`ELELIST u(csc)=iter(sortkey(#lambda/last(\%0,`),lattr(u(maindb)/ELE`*),n),get(u(maindb)/%i0),%b,strfirstof(%0,|))
- &RET`ELELIST`COLOR u(csc)=iter(sortkey(#lambda/last(\%0,`),lattr(u(maindb)/ELE`*),n),ansi(strfirstof(get(u(maindb)/%i0`COLOR),n),get(u(maindb)/%i0)),%b,strfirstof(%0,|))
- &RET`ELELISTNUM u(csc)=sort(iter(lattr(u(maindb)/ELE`*),last(%i0,`),%b,strfirstof(%0,|)),n,strfirstof(%0,|))
- &RET`ELENUM u(csc)=elements(filterbool(#lambda/strmatch(%0,get(u(maindb)/\%0)),lattr(u(maindb)/ELE`*)),2,`)
- &RET`TYPNAME u(csc)=localize(switch(isint(%0),1,if(strlen(get(u(maindb)/TYP`%0`COLOR)),ansi(get(u(maindb)/TYP`%0`COLOR),get(u(maindb)/TYP`%0)),get(u(maindb)/TYP`%0)),0,if(setr(typnum,u(RET`TYPNUM,%0)),u(RET`TYPNAME,%q<typnum>),*UNKNOWN*)))
- &RET`TYPLIST u(csc)=iter(sortkey(#lambda/last(\%0,`),lattr(u(maindb)/TYP`*),n),get(u(maindb)/%i0),%b,strfirstof(%0,|))
- &RET`TYPLISTNUM u(csc)=sort(iter(lattr(u(maindb)/TYP`*),last(%i0,`),%b,strfirstof(%0,|)),n,strfirstof(%0,|))
- &RET`TYPNUM u(csc)=elements(filterbool(#lambda/strmatch(%0,get(u(maindb)/\%0)),lattr(u(maindb)/TYP`*)),2,`)
- &RET`CLANAME u(csc)=localize(switch(isint(%0),1,if(strlen(get(u(maindb)/CLA`%0`COLOR)),ansi(get(u(maindb)/CLA`%0`COLOR),get(u(maindb)/CLA`%0)),get(u(maindb)/CLA`%0)),0,if(setr(clanum,u(RET`CLANUM,%0)),u(RET`CLANAME,%q<typnum>),*UNKNOWN*)))
- &RET`CLALIST u(csc)=iter(sortkey(#lambda/last(\%0,`),lattr(u(maindb)/CLA`*),n),get(u(maindb)/%i0),%b,strfirstof(%0,|))
- &RET`CLALISTNUM u(csc)=sort(iter(lattr(u(maindb)/CLA`*),last(%i0,`),%b,strfirstof(%0,|)),n,strfirstof(%0,|))
- &RET`CLANUM u(csc)=elements(filterbool(#lambda/strmatch(%0,get(u(maindb)/\%0)),lattr(u(maindb)/CLA`*)),2,`)
- &RET`CATNAME u(csc)=localize(switch(isint(%0),1,if(strlen(get(u(maindb)/CAT`%1`%0`COLOR)),ansi(get(u(maindb)/CAT`%1`%0`COLOR),get(u(maindb)/CAT`%1`%0)),get(u(maindb)/CAT`%1`%0)),0,if(setr(clanum,u(RET`CATNUM,%0,%1)),u(RET`CATNAME,%q<catnum>,%1),*UNKNOWN*)))
- &RET`CATLIST u(csc)=iter(sortkey(#lambda/last(\%0,`),lattr(u(maindb)/CAT`%0`*),n),get(u(maindb)/%i0),%b,strfirstof(%1,|))
- &RET`CATLISTNUM u(csc)=sort(iter(lattr(u(maindb)/CAT`%0`*),last(%i0,`),%b,strfirstof(%0,|)),n,strfirstof(%0,|))
- &RET`CATNUM u(csc)=elements(filterbool(#lambda/strmatch(%0,get(u(maindb)/\%0)),lattr(u(maindb)/CAT`%1`*)),3,`)
- &RET`TAGNAME u(csc)=localize(switch(isint(%0),1,if(strlen(get(u(maindb)/TAG`%1`%0`COLOR)),ansi(get(u(maindb)/TAG`%1`%0`COLOR),get(u(maindb)/TAG`%1`%0)),get(u(maindb)/TAG`%1`%0)),0,if(setr(clanum,u(RET`TAGNUM,%0,%1)),u(RET`TAGNAME,%q<tagnum>,%1),*UNKNOWN*)))
- &RET`TAGLIST u(csc)=iter(sortkey(#lambda/last(\%0,`),lattr(u(maindb)/TAG`%0`*),n),get(u(maindb)/%i0),%b,strfirstof(%1,|))
- &RET`TAGLISTNUM u(csc)=sort(iter(lattr(u(maindb)/TAG`%0`*),last(%i0,`),%b,strfirstof(%0,|)),n,strfirstof(%0,|))
- &RET`TAGNUM u(csc)=elements(filterbool(#lambda/strmatch(%0,get(u(maindb)/\%0)),lattr(u(maindb)/TAG`%1`*)),3,`)
- &RET`STATNAME u(csc)=localize(switch(isint(%0),1,if(strlen(get(u(maindb)/STA`%0`COLOR)),ansi(get(u(maindb)/STA`%0`COLOR),get(u(maindb)/STA`%0)),get(u(maindb)/STA`%0)),0,if(setr(statnum,u(RET`STATNUM,%0)),u(RET`STATNAME,%q<statnum>),*UNKNOWN*)))
- &RET`STATLIST u(csc)=iter(sortkey(#lambda/last(\%0,`),lattr(u(maindb)/STA`*),n),get(u(maindb)/%i0),%b,strfirstof(%0,|))
- &RET`STATLISTNUM u(csc)=sort(iter(lattr(u(maindb)/STA`*),last(%i0,`),%b,strfirstof(%0,|)),n,strfirstof(%0,|))
- &RET`STATNUM u(csc)=elements(filterbool(#lambda/strmatch(%0,get(u(maindb)/\%0)),lattr(u(maindb)/STA`*)),2,`)
- @@ ******** Data Setting
- &SET`FORM`NAME u(csc)=@include u(csc)/VAL`FORMNAME=%2;@switch/inline %0=u(maindb),{&F`%1 u(maindb)=%q<return>},{@include u(csc)/INC`PMSG=%#,setr(msg,Renamed [name(%0)]'s [u(RET`FORMNAME`FORMAL,%0,%1)] to: %q<return>);@include u(csc)/INC`AMSG=%q<msg>;@include u(csc)/INC`PMSG=%0,{Your [u(RET`FORMNAME`FORMAL,%0,%1)] was renamed to: %q<return>},%0;&D`CSYS`FORM`%1 %0=%q<return>;&D`CSYS`FORM`%1`ID %0=X}
- &SET`FORM`ID u(csc)=@switch/inline %0=u(maindb),{@include u(csc)/INC`PMSG=%#,setr(msg,Changed ID of [u(RET`FORMNAME`FORMAL,%0,%1)] to %2);@include u(csc)/INC`AMSG=%q<msg>;@wipe u(maindb)/F`%2;@include u(ccs)/INC`CPTREE=u(maindb),F`%1,u(maindb),F`%2},{@wipe %0/D`CSYS`FORM`%1;@include u(ccs)/INC`CPTREE=u(maindb),F`%1,%0,D`CSYS`FORM`%2;@include u(csc)/INC`PMSG=%#,setr(msg,name(%0) now has database form [u(RET`FORMNAME`FORMAL,u(maindb),%2)] in Form Slot %1);@include u(csc)/INC`AMSG=%q<msg>;@include u(csc)/INC`PMSG=%0,{New Form Obtained: [u(RET`FORMNAME`FORMAL,%0,%1)]}}
- &SET`FORM`STAT u(csc)=@include u(csc)/VAL`STAT=%2;@include u(csc)/VAL`STATNUM=%3;@switch/inline %0=u(maindb),{@include u(csc)/INC`PMSG=%#,setr(msg,Changed DB [u(RET`FORMNAME`FORMAL,%0,%1)]'s %q<stat> Stat to: %q<return>);@include u(csc)/INC`AMSG=%q<msg>;&F`%1`STAT`%q<statnum> %0=%q<return>},{@include u(csc)/INC`PMSG=%#,setr(msg,Changed [name(%0)]'s [u(RET`FORMNAME`FORMAL,%0,%1)]'s %q<stat> Stat to: %q<return>);@include u(csc)/INC`AMSG=%q<msg>;@include u(csc)/INC`PMSG=%0,{[u(RET`FORMNAME`FORMAL,%0,%1)] Stat %q<stat> Changed to: %q<return>};&D`CSYS`FORM`%1`STAT`%q<statnum> %0=%q<return>;&D`CSYS`FORM`%1`ID %0=X}
- &SET`FORM`CLASS u(csc)=@include u(csc)/VAL`CLASS=%2;@switch/inline %0=u(maindb),{@include u(csc)/INC`PMSG=%#,setr(msg,Changed DB [u(RET`FORMNAME`FORMAL,%0,%1)]'s Class to: %q<class>);@include u(csc)/INC`AMSG=%q<msg>;&F`%1`CLASS %0=%q<class>},{@include u(csc)/INC`PMSG=%#,setr(msg,Changed [name(%0)]'s [u(RET`FORMNAME`FORMAL,%0,%1)]'s Class to: %q<class>);@include u(csc)/INC`AMSG=%q<msg>;@include u(csc)/INC`PMSG=%0,{[u(RET`FORMNAME`FORMAL,%0,%1)] Class Changed to: %q<class>};&D`CSYS`FORM`%1`CLASS %0=%q<class>;&D`CSYS`FORM`%1`ID %0=X}
- &SET`FORM`ELELIKE u(csc)=@include u(csc)/VAL`ELEMENT`LIST=%2;@switch/inline %0=u(maindb),{@include u(csc)/INC`PMSG=%#,setr(msg,Changed DB [u(RET`FORMNAME`FORMAL,%0,%1)]'s Element %3 to: %q<elelist>);@include u(csc)/INC`AMSG=%q<msg>;&F`%1`%3 %0=%q<elenumlist>},{@include u(csc)/INC`PMSG=%#,setr(msg,Changed [name(%0)]'s [u(RET`FORMNAME`FORMAL,%0,%1)]'s Element %3 to: %q<elelist>);@include u(csc)/INC`AMSG=%q<msg>;@include u(csc)/INC`PMSG=%0,{[u(RET`FORMNAME`FORMAL,%0,%1)] Element %2 Changed to: %q<elelist>};&D`CSYS`FORM`%1`%2 %0=%q<elenumlist>;&D`CSYS`FORM`%1`ID %0=X}
- &SET`FORM`ATK`ID u(csc)=@switch/inline %0=u(maindb),{@include u(csc)/INC`PMSG=%#,setr(msg,Changed DB ID of [u(RET`FORMNAME`FORMAL,%0,%1)]'s ATK %2 to %3);@include u(csc)/INC`AMSG=%q<msg>;@wipe u(maindb)/F`%2`ATK`%3;@include u(ccs)/INC`CPTREE=u(maindb),F`%1`ATK`%2,u(maindb),F`%1`ATK`%3},{@wipe %0/D`CSYS`FORM`%1`ATK`%3;@include u(ccs)/INC`CPTREE=u(maindb),A`%3,%0,D`CSYS`FORM`%1`ATK`%2;@include u(csc)/INC`PMSG=%#,setr(msg,name(%0)'s [u(RET`FORMNAME`FORMAL,u(maindb),%2)] now has [u(RET`ATKNAME`FORMAL,u(maindb),%3)] in Slot %2);@include u(csc)/INC`AMSG=%q<msg>;@include u(csc)/INC`PMSG=%0,{[u(RET`FORMNAME`FORMAL,%0,%1)] now has [u(RET`ATKNAME`FORMAL,%0,%1,%2)]}}
- &SET`FORM`ATK`STRING u(csc)=@include u(csc)/VAL`ATKSTRING=%3;@switch/inline %0=u(maindb),{@include u(csc)/INC`PMSG=%#,setr(msg,Changed DB [u(RET`FORMNAME`FORMAL,%0,%1)]'s ATK [u(RET`ATKNAME`FORMAL,u(maindb),%1,%2)] to: %3);@include u(csc)/INC`AMSG=%q<msg>;@include u(csc)/SET`ATK=u(maindb),F`%1`ATK`%2,%q<atkname>,%q<atktype>,%q<atkele>,%q<atkpower>,%q<atkacc>},{@include u(csc)/SET`ATK=%0,D`CSYS`FORM`%1`ATK`%2,%q<atkname>,%q<atktype>,%q<atkele>,%q<atkpower>,%q<atkacc>;@include u(csc)/INC`PMSG=%#,setr(msg,name(%0)'s [u(RET`FORMNAME`FORMAL,%0,%1)] now has [u(RET`ATKNAME`FORMAL,%0,%1,%2)]);@include u(csc)/INC`AMSG=%q<msg>;@include u(csc)/INC`PMSG=%0,{[u(RET`FORMNAME`FORMAL,%0,%1)] now has [u(RET`ATKNAME`FORMAL,%0,%1,%2)]}}
- &SET`ATK`ID u(csc)=@include u(csc)/INC`PMSG=%#,setr(msg,Changed ID of [u(RET`ATKNAME`FORMAL,%0,%1)]' to %2);@include u(csc)/INC`AMSG=%q<msg>;@wipe %0/A`%2;@include u(ccs)/INC`MVTREE=%0,A`%1,%0,A`%2
- &SET`ATK`STRING u(csc)=@include u(csc)/VAL`ATKSTRING=%2;@include u(csc)/INC`PMSG=%#,setr(msg,Changed DB [u(RET`ATKNAME`FORMAL,%0,%1)] to: %2);@include u(csc)/INC`AMSG=%q<msg>;@include u(csc)/SET`ATK=u(maindb),A`%1,%q<atkname>,%q<atktype>,%q<atkele>,%q<atkpower>,%q<atkacc>
- &SET`ATK u(csc)=@wipe %0/%1;&%1 %0=%2;&%1`TYPE %0=%3;&%1`ELEMENT %0=%4;&%1`POWER %0=%5;&%1`ACCURACY %0=%6
- &SET`FORM`ATK`PARA u(csc)=@include u(csc)/VAL`PARASTRING=%3;@switch/inline %0=u(maindb),{@include u(csc)/INC`PMSG=%#,setr(msg,Changed DB [u(RET`FORMNAME`FORMAL,%0,%1)]'s ATK [u(RET`ATKNAME`FORMAL,u(maindb),%1,%2)] PARAMETERS to: %3);@include u(csc)/INC`AMSG=%q<msg>;@include u(csc)/SET`PARA=u(maindb),F`%1`ATK`%2,%3},{@include u(csc)/SET`PARA=%0,D`CSYS`FORM`%1`ATK`%2,%3;@include u(csc)/INC`PMSG=%#,setr(msg,name(%0)'s [u(RET`FORMNAME`FORMAL,%0,%1)] now has [u(RET`ATKNAME`FORMAL,%0,%1,%2)]);@include u(csc)/INC`AMSG=%q<msg>;@include u(csc)/INC`PMSG=%0,{[u(RET`FORMNAME`FORMAL,%0,%1)] now has [u(RET`ATKNAME`FORMAL,%0,%1,%2)]}}
- &SET`ATK`PARA u(csc)=@include u(csc)/VAL`PARASTRING=%2;@include u(csc)/INC`PMSG=%#,setr(msg,Changed DB [u(RET`ATKNAME`FORMAL,%0,%1)] PARAMETERS to: %2);@include u(csc)/INC`AMSG=%q<msg>;@include u(csc)/SET`PARA=u(maindb),A`%1,%2
- &SET`PARA u(csc)=@dolist/inline INFLICTS CLEARS ADOPTS CANCELS AOE MPBUST HPSIPHON MPSIPHON REVIVE DAMAGE HPCOST MPCOST={@wipe %0/%1`%i0};th setq(options,iter(lattr(u(csc)/SET`PARA`DO`*),last(%i0,`),%b,|));@dolist/inline/delimit , %2={@include u(ccs)/INC`PARTIAL=before(%i0,/),%q<options>,|,v(VAR`MSGHEAD),para,para;@include u(csc)/SET`PARA`DO`%q<para>=%0,%1,after(%i0,/)}
- &SET`PARA`DO`INFLICTS u(csc)=@include u(csc)/VAL`PARA`INFLICTS=%2;&%1`INFLICTS`%q<id> %0=%q<return>
- &SET`PARA`DO`ADOPTS u(csc)=@include u(csc)/VAL`PARA`ADOPTS=%2;&%1`ADOPTS`%q<id> %0=%q<return>
- &SET`PARA`DO`CLEARS u(csc)=@include u(csc)/VAL`PARA`CLEARS=%2;&%1`CLEARS %0=%q<tagnumlist>;&%1`CLEARS`CHANCE %0=%q<return>
- &SET`PARA`DO`CANCELS u(csc)=@include u(csc)/VAL`PARA`CANCELS=%2;&%1`CANCELS %0=%q<tagnumlist>;&%1`CANCELS`CHANCE %0=%q<return>
- &SET`PARA`DO`AOE u(csc)=@include u(csc)/VAL`PARA`AOE=%2;&%1`AOE %0=%q<return>
- &SET`PARA`DO`MPBUST u(csc)=@include u(csc)/VAL`PARA`MPBUST=%2;&%1`MPBUST %0=%q<return>
- &SET`PARA`DO`HPSIPHON u(csc)=@include u(csc)/VAL`PARA`HPSIPHON=%2;&%1`HPSIPHON %0=%q<return>
- &SET`PARA`DO`MPSIPHON u(csc)=@include u(csc)/VAL`PARA`MPSIPHON=%2;&%1`MPSIPHON %0=%q<return>
- &SET`PARA`DO`REVIVE u(csc)=@include u(csc)/VAL`PARA`REVIVE=%2;&%1`REVIVE %0=%q<return>
- &SET`PARA`DO`DAMAGE u(csc)=@include u(csc)/VAL`PARA`DAMAGE=%2;&%1`DAMAGE %0=%q<return>
- &SET`PARA`DO`HPCOST u(csc)=@include u(csc)/VAL`PARA`HPCOST=%2;&%1`HPCOST %0=%q<return>
- &SET`PARA`DO`MPCOST u(csc)=@include u(csc)/VAL`PARA`MPCOST=%2;&%1`MPCOST %0=%q<return>
- &SET`EFF`PARA u(csc)=@dolist/inline STACKABLE DURATION DOT REGEN DRAIN GAIN HPSIPHON MPSIPHON EVAMOD ACCMOD STATMOD ELERESMOD ELEPOWMOD={@wipe %0/%1`%i0};th setq(options,iter(lattr(u(csc)/SET`EFF`PARA`DO`*),last(%i0,`),%b,|));@dolist/inline/delimit , %3={@include u(ccs)/INC`PARTIAL=before(%i0,/),%q<options>,|,v(VAR`MSGHEAD),para,para;@include u(csc)/SET`EFF`PARA`DO`%q<para>=%0,%1,after(%i0,/)}
- &SET`EFF`PARA`DO`STACKABLE u(csc)=@include u(csc)/VAL`EFFPARA`STACKABLE=%2;&%1`STACKABLE %0=%q<return>
- &SET`EFF`PARA`DO`DURATION u(csc)=@include u(csc)/VAL`EFFPARA`DURATION=%2;&%1`DURATION %0=%q<return>
- &SET`EFF`PARA`DO`DOT u(csc)=@include u(csc)/VAL`EFFPARA`DOT=%2;&%1`DOT %0=%q<return>
- &SET`EFF`PARA`DO`REGEN u(csc)=@include u(csc)/VAL`EFFPARA`REGEN=%2;&%1`REGEN %0=%q<return>
- &SET`EFF`PARA`DO`DRAIN u(csc)=@include u(csc)/VAL`EFFPARA`DRAIN=%2;&%1`DRAIN %0=%q<return>
- &SET`EFF`PARA`DO`GAIN u(csc)=@include u(csc)/VAL`EFFPARA`GAIN=%2;&%1`GAIN %0=%q<return>
- &SET`EFF`PARA`DO`HPSIPHON u(csc)=@include u(csc)/VAL`PARA`HPSIPHON=%2;&%1`HPSIPHON %0=%q<return>
- &SET`EFF`PARA`DO`MPSIPHON u(csc)=@include u(csc)/VAL`PARA`MPSIPHON=%2;&%1`MPSIPHON %0=%q<return>
- &SET`EFF`PARA`DO`EVAMOD u(csc)=@include u(csc)/VAL`PARA`EVAMOD=%2;&%1`MPSIPHON %0=%q<return>
- &SET`EFF`PARA`DO`ACCMOD u(csc)=@include u(csc)/VAL`PARA`ACCMOD=%2;&%1`MPSIPHON %0=%q<return>
- &SET`EFF`PARA`DO`STATMOD u(csc)=@include u(csc)/VAL`PARA`STATMOD=%2;&%1`STATMOD`%q<statnum> %0=%q<return>
- &SET`EFF`PARA`DO`ELERESMOD u(csc)=@include u(csc)/VAL`PARA`ELERESMOD=%2;&%1`ELERESMOD`%q<elenum> %0=%q<return>
- &SET`EFF`PARA`DO`ELEPOWMOD u(csc)=@include u(csc)/VAL`PARA`ELEPOWMOD=%2;&%1`ELEPOWMOD`%q<elenum> %0=%q<return>
- &SET`EFF`PARA`DO`COSTMOD u(csc)=@include u(csc)/VAL`PARA`MPSIPHON=%2;&%1`COSTMOD %0=%q<return>
- &SET`EFF`PARA`DO`HEALMOD u(csc)=@include u(csc)/VAL`PARA`MPSIPHON=%2;&%1`HEALMOD %0=%q<return>
- &SET`EFF`PARA`DO`FORMLOCK u(csc)=@include u(csc)/VAL`PARA`FORMLOCK=%2;&%1`FORMLOCK %0=%q<return>
- &SET`EFF`PARA`DO`BACKLASH u(csc)=@include u(csc)/VAL`PARA`BACKLASH=%2;&%1`BACKLASH %0=%q<return>
- @@ ******** Messaging
- &INC`AMSG u(csc)=@nscemit/noisy u(CMO`STAFFREP)=ansi(h,\[[name(firstof(%1,%#))]\]) %0
- &INC`PMSG u(csc)=@nspemit %0=msghead(v(VAR`MSGHEAD)) %1
- @@ ******** Character Editor
- &CMD`+SELECT u(csc)=$^\+select(?\: +(.+?))?(?\:=(.*))?$:@include u(ccs)/INC`CHECKPC=%1,1,v(VAR`MSGHEAD);@include u(csc)/VAL`FORMSLOT=%2;&D`SELECT %#=%q<t1objid> %2 [secs()];@nspemit %#=announce(v(VAR`MSGHEAD)) You are now managing %q<t1name>'s Form %2: '[default(%q<t1>/D`CSYS`FORM`%2,Unset Form)]'
- @set u(csc)/CMD`+SELECT=regexp
- &CMD`+SET u(csc)=$^\+(add|set|rem)(\S+)(?\: +(.*))?$:@assert hasattrval(%#/D`SELECT)=@include u(csc)/INC`PMSG=%#,{ERROR: You are not managing anyone's forms!};@assert isobjid(setr(target,elements(setr(select,get(%#/D`SELECT)),1)))=@include u(csc)/INC`PMSG=%#,{ERROR: Your selection is invalid. This could happen if the character was nuked?};@break gte(sub(secs(),last(elements(%q<select>,3))),mul(60,60))=@include u(csc)/INC`PMSG=%#,{ERROR: Selection has timed out. Please Choose again with +select!};@include u(ccs)/INC`CHECKPC=%q<target>,1,v(VAR`MSGHEAD);th setq(form,elements(%q<select>,2));@include u(ccs)/INC`PARTIAL=%2,v(VAR`SET`%1),|,v(VAR`MSGHEAD),option,option;@include/nobreak u(csc)/CHAR`%1`%q<option>=trim(%3);&D`SELECT %#=elements(%q<select>,1 2) [secs()]
- @set u(csc)/CMD`+SET=regexp
- &VAR`SET`ADD u(csc)=TRAIT
- &VAR`SET`SET u(csc)=NAME|ID|STAT|ATK|PARA|CLASS|WEAK|RESIST|NULL
- &VAR`SET`REM u(csc)=FORM|ATK|TRAIT
- &CHAR`SET`NAME u(csc)=@include u(csc)/SET`FORM`NAME=%q<t1>,%q<form>,%0
- &CHAR`SET`ID u(csc)=@assert strlen(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: What form will you link?};@include u(csc)/DB`SEARCH=%0,F,,1;@switch/inline t(nattr(%q<t1>/D`CSYS`FORM`%q<form>`**))=1,{@include u(ccs)/INC`VERIFY={[ansi(hr,WARNING:)] This will copy the form from the database to %q<t1name>'s slot [u(RET`FORMNAME`FORMAL,%q<t1>,%q<form>)], overwriting it. Is this okay? Enter the same command again within ten seconds to verify!},CSYS SET ID %q<t1> %q<form> %0,v(VAR`MSGHEAD)};@include u(csc)/SET`FORM`ID=%q<t1>,%q<form>,%q<id>
- &CHAR`SET`STAT u(csc)=@include u(csc)/SET`FORM`STAT=%q<t1>,%q<form>,before(%0,=),after(%0,=)
- &CHAR`SET`CLASS u(csc)=@include u(csc)/SET`FORM`CLASS=%q<t1>,%q<form>,%0
- &CHAR`SET`ATK u(csc)=@include u(csc)/VAL`ATKSLOT=before(%0,=);@switch/inline words(after(%0,=),/)=1,{@include u(csc)/DB`SEARCH=before(%0,/),A,,1;@include u(csc)/SET`FORM`ATK`ID=%q<t1>,%q<form>,%q<slot>,%q<id>},{@include u(csc)/SET`FORM`ATK`STRING=%q<t1>,%q<form>,%q<slot>,after(%0,=)}
- &CHAR`SET`PARA u(csc)=@include u(csc)/VAL`ATKSLOT=before(%0,=);@include u(csc)/SET`FORM`PARA=%q<t1>,%q<form>,%q<slot>,after(%0,=)
- &CHAR`SET`WEAK u(csc)=@include u(csc)/SET`FORM`ELELIKE=%q<t1>,%q<form>,%0,WEAK
- &CHAR`SET`RESIST u(csc)=@include u(csc)/SET`FORM`ELELIKE=%q<t1>,%q<form>,%0,RESIST
- &CHAR`SET`NULL u(csc)=@include u(csc)/SET`FORM`ELELIKE=%q<t1>,%q<form>,%0,NULL
- @@ ******* CSYS EDIT
- &CMD`+CSYSEDIT u(csc)=$^\+(eff|atk|def|frm|tra)(?\:/(\S+)?)?(?\: +(.+?))?$:@include u(ccs)/INC`PARTIAL=%2,setunion(get(u(csc)/VAR`%1`PLAYFLAGS),if(isadmin(%#),get(u(csc)/VAR`%1`ADMINFLAGS)),|,|),|,%1,switch,switch;@include u(csc)/[ucstr(%1)]`[strfirstof(%q<switch>,MAIN)]=before(%3,=),after(%3,=),%3,switch(%1,EFF,Effect,ATK,Attack,DEF,Defense,FRM,Form,CHAR,Character,TRA,Trait),switch(%1,EFF,E,ATK,A,DEF,D,FRM,F,CHAR,C,TRA,T),switch(%1,ATK,ATK,EFF,EFF,DEF,DEF,FRM,FRM,TRA,TRA)
- @set u(csc)/CMD`+CSYSEDIT=regexp
- @@ %0 - lsargs, %1 - rsargs, %2 - args, %3 - mode name, %4 - mode attribute root, %5 - code root
- &VAR`ATK`ADMINFLAGS u(csc)=SET|RENAME|PARA|WIPE|UPDATE|CATEGORY|MAKECATEGORY|RENCATEGORY|DELCATEGORY|DESC|SEARCH|CATDESC|MAKETAG|RENTAG|DELTAG|TAGDESC|TAGS|ADDTAG
- &VAR`EFF`ADMINFLAGS u(csc)=ADD|PARA|WIPE|UPDATE|CATEGORY|MAKECATEGORY|RENCATEGORY|DELCATEGORY|DESC|SEARCH|CATDESC|MAKETAG|RENTAG|DELTAG|TAGDESC|TAGS|ADDTAG
- &VAR`TRA`ADMINFLAGS u(csc)=ADD|SET|WIPE|CATEGORY|MAKECATEGORY|RENCATEGORY|DELCATEGORY|DESC|SEARCH|CATDESC|MAKETAG|RENTAG|DELTAG|TAGDESC|TAGS|ADDTAG
- &VAR`FRM`ADMINFLAGS u(csc)=ADD|SET|WIPE|UPDATE|CATEGORY|MAKECATEGORY|RENCATEGORY|DELCATEGORY|DESC|SEARCH|CATDESC|MAKETAG|RENTAG|DELTAG|TAGDESC|TAGS|ADDTAG
- &VAR`DEF`ADMINFLAGS u(csc)=SET|PARA|WIPE|UPDATE|CATEGORY|MAKECATEGORY|RENCATEGORY|DELCATEGORY|DESC|SEARCH|CATDESC|MAKETAG|RENTAG|DELTAG|TAGDESC|TAGS|ADDTAG
- &DB`SEARCH u(csc)=@assert strlen(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: Nothing entered to search for.};@switch/inline t(%2)[valnum(%0)]=00,{@assert words(setr(results,if(%3,wildgrepi(u(maindb),%1`*,%0*),filterbool(#lambda/strmatch(%0,get(u(maindb)/%1`\%0)),lattr(u(maindb)/%1`*)))))=@include u(csc)/INC`PMSG=%#,{ERROR: '%0' did not match anything.};@break gt(%q<results>,1)=@include u(csc)/INC`PMSG=%#,{ERROR: '%0' matched multiple items: [itemize(iter(%q<results>,last(%i0,`) '[get(u(maindb)/%i0)]',%b,|),|,and,\,)];th setq(id,last(%q<results>,`))}},01,{@assert hasattr(u(maindb),%1`%0)=@include u(csc)/INC`PMSG=%#,{ERROR: No entry for ID '%0'};th setq(id,%0)},10,{th setq(results,if(%3,wildgrepi(u(maindb),%1`*,%0*),filterbool(#lambda/strmatch(%0,get(u(maindb)/\%0)),lattr(u(maindb)/%1`*))))},11,{@switch/inline hasattr(u(maindb),%1`%0)=1,{th setq(id,%0),0,{th setq(id,%0,notfound,1)}}},{@break 1=@include u(csc)/INC`PMSG=%#,{ERROR: Entered text was not recognized.}}
- &DBFUN`CATSEARCH u(csc)=sortkey(#lambda/abs(last(\%0,`)),iter(regrepi(u(maindb),%0`*`CATEGORY,\\b%1\\b),elements(%i0,2,`)),n)
- &DBFUN`TAGSEARCH u(csc)=sortkey(#lambda/abs(last(\%0,`)),iter(regrepi(u(maindb),%0`*`TAGS,\\b%1\\b),elements(%i0,2,`)),n)
- &DBFUN`UNCATSEARCH u(csc)=sortkey(#lambda/abs(last(\%0,`)),filterbool(#lambda/not(words(get(u(maindb)/\%0`CATEGORY))),lattr(u(maindb)/%0`*)),n)
- @@ ****** Category section
- &CAT`MAKE u(csc)=@assert strlen(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: Category name field is empty.};@assert regmatchi(%0,^(\\w+)$)=@include u(csc)/INC`PMSG=%#,{ERROR: Category names must be simple words.};@break strmatch(%0,None)=@include u(csc)/INC`PMSG=%#,{ERROR: 'None' is not an acceptable category name.};@include u(csc)/DB`SEARCH=%0,CAT`%4,1;@break strlen(%q<results>)=@include u(csc)/INC`PMSG=%#,{ERROR: Category names must be unique.};&[setr(newcat,CAT`%4`[nextslot(u(maindb),CAT`%4)])] u(maindb)=%0;@include u(csc)/INC`PMSG=%#,{%3 Category '%0' Created!};@include u(csc)/INC`AMSG={%3 Category '%0' Created}
- &CAT`RENAME u(csc)=@include u(csc)/VAL`CATEGORY=%0,%4;@assert strlen(%1)=@include u(csc)/INC`PMSG=%#,{ERROR: New name field empty.};@assert regmatchi(%1,^(\\w+)$)=@include u(csc)/INC`PMSG=%#,{ERROR: Category names must be simple words.};@break strmatch(%1,None)=@include u(csc)/INC`PMSG=%#,{ERROR: 'None' is not an acceptable category name.};@include u(csc)/DB`SEARCH=%1,CAT`%4,1;@break strlen(%q<results>)=@include u(csc)/INC`PMSG=%#,{ERROR: Category names must be unique.};&CAT`%4`%q<catnum> u(maindb)=%1;@include u(csc)/INC`PMSG=%#,{%3 Category '%q<category>' Renamed to: %1};@include u(csc)/INC`AMSG={%3 Category '%q<category>' Renamed to: %1}
- &CAT`DEL u(csc)=@include u(csc)/VAL`CATEGORY=%0,%4;@include u(ccs)/INC`VERIFY={ansi(hr,WARNING:) This will Delete %3 Category %q<category>. Any %3s depending on it will become uncategorized. Are you sure? Enter the same command again to verify!},%3 DELETE %q<category>,v(VAR`MSGHEAD);@wipe u(maindb)/CAT`%4`%q<catnum>;@switch/inline setr(count,words(setr(itmlist,u(DBFUN`CATSEARCH,%4,%q<catnum>))))=>0,{@dolist/inline %q<itmlist>={&%4`%i0`CATEGORY u(maindb)=setdiff(get(u(maindb)/%i0),%q<catnum>)}};@include u(csc)/INC`PMSG=%#,{%3 Category %q<category> deleted![if(%q<count>,%b%q<count> %3s were unlinked.)]};@include u(csc)/INC`AMSG={%3 Category %q<category> deleted![if(%q<count>,%b%q<count> %3s were unlinked.)]},%#
- &CAT`DESC u(csc)=@include u(csc)/VAL`CATEGORY=%0,%4;@assert strlen(%1)=@include u(csc)/INC`PMSG=%#,{ERROR: New Description field empty.};&CAT`%4`%q<catnum>`DESC u(maindb)=%1;@include u(csc)/INC`PMSG=%#,{%3 Category '%q<category>' Description changed to: %1};@include u(csc)/INC`AMSG={%3 Category '%q<category>' Description changed to: %1}
- &CAT`LIST u(csc)=@nspemit %#=u(RFN`HEADER,%3 Database: Categories);@nspemit %#=align(4 13 40 10,ID,NAME,DESC,COUNT);@dolist/inline sortkey(#lambda/last(\%0,`),lattr(u(maindb)/CAT`%4`*))={@nspemit %#=align(4 13 40 5,pueblize(last(%i0,`),setr(pueblo,+%5 [get(u(maindb)/%i0)])),pueblize(get(u(maindb)/%i0),%q<pueblo>),get(u(maindb)/%i0`DESC),setr(count,words(setr(list,u(DBFUN`CATSEARCH,%4,last(%i0,`))))));th setq(total,add(%q<total>,%q<count>));th setq(tlist,setunion(%q<tlist>,%q<list>))};@nspemit %#=align(4 13 40 5,pueblize(???,setr(pueblo,+%5 Uncategorized)),pueblize(Uncategorized,%q<pueblo>),For all entries without a category.,setr(count,words(setr(list,filterbool(#lambda/not(strlen(get(u(maindb)/\%0`CATEGORY))),lattr(u(maindb)/%4`*))))));th setq(total,add(%q<total>,%q<count>));th setq(tlist,setunion(%q<tlist>,%q<list>));@nspemit %#=u(RFN`HEADER,Total %3 Entries: %q<total> ([words(%q<tlist>)] Unique))
- @@ ****** Tag section
- &TAG`MAKE u(csc)=@assert strlen(%0)=@include u(csc)/INC`PMSG=%#,{ERROR: Tag name field is empty.};@assert regmatchi(%0,^(\\w+)$)=@include u(csc)/INC`PMSG=%#,{ERROR: Tag names must be simple words.};@break strmatch(%0,None)=@include u(csc)/INC`PMSG=%#,{ERROR: 'None' is not an acceptable Tag name.};@include u(csc)/DB`SEARCH=%0,TAG`%4,1;@break strlen(%q<results>)=@include u(csc)/INC`PMSG=%#,{ERROR: Tag names must be unique.};&[setr(newtag,TAG`%4`[nextslot(u(maindb),TAG`%4)])] u(maindb)=%0;@include u(csc)/INC`PMSG=%#,{%3 Tag '%0' Created!};@include u(csc)/INC`AMSG={%3 Tag '%0' Created}
- &TAG`RENAME u(csc)=@include u(csc)/VAL`TAG=%0,%4;@assert strlen(%1)=@include u(csc)/INC`PMSG=%#,{ERROR: New name field empty.};@assert regmatchi(%1,^(\\w+)$)=@include u(csc)/INC`PMSG=%#,{ERROR: Tag names must be simple words.};@break strmatch(%1,None)=@include u(csc)/INC`PMSG=%#,{ERROR: 'None' is not an acceptable Tag name.};@include u(csc)/DB`SEARCH=%1,TAG`%4,1;@break strlen(%q<results>)=@include u(csc)/INC`PMSG=%#,{ERROR: Tag names must be unique.};&TAG`%4`%q<tagnum> u(maindb)=%1;@include u(csc)/INC`PMSG=%#,{%3 Tag '%q<tag>' Renamed to: %1};@include u(csc)/INC`AMSG={%3 Tag '%q<tag>' Renamed to: %1}
- &TAG`DEL u(csc)=@include u(csc)/VAL`TAG=%0,%4;@include u(ccs)/INC`VERIFY={ansi(hr,WARNING:) This will Delete %3 Tag %q<tag>. Any %3s depending on it will become untagged. Are you sure? Enter the same command again to verify!},%3 DELETE %q<tag>,v(VAR`MSGHEAD);@wipe u(maindb)/TAG`%4`%q<tagnum>;@switch/inline setr(count,words(setr(itmlist,u(DBFUN`TAGSEARCH,%4,%q<tagnum>))))=>0,{@dolist/inline %q<itmlist>={&%4`%i0`TAG u(maindb)=setdiff(get(u(maindb)/%i0),%q<tagnum>)}};@include u(csc)/INC`PMSG=%#,{%3 Tag %q<tag> deleted![if(%q<count>,%b%q<count> %3s were unlinked.)]};@include u(csc)/INC`AMSG={%3 Tag %q<tag> deleted![if(%q<count>,%b%q<count> %3s were unlinked.)]},%#
- &TAG`DESC u(csc)=@include u(csc)/VAL`TAG=%0,%4;@assert strlen(%1)=@include u(csc)/INC`PMSG=%#,{ERROR: New Description field empty.};&TAG`%4`%q<tagnum>`DESC u(maindb)=%1;@include u(csc)/INC`PMSG=%#,{%3 Tag '%q<tag>' Description changed to: %1};@include u(csc)/INC`AMSG={%3 Tag '%q<tag>' Description changed to: %1}
- &TAG`LIST u(csc)=@nspemit %#=u(RFN`HEADER,%3 Database: Tags);@nspemit %#=align(4 13 40 10,ID,NAME,DESC,COUNT);@dolist/inline sortkey(#lambda/last(\%0,`),lattr(u(maindb)/TAG`%4`*))={@nspemit %#=align(4 13 40 5,pueblize(last(%i0,`),setr(pueblo,+%5/tags [get(u(maindb)/%i0)])),pueblize(get(u(maindb)/%i0),%q<pueblo>),get(u(maindb)/%i0`DESC),setr(count1,words(setr(list1,u(DBFUN`TAGSEARCH,%4,last(%i0,`))))));th setq(total1,add(%q<total1>,%q<count1>));th setq(alist1,setunion(%q<alist1>,%q<list1>))};th setq(total1,add(%q<total1>,%q<count1>));th setq(tlist1,setunion(%q<tlist1>,%q<list1>));@nspemit %#=u(RFN`HEADER,Total %3 Tag Entries: %q<total1> ([words(%q<alist1>)] Unique))
- @@ ******* Item Section
- &ITM`ADD u(csc)=
- &ITM`RENAME u(csc)=@include u(csc)/DB`SEARCH=%0,%4;@assert strlen(%1)=@include u(csc)/INC`PMSG=%#,{};
- &ITM`WIPE u(csc)=@include u(csc)/DB`SEARCH=%0,%4;
- &ITM`CATEGORY u(csc)=@include u(csc)/DB`SEARCH=%0,%4;@assert strlen(%1)=@include u(csc)/INC`PMSG=%#,{ERROR: No categories entered to assign!};@include u(csc)/VAL`CATEGORY`LIST=%1,%4;&%4`%q<id>`CATEGORY u(maindb)=%q<catnumlist>
- &ITM`DESC u(csc)=@include u(csc)/DB`SEARCH=%0,%4;@assert strlen(%1)=@include u(csc)/INC`PMSG=%#,{ERROR: Description field empty.};&%4`%q<id> u(maindb)=%1;@include u(csc)/INC`PMSG=%#,{You set DB [u(RET`%5NAME`FORMAL)]'s Description to: %1};@include u(csc)/INC`AMSG={DB [u(RET`%5NAME`FORMAL)]'s Description set to: %1},%#
- &ITM`TAG u(csc)=@include u(csc)/DB`SEARCH=%0,%4;@assert strlen(%1)=@include u(csc)/INC`PMSG=%#,{ERROR: No Tags entered to assign!};@include u(csc)/VAL`TAG`LIST=%1,%4;&%4`%q<id>`TAGS u(maindb)=%q<tagnumlist>
- @@ ******* ATTACK SECTION
- &ATK`MAIN u(csc)=@switch/inline t(strlen(%0))[valnum(%0)]=11,{@include u(csc)/%5`MAIN`ITEM},0*,{@include u(csc)/%5`MAIN`CATLIST},10,{@include u(csc)/%5`MAIN`CATEGORY}
- &ATK`MAIN`CATLIST u(csc)=@include u(csc)/CAT`LIST
- &ATK`MAIN`UNCATEGORIZED u(csc)=@nspemit %#=u(RFN`HEADER,%3 Database: Uncategorized Entries);@nspemit %#=align(4 12 8 3 3 3 10,ID,NAME,ELE,POW,ACC,STA,DESC);@include u(csc)/%5`CASCADE=%0,%1,%2,%3,%4,%5,u(DBFUN`UNCATSEARCH,%4);@nspemit %#=u(RFN`HEADER)
- &ATK`MAIN`ITEM u(csc)=@include u(csc)/DB`SEARCH=%0,%4;@nspemit %#=u(RFN`HEADER,u(RET`ATKNAME`FORMAL,u(maindb),%q<id>));@nspemit %#=align(21 13,iter(ELEMENT TYPE POWER ACCURACY,align(>10 10,%i0:,switch(%i0,ELEMENT,iter(get(u(maindb)/%4`%q<id>`ELEMENT),u(RET`ELENAME,%i0)),TYPE,u(RET`TYPNAME,get(u(maindb)/%4`%q<id>`TYPE)),get(u(maindb)/%4`%q<id>`%i0))),%b,%r),);@switch/inline t(strlen(setr(effects,align(36 36,u(ATK`FUN`STATUSCOLADM,u(maindb),%4`%q<id>,INFLICTS),u(ATK`FUN`STATUSCOLADM,u(maindb),%4`%q<id>,ADOPTS)))))=1,{@nspemit %#=%R[align(36 36,INFLICTS,ADOPTS)];@nspemit %#=%q<effects>};@switch/inline t(strlen(setr(effects,align(36 36,u(ATK`FUN`STATUSCOLADM2,u(maindb),%4`%q<id>,CLEARS),u(ATK`FUN`STATUSCOLADM2,u(maindb),%4`%q<id>,CANCELS)))))=1,{@nspemit %#=%R[align(36 36,CLEARS,CANCELS)];@nspemit %#=%q<effects>};@nspemit %#=u(RFN`HEADER)
- &ATK`FUN`STATUSCOLADM u(csc)=trim(iter(sortkey(#lambda/last(\%0,`),lattr(%0/%1`%2`*),n),align(20 4,pueblize([last(%i0,`)]: '[u(RET`EFFNAME,u(maindb),last(%i0,`))]',+eff [last(%i0,`)]),strfirstof(get(%0/%i0),DEF)\%),%b,%r),%r)
- &ATK`FUN`STATUSCOLADM2 u(csc)=trim(iter(sortkey(#lambda/last(\%0,`),lattr(%0/%1`%2`*),n),align(20 4,pueblize([last(%i0,`)]: '[u(RET`TAGNAME,E,last(%i0,`))]',+eff/tags [last(%i0,`)]),strfirstof(get(%0/%i0),DEF)\%),%b,%r),%r)
- &ATK`CASCADE u(csc)=@nspemit %#=align(4 12 8 3 3 3 10,ID,NAME,ELE,POW,ACC,STA,DESC);@dolist/inline iter(%6,last(%i0,`))={@nspemit %#=align(4 12 8 3 3 10,pueblize(%i0,setr(pueblo,+%5 %i0)),pueblize(get(u(maindb)/%4`%i0),%q<pueblo>),iter(get(u(maindb)/%4`%i0`ELEMENT),u(RET`ELENAME,%i0)),get(u(maindb)/%4`%i0`POWER),get(u(maindb)/%4`%i0`ACCURACY),if(words(reglattr(u(maindb)/^%4`%i0`(INFLICTS|CLEARS|ADOPTS|CANCELS)`\\d+$)),Yes,No),get(u(maindb)/%4`%i0`DESC))}
- &ATK`MAIN`CATEGORY u(csc)=@switch/inline %0=Uncategorized,{@include u(csc)/%5`MAIN`UNCATEGORIZED},{@include u(csc)/VAL`CATEGORY=%0,%4;@nspemit %#=u(RFN`HEADER,%3 Database: %q<category> Entries);@include u(csc)/%5`CASCADE=%0,%1,%2,%3,%4,%5,u(DBFUN`CATSEARCH,%4,%q<catnum>);@nspemit %#=u(RFN`HEADER)}
- &ATK`SET u(csc)=@include u(csc)/VAL`ATKSLOT=%0;@include u(csc)/DB`SEARCH=%q<slot>,%4,1,1;@switch/inline words(%1,/)=1,{@include u(csc)/DB`SEARCH=%1,%4;@include u(ccs)/INC`VERIFY={ansi(hr,WARNING:) This will copy DB [u(RET`ATKNAME`FORMAL,u(maindb),%q<slot>)] to ID Slot %q<id>. Current attack there: [u(RET`ATKNAME`FORMAL,u(maindb),%q<id>)]. Are you sure? enter the same command again to continue.},DB %4 %q<slot> %q<id>,v(VAR`MSGHEAD);@include u(csc)/SET`ATK`ID=u(maindb),%q<slot>,%q<id>},{@include u(csc)/SET`ATK`STRING=u(maindb),%q<slot>,%1}
- &ATK`PARA u(csc)=@include u(csc)/VAL`ATKSLOT=%0;@include u(csc)/DB`SEARCH=%q<slot>,%4;@include u(csc)/SET`ATK`PARA=u(maindb),,%q<id>,%1
- &ATK`RENAME u(csc)=@include u(csc)/ITM`RENAME
- &ATK`WIPE u(csc)=@include u(csc)/ITM`WIPE
- &ATK`CATEGORY u(csc)=@include u(csc)/ITM`CATEGORY;@include u(csc)/INC`PMSG=%#,{Changed DB [u(RET`ATKNAME`FORMAL,u(maindb),%q<id>)]'s Category to: %q<catlist>};@include u(csc)/INC`AMSG={Changed DB [u(RET`ATKNAME`FORMAL,u(maindb),%q<id>)]'s Category to: %q<catlist>},%#
- &ATK`DESC u(csc)=@include u(csc)/ITM`DESC
- &ATK`MAKECATEGORY u(csc)=@include u(csc)/CAT`MAKE
- &ATK`RENCATEGORY u(csc)=@include u(csc)/CAT`RENAME
- &ATK`DELCATEGORY u(csc)=@include u(csc)/CAT`DEL
- &ATK`CATDESC u(csc)=@include u(csc)/CAT`DESC
- &ATK`TAGS u(csc)=@switch/inline t(strlen(%0))[valnum(%0)]=11,{@include u(csc)/%5`TAG`TAGLIST},0*,{@include u(csc)/%5`TAG`TAGS},10,{@include u(csc)/%5`TAG`TAGLIST}
- &ATK`TAG`TAGS u(csc)=@include u(csc)/TAG`LIST
- &ATK`TAG`TAGLIST u(csc)=@include u(csc)/VAL`TAG=%0,%4;@nspemit %#=u(RFN`HEADER,%3 Database: %q<tag> Tagged Entries);@include u(csc)/%5`CASCADE=%0,%1,%2,%3,%4,%5,u(DBFUN`TAGSEARCH,%4,%q<tagnum>);@nspemit %#=u(RFN`HEADER)
- &ATK`ADDTAG u(csc)=@include u(csc)/ITM`TAG;@include u(csc)/INC`PMSG=%#,{Changed DB [u(RET`ATKNAME`FORMAL,u(maindb),%q<id>)]'s Tags to: %q<taglist>};@include u(csc)/INC`AMSG={Changed DB [u(RET`ATKNAME`FORMAL,u(maindb),%q<id>)]'s Tags to: %q<taglist>},%#
- &ATK`MAKETAG u(csc)=@include u(csc)/TAG`MAKE
- &ATK`RENTAG u(csc)=@include u(csc)/TAG`RENAME
- &ATK`DELTAG u(csc)=@include u(csc)/TAG`DEL
- &ATK`TAGDESC u(csc)=@include u(csc)/TAG`DESC
- @@ ****** EFFECT SECTION
- &EFF`MAIN u(csc)=@switch/inline t(strlen(%0))[valnum(%0)]=11,{@include u(csc)/%5`MAIN`ITEM},0*,{@include u(csc)/%5`MAIN`CATLIST},10,{@include u(csc)/%5`MAIN`CATEGORY}
- &EFF`MAIN`CATLIST u(csc)=@include u(csc)/CAT`LIST
- &EFF`MAIN`UNCATEGORIZED u(csc)=@nspemit %#=u(RFN`HEADER,%3 Database: Uncategorized Entries);@include u(csc)/%5`CASCADE=%0,%1,%2,%3,%4,%5,u(DBFUN`UNCATSEARCH,%4);@nspemit %#=u(RFN`HEADER)
- &EFF`CASCADE u(csc)=@nspemit %#=align(4 12 8 3 3 3 10,ID,NAME,ELE,POW,ACC,STA,DESC);@dolist/inline iter(%6,last(%i0,`))={@nspemit %#=align(4 12 8 3 3 10,pueblize(%i0,setr(pueblo,+%5 %i0)),pueblize(get(u(maindb)/%4`%i0),%q<pueblo>),iter(get(u(maindb)/%4`%i0`ELEMENT),u(RET`ELENAME,%i0)),get(u(maindb)/%4`%i0`POWER),get(u(maindb)/%4`%i0`ACCURACY),if(words(reglattr(u(maindb)/^%4`%i0`(INFLICTS|CLEARS|ADOPTS|CANCELS)`\\d+$)),Yes,No),get(u(maindb)/%4`%i0`DESC))}
- &EFF`MAIN`ITEM u(csc)=@include u(csc)/DB`SEARCH=%0,%4;@nspemit %#=u(RFN`HEADER,u(RET`EFFNAME`FORMAL,u(maindb),%q<id>));@nspemit %#=align(21 13,iter(ELEMENT TYPE POWER ACCURACY,align(>10 10,%i0:,switch(%i0,ELEMENT,iter(get(u(maindb)/%4`%q<id>`ELEMENT),u(RET`ELENAME,%i0)),TYPE,u(RET`TYPNAME,get(u(maindb)/%4`%q<id>`TYPE)),get(u(maindb)/%4`%q<id>`%i0))),%b,%r),);@switch/inline t(strlen(setr(effects,align(36 36,u(ATK`FUN`STATUSCOLADM,u(maindb),%4`%q<id>,INFLICTS),u(ATK`FUN`STATUSCOLADM,u(maindb),%4`%q<id>,CLEARS)))))=1,{@nspemit %#=%R[align(36 36,INFLICTS,CLEARS)];@nspemit %#=%q<effects>};@switch/inline t(strlen(setr(effects,align(36 36,u(ATK`FUN`STATUSCOLADM,u(maindb),%4`%q<id>,ADOPTS),u(ATK`FUN`STATUSCOLADM,u(maindb),%4`%q<id>,CANCELS)))))=1,{@nspemit %#=%R[align(36 36,ADOPTS,CANCELS)];@nspemit %#=%q<effects>};@nspemit %#=u(RFN`HEADER)
- &EFF`FUN`STATUSCOLADM u(csc)=trim(iter(sortkey(#lambda/last(\%0,`),lattr(%0/%1`%2`*),n),align(20 4,pueblize([last(%i0,`)]: '[u(RET`EFFNAME,u(maindb),last(%i0,`))]',+eff [last(%i0,`)]),strfirstof(get(%0/%i0),DEF)\%),%b,%r),%r)
- &EFF`MAIN`CATEGORY u(csc)=@switch/inline %0=Uncategorized,{@include u(csc)/%5`MAIN`UNCATEGORIZED},{@include u(csc)/VAL`CATEGORY=%0,%4;@nspemit %#=u(RFN`HEADER,%3 Database: %q<category> Entries);@include u(csc)/%5`CASCADE=%0,%1,%2,%3,%4,%5,u(DBFUN`CATSEARCH,%4,%q<catnum>);@nspemit %#=u(RFN`HEADER)}
- &EFF`ADD u(csc)=@include u(csc)/ITM`ADD
- &EFF`PARA u(csc)=@include u(csc)/VAL`ATKSLOT=%0;@include u(csc)/DB`SEARCH=%q<slot>,%4;@include u(csc)/SET`EFF`PARA=u(maindb),%4`%q<id>,%q<id>,%1
- &EFF`RENAME u(csc)=@include u(csc)/ITM`RENAME
- &EFF`WIPE u(csc)=@include u(csc)/ITM`WIPE
- &EFF`CATEGORY u(csc)=@include u(csc)/ITM`CATEGORY;@include u(csc)/INC`PMSG=%#,{Changed DB [u(RET`EFFNAME`FORMAL,u(maindb),%q<id>)]'s Category to: %q<catlist>};@include u(csc)/INC`AMSG={Changed DB [u(RET`EFFNAME`FORMAL,u(maindb),%q<id>)]'s Category to: %q<catlist>},%#
- &EFF`DESC u(csc)=@include u(csc)/ITM`DESC
- &EFF`MAKECATEGORY u(csc)=@include u(csc)/CAT`MAKE
- &EFF`RENCATEGORY u(csc)=@include u(csc)/CAT`RENAME
- &EFF`DELCATEGORY u(csc)=@include u(csc)/CAT`DEL
- &EFF`CATDESC u(csc)=@include u(csc)/CAT`DESC
- &EFF`TAGS u(csc)=@switch/inline t(strlen(%0))[valnum(%0)]=11,{@include u(csc)/%5`TAG`TAGLIST},0*,{@include u(csc)/%5`TAG`TAGS},10,{@include u(csc)/%5`TAG`TAGLIST}
- &EFF`TAG`TAGS u(csc)=@include u(csc)/TAG`LIST
- &EFF`TAG`TAGLIST u(csc)=@include u(csc)/VAL`TAG=%0,%4;@nspemit %#=u(RFN`HEADER,%3 Database: %q<tag> Tagged Entries);@include u(csc)/%5`CASCADE=%0,%1,%2,%3,%4,%5,u(DBFUN`TAGSEARCH,%4,%q<tagnum>);@nspemit %#=u(RFN`HEADER)
- &EFF`ADDTAG u(csc)=@include u(csc)/ITM`TAG;@include u(csc)/INC`PMSG=%#,{Changed DB [u(RET`EFFNAME`FORMAL,u(maindb),%q<id>)]'s Tags to: %q<taglist>};@include u(csc)/INC`AMSG={Changed DB [u(RET`EFFNAME`FORMAL,u(maindb),%q<id>)]'s Tags to: %q<taglist>},%#
- &EFF`MAKETAG u(csc)=@include u(csc)/TAG`MAKE
- &EFF`RENTAG u(csc)=@include u(csc)/TAG`RENAME
- &EFF`DELTAG u(csc)=@include u(csc)/TAG`DEL
- &EFF`TAGDESC u(csc)=@include u(csc)/TAG`DESC
- @@ ****** FORM SECTION
- &FRM`MAIN u(csc)=@switch/inline t(strlen(%0))[valnum(%0)]=11,{@include u(csc)/%5`MAIN`ITEM},0*,{@include u(csc)/%5`MAIN`CATLIST},10,{@include u(csc)/%5`MAIN`CATEGORY}
- &FRM`MAIN`CATLIST u(csc)=@include u(csc)/CAT`LIST
- &FRM`MAIN`UNCATEGORIZED u(csc)=@nspemit %#=u(RFN`HEADER,%3 Database: Uncategorized Entries);@include u(csc)/%5`CASCADE=%0,%1,%2,%3,%4,%5,u(DBFUN`UNCATSEARCH,%4);@nspemit %#=u(RFN`HEADER)
- &FRM`CASCADE u(csc)=@nspemit %#=align(4 12 8 3 3 3 10,ID,NAME,ELE,POW,ACC,STA,DESC);@dolist/inline iter(%6,last(%i0,`))={@nspemit %#=align(4 12 8 3 3 10,pueblize(%i0,setr(pueblo,+%5 %i0)),pueblize(get(u(maindb)/%4`%i0),%q<pueblo>),iter(get(u(maindb)/%4`%i0`ELEMENT),u(RET`ELENAME,%i0)),get(u(maindb)/%4`%i0`POWER),get(u(maindb)/%4`%i0`ACCURACY),if(words(reglattr(u(maindb)/^%4`%i0`(INFLICTS|CLEARS|ADOPTS|CANCELS)`\\d+$)),Yes,No),get(u(maindb)/%4`%i0`DESC))}
- &FRM`MAIN`ITEM u(csc)=@include u(csc)/DB`SEARCH=%0,%4;@nspemit %#=u(RFN`HEADER,u(RET`EFFNAME`FORMAL,u(maindb),%q<id>));@nspemit %#=align(21 13,iter(ELEMENT TYPE POWER ACCURACY,align(>10 10,%i0:,switch(%i0,ELEMENT,iter(get(u(maindb)/%4`%q<id>`ELEMENT),u(RET`ELENAME,%i0)),TYPE,u(RET`TYPNAME,get(u(maindb)/%4`%q<id>`TYPE)),get(u(maindb)/%4`%q<id>`%i0))),%b,%r),);@switch/inline t(strlen(setr(effects,align(36 36,u(ATK`FUN`STATUSCOLADM,u(maindb),%4`%q<id>,INFLICTS),u(ATK`FUN`STATUSCOLADM,u(maindb),%4`%q<id>,CLEARS)))))=1,{@nspemit %#=%R[align(36 36,INFLICTS,CLEARS)];@nspemit %#=%q<effects>};@switch/inline t(strlen(setr(effects,align(36 36,u(ATK`FUN`STATUSCOLADM,u(maindb),%4`%q<id>,ADOPTS),u(ATK`FUN`STATUSCOLADM,u(maindb),%4`%q<id>,CANCELS)))))=1,{@nspemit %#=%R[align(36 36,ADOPTS,CANCELS)];@nspemit %#=%q<effects>};@nspemit %#=u(RFN`HEADER)
- &FRM`FUN`STATUSCOLADM u(csc)=trim(iter(sortkey(#lambda/last(\%0,`),lattr(%0/%1`%2`*),n),align(20 4,pueblize([last(%i0,`)]: '[u(RET`EFFNAME,u(maindb),last(%i0,`))]',+eff [last(%i0,`)]),strfirstof(get(%0/%i0),DEF)\%),%b,%r),%r)
- &FRM`MAIN`CATEGORY u(csc)=@switch/inline %0=Uncategorized,{@include u(csc)/%5`MAIN`UNCATEGORIZED},{@include u(csc)/VAL`CATEGORY=%0,%4;@nspemit %#=u(RFN`HEADER,%3 Database: %q<category> Entries);@include u(csc)/%5`CASCADE=%0,%1,%2,%3,%4,%5,u(DBFUN`CATSEARCH,%4,%q<catnum>);@nspemit %#=u(RFN`HEADER)}
- &FRM`ADD u(csc)=@include u(csc)/ITM`ADD
- &FRM`SET u(csc)=@include u(csc)/VAL`ATKSLOT=before(%0,/);@include u(csc)/DB`SEARCH=%q<slot>,%4;@include u(ccs)/INC`PARTIAL=elements(%0,2,/),STAT|CLASS|WEAK|RESIST|NULL|ATK|PARA,|,v(VAR`MSGHEAD),choice,choice;@include u(csc)/FRM`SET`%q<choice>=elements(%0,3 4 5 6 7 8 9,/,/),%1
- &FRM`SET`STAT u(csc)=@include u(csc)/SET`FORM`STAT=u(maindb),%q<id>,%0,%1
- &FRM`SET`CLASS u(csc)=@include u(csc)/SET`FORM`CLASS=u(maindb),%q<id>,%1
- &FRM`SET`ATK u(csc)=@include u(csc)/VAL`ATKSLOT=%0;@include u(csc)/SET`FORM`ATK`STRING=u(maindb),%q<id>,%q<slot>,%1
- &FRM`SET`PARA u(csc)=@include u(csc)/VAL`ATKSLOT=%0;@include u(csc)/SET`ATK`PARA=u(maindb),%q<id>,%q<slot>,%1
- &FRM`SET`WEAK u(csc)=@include u(csc)/SET`FORM`ELELIKE=u(maindb),%q<id>,%1,WEAK
- &FRM`SET`RESIST u(csc)=@include u(csc)/SET`FORM`ELELIKE=u(maindb),%q<id>,%1,RESIST
- &FRM`SET`NULL u(csc)=@include u(csc)/SET`FORM`ELELIKE=u(maindb),%q<id>,%1,NULL
- &FRM`SET`STAT u(csc)=@include u(csc)/SET`FORM`ELELIKE=u(maindb),%q<id>,%0,%1
- &FRM`RENAME u(csc)=@include u(csc)/ITM`RENAME
- &FRM`WIPE u(csc)=@include u(csc)/ITM`WIPE
- &FRM`CATEGORY u(csc)=@include u(csc)/ITM`CATEGORY;@include u(csc)/INC`PMSG=%#,{Changed DB [u(RET`FRMNAME`FORMAL,u(maindb),%q<id>)]'s Category to: %q<catlist>};@include u(csc)/INC`AMSG={Changed DB [u(RET`FRMNAME`FORMAL,u(maindb),%q<id>)]'s Category to: %q<catlist>},%#
- &FRM`DESC u(csc)=@include u(csc)/ITM`DESC
- &FRM`MAKECATEGORY u(csc)=@include u(csc)/CAT`MAKE
- &FRM`RENCATEGORY u(csc)=@include u(csc)/CAT`RENAME
- &FRM`DELCATEGORY u(csc)=@include u(csc)/CAT`DEL
- &FRM`CATDESC u(csc)=@include u(csc)/CAT`DESC
- &FRM`TAGS u(csc)=@switch/inline t(strlen(%0))[valnum(%0)]=11,{@include u(csc)/%5`TAG`TAGLIST},0*,{@include u(csc)/%5`TAG`TAGS},10,{@include u(csc)/%5`TAG`TAGLIST}
- &FRM`TAG`TAGS u(csc)=@include u(csc)/TAG`LIST
- &FRM`TAG`TAGLIST u(csc)=@include u(csc)/VAL`TAG=%0,%4;@nspemit %#=u(RFN`HEADER,%3 Database: %q<tag> Tagged Entries);@include u(csc)/%5`CASCADE=%0,%1,%2,%3,%4,%5,u(DBFUN`TAGSEARCH,%4,%q<tagnum>);@nspemit %#=u(RFN`HEADER)
- &FRM`ADDTAG u(csc)=@include u(csc)/ITM`TAG;@include u(csc)/INC`PMSG=%#,{Changed DB [u(RET`FRMNAME`FORMAL,u(maindb),%q<id>)]'s Tags to: %q<taglist>};@include u(csc)/INC`AMSG={Changed DB [u(RET`FRMNAME`FORMAL,u(maindb),%q<id>)]'s Tags to: %q<taglist>},%#
- &FRM`MAKETAG u(csc)=@include u(csc)/TAG`MAKE
- &FRM`RENTAG u(csc)=@include u(csc)/TAG`RENAME
- &FRM`DELTAG u(csc)=@include u(csc)/TAG`DEL
- &FRM`TAGDESC u(csc)=@include u(csc)/TAG`DESC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement