forked from ccubed/RFK
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUniversal Sheet.txt
78 lines (45 loc) · 29 KB
/
Universal Sheet.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
&CMD.SHEET #4063=$+sheet:@break [match(name(%#),*guest*)]={@pemit %#=[ansi(hr,SHEET:)]%bGuests can't use this command.};@switch [xget(%#,PC_DATA`TEMPLATE)]=Human,{[setq(sheet,[u(DISPLAY.MORTALINFO,%#)])][setq(sheet,%q<sheet>%R[u(DISPLAY.ATTRIBUTES,%#)])][setq(sheet2,[u(DISPLAY.SKILLS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.SPECS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.MERITS,%#)])][setq(sheet3,%q<sheet3>[u(DISPLAY.VITALS,%#)])];@pemit %#=[header([name(%#)] [xget(%#,PC_DATA`SURNAME)])];@pemit %#=%q<sheet>;@pemit %#=%q<sheet2>;@pemit %#=%q<sheet3>;@pemit %#=[footer()]},Vampire,{[setq(sheet,[u(DISPLAY.VAMPIREINFO,%#)])][setq(sheet,%q<sheet>%R[u(DISPLAY.ATTRIBUTES,%#)])][setq(sheet2,[u(DISPLAY.SKILLS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.SPECS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.MERITS,%#)])][setq(sheet3,[u(DISPLAY.DISCIPLINES,%#)])][if(or(hasattrval(%#,Devotion),hasattrval(%#,Scale)),[setq(sheet3,%q<sheet3>%R[u(DISPLAY.DEVOTIONS,%#)])],[setq(sheet3,%q<sheet3>%R)])][setq(sheet3,%q<sheet3>[u(DISPLAY.VITALS.VAMP,%#)])];@pemit %#=[header([header([name(%#)] [xget(%#,PC_DATA`SURNAME)])])];@pemit %#=%q<sheet>;@pemit %#=%q<sheet2>;@pemit %#=%q<sheet3>;@pemit %#=[footer()]},Ghoul,{[setq(sheet,[u(DISPLAY.GHOULINFO,%#)])][setq(sheet,%q<sheet>%R[u(DISPLAY.ATTRIBUTES,%#)])][setq(sheet2,[u(DISPLAY.SKILLS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.SPECS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.MERITS,%#)])][setq(sheet3,[u(DISPLAY.DISCIPLINES,%#)])][if(or(hasattrval(%#,Devotion),hasattrval(%#,Scale)),[setq(sheet3,%q<sheet3>%R[u(DISPLAY.DEVOTIONS,%#)])],[setq(sheet3,%q<sheet3>%R)])][setq(sheet3,%q<sheet3>[u(DISPLAY.VITALS.VAMP,%#)])];@pemit %#=[header([header([name(%#)] [xget(%#,PC_DATA`SURNAME)])])];@pemit %#=%q<sheet>;@pemit %#=%q<sheet2>;@pemit %#=%q<sheet3>;@pemit %#=[footer()]},{@pemit %#=[header(Pre-Template CG Sheet)]%R[u(DISPLAY.ATTRIBUTES,%#)]%R[u(DISPLAY.SKILLS,%#)]%R[footer()]}
&CMD.SHEET.SPECIFIC #4063=$+section *:@break [pmatch(%0)];@break [match(name(%#),*guest*)]={@pemit %#=[ansi(hr,SHEET:)]%bGuests can't use this command.};@assert [hasattrval(#4063,DISPLAY.%0)]={@pemit %#=%0 doesn't match a sheet section. Type +sections to see them.};@pemit %#=[u(DISPLAY.%0,%#)]%R[footer()]
&CMD.SHEET.SECTIONS #4063=$+sections:@pemit %#=[center(+Sheet has these Sections:,78)]%R[switch(xget(%#,PC_DATA`TEMPLATE),Human,[align(26 26 26,MortalInfo,Attributes,Skills)]%R[align(26 26 26,Specs,Merits,Vitals)],Vampire,[align(26 26 26,Vampireinfo,Attributes,Skills)]%R[align(26 26 26,Specs,Merits,Disciplines)]%R[align(26 26,Devotions,Vitals.Vamp)],Ghoul,[align(26 26 26,Ghoulinfo,Attributes,Skills)]%R[align(26 26 26,Specs,Merits,Disciplines)]%R[align(26 26,Devotions,Vitals.Vamp)])]
&CMD.SHEET.OTHERS #4063=$+sheet *:@assert [isstaff(%#)];@assert [pmatch(%0)];@switch [xget([pmatch(%0)],PC_DATA`TEMPLATE)]=Human,{[setq(sheet,[u(DISPLAY.MORTALINFO,[pmatch(%0)])])][setq(sheet,%q<sheet>%R[u(DISPLAY.ATTRIBUTES,[pmatch(%0)])])][setq(sheet2,[u(DISPLAY.SKILLS,[pmatch(%0)])])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.SPECS,[pmatch(%0)])])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.MERITS,[pmatch(%0)])])][setq(sheet3,%q<sheet3>[u(DISPLAY.VITALS,[pmatch(%0)])])];@pemit %#=[header([name([pmatch(%0)])] [xget(pmatch(%0),PC_DATA`SURNAME)])];@pemit %#=%q<sheet>;@pemit %#=%q<sheet2>;@pemit %#=%q<sheet3>;@pemit %#=[footer()]},Vampire,{[setq(sheet,[u(DISPLAY.VAMPIREINFO,[pmatch(%0)])])][setq(sheet,%q<sheet>%R[u(DISPLAY.ATTRIBUTES,[pmatch(%0)])])][setq(sheet2,[u(DISPLAY.SKILLS,[pmatch(%0)])])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.SPECS,[pmatch(%0)])])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.MERITS,[pmatch(%0)])])][setq(sheet3,[u(DISPLAY.DISCIPLINES,[pmatch(%0)])])][if(or(hasattrval(pmatch(%0),Devotion),hasattrval(pmatch(%0),Scale)),[setq(sheet3,%q<sheet3>%R[u(DISPLAY.DEVOTIONS,[pmatch(%0)])])],[setq(sheet3,%q<sheet3>%R)])][setq(sheet3,%q<sheet3>[u(DISPLAY.VITALS.VAMP,[pmatch(%0)])])];@pemit %#=[header([name([pmatch(%0)])] [xget(pmatch(%0),PC_DATA`SURNAME)])];@pemit %#=%q<sheet>;@pemit %#=%q<sheet2>;@pemit %#=%q<sheet3>;@pemit %#=[footer()]},Ghoul,{[setq(sheet,[u(DISPLAY.GHOULINFO,[pmatch(%0)])])][setq(sheet,%q<sheet>%R[u(DISPLAY.ATTRIBUTES,[pmatch(%0)])])][setq(sheet2,[u(DISPLAY.SKILLS,[pmatch(%0)])])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.SPECS,[pmatch(%0)])])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.MERITS,[pmatch(%0)])])][setq(sheet3,[u(DISPLAY.DISCIPLINES,[pmatch(%0)])])][if(or(hasattrval(pmatch(%0),Devotion),hasattrval(pmatch(%0),Scale)),[setq(sheet3,%q<sheet3>%R[u(DISPLAY.DEVOTIONS,[pmatch(%0)])]%R[u(DISPLAY.VITALS.VAMP,[pmatch(%0)])])],[setq(sheet3,%q<sheet3>%R[u(DISPLAY.VITALS.VAMP,[pmatch(%0)])])])];@pemit %#=[header([name([pmatch(%0)])] [xget(pmatch(%0),PC_DATA`SURNAME)])];@pemit %#=%q<sheet>;@pemit %#=%q<sheet2>;@pemit %#=%q<sheet3>;@pemit %#=[footer()]},{@pemit %#=[header(Pre-Template CG Sheet)]%R[u(DISPLAY.ATTRIBUTES,%#)]%R[u(DISPLAY.SKILLS,%#)]%R[footer()]}
&CMD.SHEET.SHOW #4063=$+sheet/show:@break [match(name(%#),*guest*)]={@pemit %#=[ansi(hr,SHEET:)]%bGuests can't use this command.};@switch [xget(%#,PC_DATA`TEMPLATE)]=Human,{[setq(sheet,[u(DISPLAY.MORTALINFO,%#)])][setq(sheet,%q<sheet>%R[u(DISPLAY.ATTRIBUTES,%#)])][setq(sheet2,[u(DISPLAY.SKILLS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.SPECS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.MERITS,%#)])][setq(sheet3,%q<sheet3>[u(DISPLAY.VITALS,%#)])];@remit %L=[header([apostrophe_name(%#)] Sheet)];@remit %L=%q<sheet>;@remit %L=%q<sheet2>;@remit %L=%q<sheet3>;@remit %L=[footer()]},Vampire,{[setq(sheet,[u(DISPLAY.VAMPIREINFO,%#)])][setq(sheet,%q<sheet>%R[u(DISPLAY.ATTRIBUTES,%#)])][setq(sheet2,[u(DISPLAY.SKILLS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.SPECS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.MERITS,%#)])][setq(sheet3,[u(DISPLAY.DISCIPLINES,%#)])][if(or(hasattrval(%#,Devotion),hasattrval(%#,Scale)),[setq(sheet3,%q<sheet3>%R[u(DISPLAY.DEVOTIONS,%#)])],[setq(sheet3,%q<sheet3>%R)])][setq(sheet3,%q<sheet3>[u(DISPLAY.VITALS.VAMP,%#)])];@remit %L=[header([apostrophe_name(%#)] Sheet)];@remit %L=%q<sheet>;@remit %L=%q<sheet2>;@remit %L=%q<sheet3>;@remit %L=[footer()]},Ghoul,{[setq(sheet,[u(DISPLAY.GHOULINFO,%#)])][setq(sheet,%q<sheet>%R[u(DISPLAY.ATTRIBUTES,%#)])][setq(sheet2,[u(DISPLAY.SKILLS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.SPECS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.MERITS,%#)])][setq(sheet3,[u(DISPLAY.DISCIPLINES,%#)])][if(or(hasattrval(%#,Devotion),hasattrval(%#,Scale)),[setq(sheet3,%q<sheet3>%R[u(DISPLAY.DEVOTIONS,%#)])],[setq(sheet3,%q<sheet3>%R)])][setq(sheet3,%q<sheet3>[u(DISPLAY.VITALS.VAMP,%#)])];@remit %L=[header([apostrophe_name(%#)] Sheet)];@remit %L=%q<sheet>;@remit %L=%q<sheet2>;@remit %L=%q<sheet3>;@remit %L=[footer()]},{@pemit %#=Well this is odd, You don't have a template. You should tell staff.}
&CMD.SHEET.SHOW.SOMEONE #4063=$+sheet/show *:@break [match(name(%#),*guest*)]={@pemit %#=[ansi(hr,SHEET:)]%bGuests can't use this command.};@assert [pmatch(%0)]=@pemit %#=[ansi(hw,SHEET:)]%b%0 doesn't match a player.;@switch [xget(%#,PC_DATA`TEMPLATE)]=Human,{[setq(sheet,[u(DISPLAY.MORTALINFO,%#)])][setq(sheet,%q<sheet>%R[u(DISPLAY.ATTRIBUTES,%#)])][setq(sheet2,[u(DISPLAY.SKILLS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.SPECS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.MERITS,%#)])][setq(sheet3,%q<sheet3>[u(DISPLAY.VITALS,%#)])];@pemit [pmatch(%0)]=[header([apostrophe_name(%#)] Sheet)];@pemit [pmatch(%0)]=%q<sheet>;@pemit [pmatch(%0)]=%q<sheet2>;@pemit [pmatch(%0)]=%q<sheet3>;@pemit [pmatch(%0)]=[footer()]},Vampire,{[setq(sheet,[u(DISPLAY.VAMPIREINFO,%#)])][setq(sheet,%q<sheet>%R[u(DISPLAY.ATTRIBUTES,%#)])][setq(sheet2,[u(DISPLAY.SKILLS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.SPECS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.MERITS,%#)])][setq(sheet3,[u(DISPLAY.DISCIPLINES,%#)])][if(or(hasattrval(%#,Devotion),hasattrval(%#,Scale)),[setq(sheet3,%q<sheet3>%R[u(DISPLAY.DEVOTIONS,%#)])],[setq(sheet3,%q<sheet3>%R)])][setq(sheet3,%q<sheet3>[u(DISPLAY.VITALS.VAMP,%#)])];@pemit [pmatch(%0)]=[header([apostrophe_name(%#)] Sheet)];@pemit [pmatch(%0)]=%q<sheet>;@pemit [pmatch(%0)]=%q<sheet2>;@pemit [pmatch(%0)]=%q<sheet3>;@pemit [pmatch(%0)]=[footer()]},Ghoul,{[setq(sheet,[u(DISPLAY.GHOULINFO,%#)])][setq(sheet,%q<sheet>%R[u(DISPLAY.ATTRIBUTES,%#)])][setq(sheet2,[u(DISPLAY.SKILLS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.SPECS,%#)])][setq(sheet2,%q<sheet2>%R[u(DISPLAY.MERITS,%#)])][setq(sheet3,[u(DISPLAY.DISCIPLINES,%#)])][if(or(hasattrval(%#,Devotion),hasattrval(%#,Scale)),[setq(sheet3,%q<sheet3>%R[u(DISPLAY.DEVOTIONS,%#)])],[setq(sheet3,%q<sheet3>%R)])][setq(sheet3,%q<sheet3>[u(DISPLAY.VITALS.VAMP,%#)])];@pemit [pmatch(%0)]=[header([apostrophe_name(%#)] Sheet)];@pemit [pmatch(%0)]=%q<sheet>;@pemit [pmatch(%0)]=%q<sheet2>;@pemit [pmatch(%0)]=%q<sheet3>;@pemit [pmatch(%0)]=[footer()]},{@pemit %#=Well this is odd, You don't have a template. You should tell staff.}
@@ Vampire Section
&DISPLAY.VAMPIREINFO #4063=|%b[ljust([ansi(hw,Clan:)]%b[xget(%0,PC_DATA`CLAN)],37)][rjust([ansi(hw,Bloodline:)]%b[default(%0/PC_DATA`BLOODLINE,None)],37)]%b|%R|%b[ljust([ansi(hw,Covenant:)]%b[xget(%0,PC_DATA`COVENANT)],29)][rjust([ansi(hw,Concept:)]%b[xget(%0,PC_DATA`CONCEPT)],45)]%b|%R|%b[ljust([ansi(hw,DoB:)]%b[xget(%0,PC_DATA`DOB)],37)][rjust([ansi(hw,DoE:)]%b[xget(%0,PC_DATA`DATE_OF_EMBRACE)],37)]%b|%R|%b[ljust([ansi(hw,Mask:)]%b[xget(%0,PC_DATA`VAMP.MASK)],37)][rjust([ansi(hw,Dirge:)]%b[xget(%0,PC_DATA`VAMP.DIRGE)],37)]%b|%R|%b[center([ansi(hw,EMAIL:)]%b[xget(%0,PC_DATA`EMAIL)],74)]%b|
&DISPLAY.DISCIPLINES #4063=[header(Disciplines)]%R[iter(lnum(1,[switch(words(setr(data,setunion(xget(%0,Discipline),xget(%0,Coil),|,|)),|),<=3,1,inc(div(words(%q<data>,|),3)))]),|%b%b%b[if(t(setr(temp,first(extract(%q<data>,[switch(inum(0),1,1,add(1,mul(3,sub(inum(0),1))))],1,|),~))),[ljust(%q<temp>,20,.)]%b[extract(extract(%q<data>,[switch(inum(0),1,1,add(1,mul(3,sub(inum(0),1))))],1,|),2,1,~)][space(2)],[space(24)])][if(t(setr(temp,first(extract(%q<data>,[switch(inum(0),1,2,add(2,mul(3,sub(inum(0),1))))],1,|),~))),[ljust(%q<temp>,20,.)]%b[extract(extract(%q<data>,[switch(inum(0),1,2,add(2,mul(3,sub(inum(0),1))))],1,|),2,1,~)][space(2)],[space(24)])][if(t(setr(temp,first(extract(%q<data>,[switch(inum(0),1,3,add(3,mul(3,sub(inum(0),1))))],1,|),~))),[ljust(%q<temp>,20,.)]%b[extract(extract(%q<data>,[switch(inum(0),1,3,add(3,mul(3,sub(inum(0),1))))],1,|),2,1,~)],[space(22)])]%b%b%b|, ,%R)]
&DISPLAY.DEVOTIONS #4063=[header(Devotions)]%R[u(FORMAT-1,%0,Devotion)][u(FORMAT-1,%0,Scale)]
&BEATFORMAT #4063=[eval(me,FN`BEATCALC)]|%b[ljust([ansi(hw,Available:)]%b[if(%qb,sub(%q<xp>,%q<xps>,1),sub(%q<xp>,%q<xps>))] XP %q<r>/%q<m> Beats,37)][rjust([ansi(hw,Spent:)]%b%q<xps> XP[if(cand(%qb,isstaff(%#)),!!! %qb Beats)],37)]%b|
&FN`BEATCALC #4063=[setq(beats,before(get(%0/PC_DATA`EXP),/))][setq(earned,after(get(%0/PC_DATA`EXP),/))][if(not(%q<beats>),[setq(beats,0)])][if(not(%q<earned>),[setq(earned,0)])][setq(xp,0)][setq(xps,0)][setq(m,5)][setq(n,5)][setq(spent,sub(%q<earned>,%q<beats>))][setq(xp,0)][setq(xps,0)][setq(m,5)][setq(n,5)][setq(spent,sub(%q<earned>,%q<beats>))][switch(%q<earned>, >=2250,setq(xp,300)[setq(earned,sub(%q<earned>,2250))][setq(m,11)],>=1750,setq(xp,250)[setq(earned,sub(%q<earned>,1750))][setq(m,10)],>=1300,setq(xp,200)[setq(earned,sub(%q<earned>,1300))][setq(m,9)],>=900,setq(xp,150)[setq(earned,sub(%q<earned>,900))][setq(m,8)],>=550,setq(xp,100)[setq(earned,sub(%q<earned>,550))][setq(m,7)],>=250,setq(xp,50)[setq(earned,sub(%q<earned>,250))][setq(m,6)])][setq(xp,add(%q<xp>,div(%q<earned>,%qm)))][setq(r,mod(%q<earned>,%qm))][switch(%q<spent>, >=2250,setq(xps,300)[setq(spent,sub(%q<spent>,2250))][setq(n,11)],>=1750,setq(xps,250)[setq(spent,sub(%q<spent>,1750))][setq(n,10)],>=1300,setq(xps,200)[setq(spent,sub(%q<spent>,1300))][setq(n,9)],>=900,setq(xps,150)[setq(spent,sub(%q<spent>,900))][setq(n,8)],>=550,setq(xps,100)[setq(spent,sub(%q<spent>,550))][setq(n,7)],>=250,setq(xps,50)[setq(spent,sub(%q<spent>,250))][setq(n,6)])][setq(xps,add(%q<xps>,div(%q<spent>,%qn)))][setq(b,mod(%q<spent>,%qn))]
&DISPLAY.VITALS.VAMP #4063=[Header(Vitals)]%R|%b[center([ansi(hw,Health)],74)]%b|%R|%b[center([if(t(setr(hp,get_hp(%0,current))),[iter(lnum(1,get_hp(%0,max)),[chr(91)][if(t(mid(%q<hp>,%i0,1)),[u(#1770/FN`CSHEET.PM,mid(%q<hp>,%i0,1))],%b)][chr(93)], ,)],[repeat([chr(91)]%b[chr(93)],get_hp(%0,max))])],74)]%b|%R|%b[ljust([ansi(hw,Blood Potency:)]%b[if(hasattrval(%0,VITALS`MOD`BLOOD-POTENCY),[ansi(hr,[add([u(#4079/FN.GET.STAT,%0,Merit,Blood Potency)],[default(%0/VITALS`MOD`BLOOD-POTENCY,0)])])],[u(#4079/FN.GET.STAT,%0,Merit,Blood Potency)])],37)][rjust([ansi(hw,Vitae:)]%b[if(hasattrval(%0,VITALS`MOD`VITAE),[ansi(hr,[add([get_vitae(%0,current)],[default(%0/VITALS`MOD`VITAE,0)])])],[get_vitae(%0,current)])] of [if(hasattrval(%0,VITALS`MOD`VITAEMAX),[ansi(hr,[add([get_vitae(%0,max)],[default(%0/VITALS`MOD`VITAEMAX,0)])])],[get_vitae(%0,max)])],37)]%b|%R|%b[ljust([ansi(hw,Willpower:)]%b[if(hasattrval(%0,VITALS`MOD`WILLPOWER),[ansi(hr,[add([get_willpower(%0,current)],[default(%0/VITALS`MOD`WILLPOWER,0)])])],[get_willpower(%0,current)])] of [if(hasattrval(%0,VITALS`MOD`WILLPOWERMAX),[ansi(hr,[add([get_willpower(%0,max)],[default(%0/VITALS`MOD`WILLPOWERMAX,0)])])],[get_willpower(%0,max)])],37)][rjust([ansi(hw,Humanity:)]%b[xget(%0,PC_DATA`STATUS`HUMANITY)],37)]%b|%R|%b[ljust([ansi(hw,Initiative Mod:)]%b[get_init_mod_base(%0)]\([get_init_mod(%0)]\),37)][rjust([ansi(hw,Defense:)]%b[ansi(hw,U:)][get_defense_unarmed(%0)]%b[ansi(hw,A:)][get_defense_armed(%0)],37)]%b|%R|%B[ljust([ansi(hw,Size:)]%b[get(%0/PC_DATA`SIZE)],37)][rjust([ansi(hw,Speed:)]%b[get_speed(%0)],37)]%b|%R|%b[ljust([ansi(hw,Armor:)]%b[get(%0/PC_DATA`ARMOR)],37)][rjust([ansi(hw,Downtime:)]%b[get(%0/PC_DATA`DOWNTIME)],37)]%b|%R[eval(me,BEATFORMAT)]
@@ General Functions
&DISPLAY.SKILLS #4063=[header(Skills)]%R[u(FN`GET_MENTAL,%0)][u(FN`GET_PHYSICAL,%0)][u(FN`GET_SOCIAL,%0)][iter(lnum(1,max(words(%q<physical>,|),words(%q<mental>,|),words(%q<social>,|))),|%b[if(t(extract(%q<mental>,inum(0),1,|)),[ljust([before([extract(%q<mental>,inum(0),1,|)],~)],17,.)]%b[setr(temp,[extract(extract(%q<mental>,inum(0),1,|),2,1,~)])][if(hasattrval(%0,SKILL`MOD`[before([extract(%q<mental>,inum(0),1,|)],~)]),[chr(40)][add([xget(%0,SKILL`MOD`[before(extract(%q<mental>,inum(0),1,|),~)])],%q<temp>)][chr(41)],[chr(40)]%q<temp>[chr(41)])],[space(22)])][space(2)][if(t(extract(%q<physical>,inum(0),1,|)),[ljust([before([extract(%q<physical>,inum(0),1,|)],~)],17,.)]%b[setr(temp,[extract(extract(%q<physical>,inum(0),1,|),2,1,~)])][if(hasattrval(%0,SKILL`MOD`[before([extract(%q<physical>,inum(0),1,|)],~)]),[chr(40)][add([xget(%0,SKILL`MOD`[before(extract(%q<physical>,inum(0),1,|),~)])],%q<temp>)][chr(41)],[chr(40)]%q<temp>[chr(41)])],[space(22)])][space(2)][if(t(extract(%q<social>,inum(0),1,|)),[ljust([before([extract(%q<social>,inum(0),1,|)],~)],17,.)]%b[setr(temp,[extract(extract(%q<social>,inum(0),1,|),2,1,~)])][if(hasattrval(%0,SKILL`MOD`[before([extract(%q<social>,inum(0),1,|)],~)]),[chr(40)][add([xget(%0,SKILL`MOD`[before(extract(%q<social>,inum(0),1,|),~)])],%q<temp>)][chr(41)],[chr(40)]%q<temp>[chr(41)])],[space(22)])]%b%b%b%b%b|, ,%R)]
&DISPLAY.VITALS #4063=[Header(Vitals)]%R|%b[center([ansi(hw,Health)],74)]%b|%R|%b[center([if(t(setr(hp,get_hp(%0,current))),[iter(lnum(1,get_hp(%0,max)),[chr(91)][if(t(mid(%q<hp>,%i0,1)),[u(#1770/FN`CSHEET.PM,mid(%q<hp>,%i0,1))],%b)][chr(93)], ,)],[repeat([chr(91)]%b[chr(93)],get_hp(%0,max))])],74)]%b|%R|%b[ljust([ansi(hw,Willpower:)]%b[if(hasattrval(%0,VITALS`MOD`WILLPOWER),[ansi(hr,[add([get_willpower(%0,current)],[default(%0/VITALS`MOD`WILLPOWER,0)])])],[get_willpower(%0,current)])] of [if(hasattrval(%0,VITALS`MOD`WILLPOWERMAX),[ansi(hr,[add([get_willpower(%0,max)],[default(%0/VITALS`MOD`WILLPOWERMAX,0)])])],[get_willpower(%0,max)])],37)][rjust([ansi(hw,Humanity:)]%b[xget(%0,PC_DATA`STATUS`HUMANITY)],37)]%b|%R|%b[ljust([ansi(hw,Initiative Mod:)]%b[get_init_mod_base(%0)]\([get_init_mod(%0)]\),37)][rjust([ansi(hw,Defense:)]%b[ansi(hw,U:)][get_defense_unarmed(%0)]%b[ansi(hw,A:)][get_defense_armed(%0)],37)]%b|%R|%B[ljust([ansi(hw,Size:)]%b[get(%0/PC_DATA`SIZE)],37)][rjust([ansi(hw,Speed:)]%b[get_speed(%0)],37)]%b|%R|%b[ljust([ansi(hw,Armor:)]%b[get(%0/PC_DATA`ARMOR)],37)][rjust([ansi(hw,Downtime:)]%b[get(%0/PC_DATA`DOWNTIME)],37)]%b|%R[eval(me,BEATFORMAT)]
&DISPLAY.SPECS #4063=[header(Specialties)][unsetq(mental)][unsetq(physical)][unsetq(social)][u(FN`GET_MENTAL_SPECS,%0)][u(FN`GET_PHYSICAL_SPECS,%0)][u(FN`GET_SOCIAL_SPECS,%0)]%R[iter(lnum(1,[max(words(%q<mental>,|),words(%q<physical>,|),words(%q<social>,|))]),[u(FN`SPEC.ROW,extract(%q<mental>,inum(0),1,|),extract(%q<physical>,inum(0),1,|),extract(%q<social>,inum(0),1,|))], ,%R)]
&DISPLAY.ATTRIBUTES #4063=[header(Attributes)]%R|%b[center([ansi(hw,Mental)],22)][center([ansi(hw,Physical)],22)][center([ansi(hw,Social)],22)][space(8)]|%R|[space(1)][ljust(Intelligence,17,.)]%b[setq(temp,[u(#4079/FN.GET.STAT,%0,Attribute,Intelligence)])][if(hasattrval(%0,ATTRIBUTE`MOD`INTELLIGENCE),[sub(%q<temp>,[xget(%0,ATTRIBUTE`MOD`INTELLIGENCE)])][chr(40)]%q<temp>[chr(41)],%q<temp>[chr(40)]%q<temp>[chr(41)])][space(2)][ljust(Strength,17,.)]%b[setq(temp,[u(#4079/FN.GET.STAT,%0,Attribute,Strength)])][if(hasattrval(%0,ATTRIBUTE`MOD`Strength),[sub(%q<temp>,[xget(%0,ATTRIBUTE`MOD`Strength)])][chr(40)]%q<temp>[chr(41)],%q<temp>[chr(40)]%q<temp>[chr(41)])][space(2)][ljust(Presence,17,.)]%b[setq(temp,[u(#4079/FN.GET.STAT,%0,Attribute,Presence)])][if(hasattrval(%0,ATTRIBUTE`MOD`Presence),[sub(%q<temp>,[xget(%0,ATTRIBUTE`MOD`Presence)])][chr(40)]%q<temp>[chr(41)],%q<temp>[chr(40)]%q<temp>[chr(41)])][space(5)]|%R|[space(1)][ljust(Wits,17,.)]%b[setq(temp,[u(#4079/FN.GET.STAT,%0,Attribute,Wits)])][if(hasattrval(%0,ATTRIBUTE`MOD`Wits),[sub(%q<temp>,[xget(%0,ATTRIBUTE`MOD`Wits)])][chr(40)]%q<temp>[chr(41)],%q<temp>[chr(40)]%q<temp>[chr(41)])][space(2)][ljust(Dexterity,17,.)]%b[setq(temp,[u(#4079/FN.GET.STAT,%0,Attribute,Dexterity)])][if(hasattrval(%0,ATTRIBUTE`MOD`Dexterity),[sub(%q<temp>,[xget(%0,ATTRIBUTE`MOD`Dexterity)])][chr(40)]%q<temp>[chr(41)],%q<temp>[chr(40)]%q<temp>[chr(41)])][space(2)][ljust(Manipulation,17,.)]%b[setq(temp,[u(#4079/FN.GET.STAT,%0,Attribute,Manipulation)])][if(hasattrval(%0,ATTRIBUTE`MOD`Manipulation),[sub(%q<temp>,[xget(%0,ATTRIBUTE`MOD`Manipulation)])][chr(40)]%q<temp>[chr(41)],%q<temp>[chr(40)]%q<temp>[chr(41)])][space(5)]|%R|[space(1)][ljust(Resolve,17,.)]%b[setq(temp,[u(#4079/FN.GET.STAT,%0,Attribute,Resolve)])][if(hasattrval(%0,ATTRIBUTE`MOD`Resolve),[sub(%q<temp>,[xget(%0,ATTRIBUTE`MOD`Resolve)])][chr(40)]%q<temp>[chr(41)],%q<temp>[chr(40)]%q<temp>[chr(41)])][space(2)][ljust(Stamina,17,.)]%b[setq(temp,[u(#4079/FN.GET.STAT,%0,Attribute,Stamina)])][if(hasattrval(%0,ATTRIBUTE`MOD`Stamina),[sub(%q<temp>,[xget(%0,ATTRIBUTE`MOD`Stamina)])][chr(40)]%q<temp>[chr(41)],%q<temp>[chr(40)]%q<temp>[chr(41)])][space(2)][ljust(Composure,17,.)]%b[setq(temp,[u(#4079/FN.GET.STAT,%0,Attribute,Composure)])][if(hasattrval(%0,ATTRIBUTE`MOD`Composure),[sub(%q<temp>,[xget(%0,ATTRIBUTE`MOD`Composure)])][chr(40)]%q<temp>[chr(41)],%q<temp>[chr(40)]%q<temp>[chr(41)])][space(5)]|
&DISPLAY.MERITS #4063=[header(Merits)]%R[u(FORMAT-3,%0,Merit)]
&FN`SPEC.ROW #4063=|%b[ljust(before(%0,~),24)][ljust(before(%1,~),24)][ljust(before(%2,~),24)][space(3)]|%R[iter(lnum(1,max(words(after(%0,~),:),words(after(%1,~),:),words(after(%2,~),:))),|[space(3)][if(t(extract(after(%0,~),inum(0),1,:)),[ljust(extract(after(%0,~),inum(0),1,:),24)],[space(24)])][if(t(extract(after(%1,~),inum(0),1,:)),[ljust(extract(after(%1,~),inum(0),1,:),24)],[space(24)])][if(t(extract(after(%2,~),inum(0),1,:)),[ljust(extract(after(%2,~),inum(0),1,:),24)],[space(24)])]%b|, ,%R)]
&FN`DISPLAY.SPECS #4063=[if(gt(strlen(itemize(%0,:)),69),[iter(%0,[if(gt(inum(%0),div(words(%0,:),2)),[setq(list2,[setunion(extract(%0,inum(0),1,:),:,:)])],[setq(list1,[setunion(extract(%0,inum(0),1,:),:,:)])])],:,)]|[space(6)][itemize(%q<list1>,:)][if(lt(setr(temp,strlen(itemize(%q<list1>,:))),69),[space(sub(69,%q<temp>))])]%b|%r|%b[itemize(%q<list2>,:)][if(lt(setr(temp,strlen(itemize(%q<list2>,:))),69),[space(sub(69,%q<temp>))])]%b|,|[space(6)][itemize(%0,:)][if(lt(setr(temp,strlen(itemize(%0,:))),69),[space(sub(69,%q<temp>))])]%b|)]
&FN`GET_MENTAL #4063=[iter(xget(%0,SKILL),[if(match(xget(#2821,LIST_MENTAL-SKILLS),before(%i0,~),|),[setq(mental,setunion(%q<mental>,%i0,|,|))])],|,)]
&FN`GET_PHYSICAL #4063=[iter(xget(%0,SKILL),[if(match(xget(#2821,LIST_PHYSICAL-SKILLS),before(%i0,~),|),[setq(physical,setunion(%q<physical>,%i0,|,|))])],|,)]
&FN`GET_SOCIAL #4063=[iter(xget(%0,SKILL),[if(match(xget(#2821,LIST_SOCIAL-SKILLS),before(%i0,~),|),[setq(social,setunion(%q<social>,%i0,|,|))])],|,)]
&FN`GET_MENTAL_SPECS #4063=[iter(xget(%0,SKILL.SPECS),[if(match(xget(#2821,LIST_MENTAL-SKILLS),before(%i0,~),|),[setq(mental,setunion(%q<mental>,%i0,|,|))])],|,)]
&FN`GET_PHYSICAL_SPECS #4063=[iter(xget(%0,SKILL.SPECS),[if(match(xget(#2821,LIST_PHYSICAL-SKILLS),before(%i0,~),|),[setq(physical,setunion(%q<physical>,%i0,|,|))])],|,)]
&FN`GET_SOCIAL_SPECS #4063=[iter(xget(%0,SKILL.SPECS),[if(match(xget(#2821,LIST_SOCIAL-SKILLS),before(%i0,~),|),[setq(social,setunion(%q<social>,%i0,|,|))])],|,)]
&DISPLAY.MORTALINFO #4063=|%b[ljust([ansi(hw,Concept:)]%b[xget(%0,PC_DATA`CONCEPT)],60)][ljust([ansi(hw,DoB:)]%b[xget(%0,PC_DATA`DOB)],14)]%b|%R|%b[ljust([ansi(hw,Virtue:)]%b[xget(%0,PC_DATA`VIRTUE)],37)][rjust([ansi(hw,Vice:)]%b[xget(%0,PC_DATA`VICE)],37)]%b|%R|%b[center([ansi(hw,EMAIL:)]%b[xget(%0,PC_DATA`EMAIL)],74)]%b|
&DISPLAY.GHOULINFO #4063=|%b[ljust([ansi(hw,Clan:)]%b[xget(%0,PC_DATA`CLAN)],37)][rjust([ansi(hw,Bloodline:)]%b[default(%0/PC_DATA`BLOODLINE,None)],37)]%b|%R|%b[ljust([ansi(hw,Covenant:)]%b[xget(%0,PC_DATA`COVENANT)],37)][rjust([ansi(hw,Concept:)]%b[xget(%0,PC_DATA`CONCEPT)],37)]%b|%R|%b[ljust([ansi(hw,DoB:)]%b[xget(%0,PC_DATA`DOB)],37)][rjust([ansi(hw,DoE:)]%b[xget(%0,PC_DATA`DATE_OF_EMBRACE)],37)]%b|%R|%b[ljust([ansi(hw,Virtue:)]%b[xget(%0,PC_DATA`VIRTUE)],37)][rjust([ansi(hw,Vice:)]%b[xget(%0,PC_DATA`VICE)],37)]%b|%R|%b[center([ansi(hw,EMAIL:)]%b[xget(%0,PC_DATA`EMAIL)],74)]%b|%R|%b[center([ansi(hw,Regnant:)]%b[xget(%0,PC_DATA`REGNANT)],74)]%b|
@@ General Use Universal Format Functions
&FORMAT-1 #4063=[iter(xget(%0,%1),[if(mod(inum(0),2),|%b)][ljust([ansi(hw,before(%i0,~))],37)][if(not(mod(inum(0),2)),%b|%R)],|,[space(0)])][if(mod(words(xget(%0,%1),|),2),[repeat(%b,38)]|%R)]
&FORMAT-2 #4063=[iter(xget(%0,%1),|%b[ljust([ansi(hw,extract(%i0,1,1,~))],68)][space(3)][rjust([ansi(hw,extract(%i0,2,1,~))],3)]%b|%R,|,[space(0)])][if(mod(words(xget(%0,%1),|),2),[repeat(%b,38)]|%R)]
&FORMAT-3 #4063=[iter(xget(%0,%1),|%b[ljust([ansi(hw,extract(%i0,1,1,~))],27)]%b[rjust([ansi(hw,extract(%i0,2,1,~))],1)]%b[if(t(setr(temp,[extract(%i0,3,1,~)])),[ljust([chr(40)][extract(%i0,3,1,~)][chr(41)],44)],[space(44)])]%b|,|,%R)]
@@ +Sorcery
@@ Notes: #3240 - BLOOD-SORCERY-<NAME> for description, THEMES`<THEME>`<LEVEL> for short descriptions
&CMD`SORCERY #4063=$+sorcery:@break [match(name(%#),*guest*)]={@pemit %#=[ansi(hr,SHEET:)]%bGuests can't use this command.};@assert [hasattrval(%#,blood-sorcery)]=@pemit %#=[ansi(hw,SORCERY:)]%bYou don't have any blood sorcery.;[setq(sorcery,[header([apostrophe_name(%#)] Sorcery)])][iter(xget(%#,blood-sorcery),[setq(sorcery,%q<sorcery>%r[header([extract(%i0,1,1,~)] - [extract(%i0,2,1,~)])])][iter(lnum(1,div(strlen(setr(temp,xget(#3240,BLOOD-SORCERY-[edit(extract(%i0,1,1,~),%b,-)]))),74)),[setq(sorcery,%q<sorcery>%R|%b[mid(%q<temp>,mul(74,sub(inum(0),1)),74)]%b|)], ,)][if(setr(temp2,remainder(strlen(%q<temp>),74)),[setq(sorcery,%q<sorcery>%R|%b[mid(%q<temp>,mul(74,div(strlen(%q<temp>),74)),%q<temp2>)][space(sub(74,%q<temp2>))]%b|)])][setq(sorcery,%q<sorcery>%R|%b[if(hasattrval(%#,[edit(extract(%i0,1,1,~),%b,-)]`KEYWORDS),[ljust([ansi(hw,You told us your sorcery was unique because...)],74)]%b|%R|%b[ljust([itemize(xget(%#,[edit(extract(%i0,1,1,~),%b,-)]`KEYWORDS),|)],74)],[ljust([ansi(hr,You really need to tell us the keywords for your sorcery.)],74)])]%b|)],|,)][setq(themes,[header(Sorcery Themes)])][iter(xget(%#,theme),[setq(themes,%q<themes>%R|%b[ljust([ansi(hw,[extract(%i0,1,1,~)])],13)]%b[extract(%i0,2,1,~)]%b[chr(40)][ljust([xget(#3240,THEMES`[extract(%i0,1,1,~)]`[extract(%i0,2,1,~)])],56)][chr(41)]%b|)],|,)][setq(rits,[header(Rituals)])][iter(xget(%#,Ritual),[setq(rits,%q<rits>%R|%b[ljust(extract(%i0,1,1,~),74)]%b|)],|,)];@pemit %#=%q<sorcery>%R%q<rits>%R%q<themes>%R[footer(See +theme <theme> for more information)]
&CMD`THEME #4063=$+theme *:@break [match(name(%#),*guest*)]={@pemit %#=[ansi(hr,SHEET:)]%bGuests can't use this command.};@assert [hasattrval(%#,blood-sorcery)]=@pemit %#=[ansi(hw,SORCERY:)]%bYou don't have any blood sorcery.;@assert [match(Transmutation Creation Destruction Divination Protection,%0)]=@pemit %#=[ansi(hw,SORCERY:)]%bNot a valid theme.;@assert [u(#4079/FN.GET.STAT,%#,Theme,%0)]=@pemit %#=[ansi(hw,SORCERY:)]%bYou have no levels in that theme!;@pemit %#=[header([capstr(%0)])]%R[iter(lnum(1,[u(#4079/FN.GET.STAT,%#,Theme,%0)]),|%b[inum(0)].%b[ljust([xget(#3240,THEMES`%0`[inum(0)])],71)]%b|, ,%R)]%R[footer()]
&CMD`SET_KEYWORDS #4063=$+keywords */*=*/*/*:@assert [isstaff(%#)];@assert [pmatch(%0)]=@pemit %#=Couldn't match %0 to a player.;@assert [match(xget(#2821,LIST_BLOOD-SORCERY),%1*,|)]=@pemit %#=%1 doesn't match a blood sorcery. Double check +stat/list blood-sorcery.;[attrib_set([pmatch(%0)]/[edit(%1,%b,-)]`KEYWORDS,%2|%3|%4)];@set [pmatch(%0)]/[edit(%1,%b,-)]=mortal_dark;@pemit %#=Set Keywords for [name(pmatch(%0))] %1
&CMD`SORCERY_OTHERS #4063=$+sorcery *:@assert [isstaff(%#)];@assert [pmatch(%0)]=@pemit %#=%0 doesn't match a planet.;@assert [hasattrval(pmatch(%0),blood-sorcery)]=@pemit %#=[ansi(hw,SORCERY:)]%bYou don't have any blood sorcery.;[setq(sorcery,[header([apostrophe_name(pmatch(%0))] Sorcery)])][iter(xget(pmatch(%0),blood-sorcery),[setq(sorcery,%q<sorcery>%r[header([extract(%i0,1,1,~)] - [extract(%i0,2,1,~)])])][iter(lnum(1,div(strlen(setr(temp,xget(#3240,BLOOD-SORCERY-[edit(extract(%i0,1,1,~),%b,-)]))),74)),[setq(sorcery,%q<sorcery>%R|%b[mid(%q<temp>,mul(74,sub(inum(0),1)),74)]%b|)], ,)][if(setr(temp2,remainder(strlen(%q<temp>),74)),[setq(sorcery,%q<sorcery>%R|%b[mid(%q<temp>,mul(74,div(strlen(%q<temp>),74)),%q<temp2>)][space(sub(74,%q<temp2>))]%b|)])][setq(sorcery,%q<sorcery>%R|%b[if(hasattrval(pmatch(%0),[edit(extract(%i0,1,1,~),%b,-)]`KEYWORDS),[ljust([ansi(hw,You told us your sorcery was unique because...)],74)]%b|%R|%b[ljust([itemize(xget(pmatch(%0),[edit(extract(%i0,1,1,~),%b,-)]`KEYWORDS),|)],74)],[ljust([ansi(hr,You really need to tell us the keywords for your sorcery.)],74)])]%b|)],|,)][setq(themes,[header(Sorcery Themes)])][iter(xget(pmatch(%0),theme),[setq(themes,%q<themes>%R|%b[ljust([ansi(hw,[extract(%i0,1,1,~)])],13)]%b[extract(%i0,2,1,~)]%b[chr(40)][ljust([xget(#3240,THEMES`[extract(%i0,1,1,~)]`[extract(%i0,2,1,~)])],56)][chr(41)]%b|)],|,)][setq(rits,[header(Rituals)])][iter(xget(pmatch(%0),Ritual),[setq(rits,%q<rits>%R|%b[ljust(extract(%i0,1,1,~),74)]%b|)],|,)];@pemit %#=%q<sorcery>%R%q<rits>%R%q<themes>%R[footer(See +theme <theme> for more information)]
@@ +Styles
&CMD`STYLE #4063=$+style:@break [match(name(%#),*guest*)]={@pemit %#=[ansi(hr,SHEET:)]%bGuests can't use this command.};@assert [hasattrval(%#,Style)]=@pemit %#=[ansi(hw,STYLE:)]%bYou don't have any fighting styles.;[setq(style,[header(Styles)])][iter(xget(%#,style),[setq(style,%q<style>%R|%b[ljust([extract(%i0,1,1,~)] - [repeat(o,extract(%i0,2,1,~))],74)]%b|)][iter(xget(%#,[edit([extract(%i0,1,1,~)],%b,-)]`MAN),[setq(style,%q<style>%R|%b[space(4)][ljust(%i0,70)]%b|)],|,)],|,)];@pemit %#=%q<style>%R[footer()]
&CMD`STYLE_OTHERS #4063=$+style *:@assert [isstaff(%#)];@assert [pmatch(%0)]=@pemit %#=%0 didn't match a player;@assert [hasattrval(pmatch(%0),Style)]=@pemit %#=[ansi(hw,STYLE:)]%bYou don't have any fighting styles.;[setq(style,[header(Styles)])][iter(xget(pmatch(%0),style),[setq(style,%q<style>%R|%b[ljust([extract(%i0,1,1,~)] - [repeat(o,extract(%i0,2,1,~))],74)]%b|)][iter(xget(pmatch(%0),[edit([extract(%i0,1,1,~)],%b,-)]`MAN),[setq(style,%q<style>%R|%b[space(4)][ljust(%i0,70)]%b|)],|,)],|,)];@pemit %#=%q<style>%R[footer()]
&CMD`ADD_MAN #4063=$+style/man */*=*:@assert [isstaff(%#)];@assert [pmatch(%0)]=@pemit %#=Didn't match a player to %0;@assert [match(xget(#2821,LIST_STYLE),%1*,|)]=@pemit %#=%1 doesn't match a style;[attrib_set(pmatch(%0)/[edit(%1,%b,-)]`MAN,[if(hasattrval(pmatch(%0),[edit(%1,%b,-)]`MAN),[xget(pmatch(%0),[edit(%1,%b,-)]`MAN)]|%2,%2)])];@set [pmatch(%0)]/[edit(%1,%b,-)]=mortal_dark;@pemit %#=Added %2 to [name(pmatch(%0))]'s %1 maneuvers
&CMD`EDIT_MAN #4063=$+style/edit */*=*/*:@assert [isstaff(%#)];@assert [pmatch(%0)]=@pemit %#=Didn't match a player to %0;@assert [match(xget(#2821,LIST_STYLE),%1*,|)]=@pemit %#=%1 doesn't match a style;@assert [lte(%2,words(xget(pmatch(%0),[edit(%1,%b,-)]`MAN),|))]=@pemit %#=[name(pmatch(%0))] doesn't have that many maneuvers.;[attrib_set([pmatch(%0)]/[edit(%1,%b,-)]`MAN,[replace(xget([pmatch(%0)],[edit(%1,%b,-)]`MAN),%2,%3,|)])];@pemit %#=Replaced [apostrophe_name(pmatch(%0))] Maneuver in slot %2 for %1 with %3.
&CMD`REM_MAN #4063=$+style/rem */*=*:@assert [isstaff(%#)];@assert [pmatch(%0)]=@pemit %#=Didn't match a player to %0;@assert [match(xget(#2821,LIST_STYLE),%1*,|)]=@pemit %#=%1 doesn't match a style;@assert [lte(%2,words(xget(pmatch(%0),[edit(%1,%b,-)]`MAN),|))]=@pemit %#=[name(pmatch(%0))] doesn't have that many maneuvers.;[attrib_set([pmatch(%0)]/[edit(%1,%b,-)]`MAN,[ldelete(xget([pmatch(%0)],[edit(%1,%b,-)]`MAN),%2,|)])];@pemit %#=Removed [apostrophe_name(pmatch(%0))] Maneuver in slot %2 for %1.