Command |
Definition |
!abyssratio
|
.echo $(let (x (- (!lm ${1:-.} !ak $* banished fmt:"${n}") (!lg ${1:-.} !ak $* abyss fmt:"${n}")) y (!lm ${1:-.} !ak $* banished fmt:"${n}")) "$(name_fixup ${1:-.}) $(if $* "("$*") ")has survived banishment $x of $y times: $(int (* 100 (/ (float $x) $y)))%")
For each time you were banished checks whether you died in Abyss in that game or not. Shows ratio.
|
!abyssturns
|
.echo $(let (t (map int (split ' ' (=abyssturns.tripturns ${1:-.} $*)))) (name_fixup ${1:-.})" "(if $* "("$*") ")"has "(length $t)" round trips to the Abyss, Shortest abyss trip: "(foldr min (car $t) $t)" turns, Longest abyss trip: "(foldr max (car $t) $t)" turns, Average abyss trip: "(int (/ (apply ${+} $t) (float (length $t))))" turns.")
Could be incorrect if you have crashes in abyss, play multiple games simultaneously, or are a dev. Try adding 'recent' if it is timing out/crashing/giving incorrect results. e.g. !abyssturns . recent
|
!ac
|
.echo $(/ (int (+ 0.5 (* 100 (/ 22.0 $1)))) 100.0) armour skill per 1 AC for $1 base AC
Usage: !ac <base AC>, tells you how much armour skill per AC
|
!acbonus
|
.echo $(int (* $1 (/ $2 22.0)))
Usage: !acbonus <base AC> <armour skill>
|
!aclevels
|
.echo $(if (<= $1 0) "$bot casts a spell. $user is cast into the abyss!" "Armour skill breakpoints for $1 base armour: $(let (ac (!skillperac $1)) (join ", " (map (fn (n) (/ (int (* $n (* 100 $ac))) 100.0)) (range 1 (/ 27 $ac)))))")
Given the total of your *base* armour, gives the armour skill breakpoints to get another point of AC. Breakpoints are approximate so train a little extra to be sure. Try: !aclevels 7
|
!aevp
|
.echo ER=$1, str=$2, armour skill=$3 : -$(int (/ (* (/ (* (/ 2 5.0) (** $1 2)) (+ $2 3)) (- 45 $3)) 45.0)) EV
Usage: !aevp <ER> <str> <armour skill>. Returns the aevp (armour EV penalty)
|
!aptstrength
|
.echo $(sprintf "Aptitude $1 skills require %.0f%% as much experience as a skill with aptitude 0." (* (** 2 (* -1 (/ $1 4.0))) 100))
Give it an aptitude and it will tell you how much that skill costs to train relative to an apt0 skill. Try !aptstrength 3
|
!armourdodgepenalty
|
.echo $(let (size (- 1 (/ (=evbonus.sizefactor $(lower $1)) -8.0)) er $2 str $3) "Size Factor:$size, ER:$er, str:$str : -$(int (max 0 (* (- (* $er $size) 3) (/ 10.0 $str)))) EV")
Usage: !armourdodgepenalty <species abbrev> <ER> <strength>. Calculates the penalty from armour to the EV bonus from dodging skill. e.g. !armourdodgepenalty Mi 20 18
|
!beem
|
!learn q beem
Type !beem for beem help.
|
!browse
|
.echo https://loom.shalott.org/learndb.html#$(ldb-canonical-term $*)
Link a learn database entry for easy reading in a web browser. Try !browse coffin
|
!cerebot
|
!learn q cerebot
Type `!help` or `!cerebot` for help with Cerebot. For help with Sequell, type `!sequellhelp`.
|
!cmdhelp
|
!help $*
An alias to !help to work around Cerebot's overriding of !help. It gives you information about a command. Try: !cmdhelp !crystalball
|
!combowinrates
|
!lg * $* s=char recentishish year !boring !bot o=% fmt:"${.} ${n_ratio}" title:"Winrates for combos with at least 15 winners this year$(argst $*)" x=count(name) / won ?: count(name)>=15
Winrates for "active" combos - combos in recentishish versions in the past 365 days with at least 15 winning accounts. Try !combowinrates or !combowinrates naga !t-all
|
!commit
|
!commitby ${nick} ${*}
Thanks to innovative new AI, Sequell can parse your request and code up a commit to make any desired change to Crawl! Isn't it great?
|
!crystalball
|
.echo $(name_fixup ${1:-.}) $(let* (lm (split | (=rip.lm $1 $*)) game (split | (!rg * $(=rip.opts) xl>=$lm[2] xl<=$(* 1.5 $lm[2]) absdepth>$lm[6] fmt:"$vmsg|$place|$sc|$turn|$dur|$xl"))) (ripformat $lm[0] $lm[1] $game[5] $lm[3] $game[0] $game[1] $game[2] $game[3] $game[4]))
A command that uses the cursed vision of Ashenzari to peer into the future and foretell your certain doom!
|
!csdc
|
.echo $(let (wk (=csdcwk $1)) $(let (n (!lg csdc $wk $* won fmt:"${n}" stub:"0")) (if (> $n 5) "$n wins for csdc $wk$(if $* " " "")$*" (=wins csdc $wk $*)))" || $(=games csdc $wk $*)")
Give an overview of the current {csdc} week.
|
!csdcgod
|
!lm csdc $(=csdcwk $1) god.worship s=god
Give the gods used for the current {csdc} week.
|
!csdclive
|
!lm csdc csdcwk alive name!=$nick x=src title:"" fmt:'$(=time_since_milestone @csdc csdcwk alive name!=$nick) ago on [${src}]( $(&watch ${name}) ): ${name} the ${char}^$(=godshortname ${god}) ${milestone}'
Gives the latest {csdc} milestone with a watch link.
|
!dam
|
.echo $(let (l (length (re-replace '[^!]' '' $*))) (if (> $l 1) (+ 1 (=maxdam $(- $l 1)))" - "(=maxdam $l) (if (= $l 1) "7.0 - 17.0" "0.0 - 7.0")))
Calculates damage for a supplied hit message. Syntax: !dam Message_ending_in_exclamation_marks!!!
|
!dcss-stats
|
.echo https://dcss-stats.com/players/${1:-$nick}
Links to your https://dcss-stats.com/ stats page.
|
!decentchar
|
!oneandwonchar
Randomly picks a char you have never played, weighted by recent wins
|
!dodgebonus
|
.echo $(let (size (=evbonus.sizefactor $(lower $1)) dex (min $2 (+ 14 (log2 (** (+ 1 (/ (- $2 14) 10.0)) 10)))) dodge $3) "Size Factor:$size, Eff dex:$dex, Dodging:$dodge : +$(int (/ (+ 7 (* $dodge $dex)) (- 20.0 $size))) EV")
Usage: !dodgebonus <species abbrev> <dex> <dodging>. Calculates the EV bonus from dodging skill. e.g. !dodgebonus Mi 29 10
|
!dream
|
!lm ${1:-*} verb=dreamshard oktv -tv $*
Queues up a recording of a milestone where the player broke the dreamshard. Try !dream * recent oktv -random
|
!dreamsaved
|
!lm ${1:-.} cv>=0.31-a dreamshard !cat $* / ((won || ${lg:turns>=turns+100})) title:"Dreamshard savior% for $(name_fixup ${1:-.})$(argst $*)"
Percentage of times the dreamshard shattered but the player survived at least 100 more turns. Excludes felids for cheating. Try !dreamsaved * recent s=br
|
!dursummary
|
.echo $(let* (info (split (!lg ${1:-.} $* x=gid,char,ktype,dur notitle fmt:'${x[0]} ${x[1]} ${x[2]} ${x[3]}')) out (!lm * gid=$(nth 0 $info) !portal !arena !crucible br.enter|rune|orb|god.worship s=noun x=-min(dur) fmtsimple title:"Summary for $(nth 0 $info) $(nth 1 $info)" stub:"N/A")) $(if (= 'N/A' $out) "No games found for $(name_fixup ${1:-.})$(argst $*)" "$out, $(nth 2 $info) [$(nth 3 $info)]"))
Shows the order and duration of various important milestones for a single game. Usage: !dursummary <lg args for the game>. Try !dursummary !bot t won min(dur) or !dursummary !bot recent urune=15 min(dur) -2
|
!dursummery
|
!dursummary
see {!help:!dursummary}
|
!ev
|
.echo This command used incorrect/old formulas. If you want to try to fix the command, the old version is in !ev.wrong.
Usage: !ev <species abbrev> <str> <dex> <ER> <dodging> <armour>. e.g. !ev Mi 20 20 18 15 15
|
!firstgameafter
|
.echo $(ignore $1)$(- (!lg * $* x=cdist(name) fmt:"$x") (!lg * $* cv<$1 x=cdist(name) fmt:"$x"))
Shows how many people started playing online on a specified or newer version of Crawl. Syntax: !firstgameafter version
|
!gemmed
|
!lg * vmsg=~"11 gems (all intact)" s=name title:"Players who really gemmed it$(argst $*)" stub:"No all-gem winners$(argst $*)" $*
Lists players that obtained all gems without shattering any.
|
!gemratio
|
.echo $(let* (ends (!lm ${2:-.} $* br=$1 br.end fmt:"${n}" notitle stub:'0') gems $(intactgems ${2:-.} "br=$1 $*") intact (nth 0 $gems) found (nth 1 $gems) lost (nth 2 $gems)) (if $1 (sprintf "$intact intact gems ($found found, $lost lost) out of $ends $1 branch endings ($(if $(= $(int $ends) 0) 🤷 %0.2f)%%) $(name_fixup [${2:-.})$(argst $*)]" (/ (* $intact 100) (float $ends))) $(!help gemratio)))
Ratio of unshattered gems to br.end milestones for the given branch. Syntax: !gemratio <branch name> [player selector] [lm filters]. Try: !gemratio vaults or !gemratio snake * t
|
!generate-nchoice
|
.echo $(let* (all (map split (split '|' (!lg * $* !experimental !nchoice playable s=-char notitle stub:"N/A" fmt:'$(re-replace "^(\d+).*" "$1" ${n_x}) ${.}' join:'|' / won))) min (int (car (nth 149 $all))) elig (map (fn (x) (nth 1 $x)) (filter (fn (x) (<= (int (nth 0 $x)) $min)) $all))) "$(length $elig) combos with <=$min wins$(argst $*): $(join '|' (sort $elig))")
Approximated, more automated way of choosing initial nchoice combos. It picks at least 140 combos with the fewest wins + all combos with the same number of wins as the 140th.
|
!goodchar
|
!rg * recent playable won $* fmt:"The RNG chooses: $char"
Will randomly pick a char weighted by number of recent wins
|
!greatchar
|
!rg * playable won crace!=$(!lg ${1:-.} won s=char join:"|" fmt:'$(combo_to_race ${.})' stub:"") class!=$(!lg ${1:-.} won s=char join:"|" fmt:'$(combo_to_class ${.})' stub:"") $* fmt:"The RNG chooses: $char" stub:"${1:-.} is already a great(er)player!"
Will randomly pick a char with a race and class you have not won yet, weighted by number of recent wins
|
!greateroneandwon
|
!lg * playable:job role!=$(!lg * won s=char / gid=$(=oneandwongids $*) fmt:'$(combo_to_class ${.})' join:"|" stub:"" ?: %!=0) title:"non-oneandwon roles for $(name_fixup $*)" stub:"$(name_fixup $*) is a greateroneandwoner" s=role fmt:"${.}"
Show remaining classes to win through a oneandwon containing that class.
|
!greatoneandwon
|
!lg * playable:sp !experimental crace!=Barachian crace!=$(!lg * won playable:sp !experimental s=char / gid=$(=oneandwongids $*) fmt:'$(combo_to_race ${.})' join:"|" stub:"" ?: %!=0) title:"non-oneandwon races for $(name_fixup $*)" stub:"$(name_fixup $*) is a greatoneandwoner" s=crace fmt:"${.}"
Show remaining species to win through a oneandwon containing that species.
|
!greatprogress
|
.echo $(=greatprogress.species $*) | $(=greatprogress.role $*)
Shows how many combos you have to win to get !greatrace/!greatrole for each species/background respectively.
|
!greattodo
|
!rng $(re-replace ',' '' $(re-replace '\b ' '_' $(re-replace '.*: ' ' ' $(!greatplayer ${*:-.}))))
Chooses at random one of unwon species for a specified nickname.
|
!grunttv
|
!tv * ntv=0 xl>20 kmap~~grunt|map~~grunt
Shows tv of some poor soul who died in a vault or on a map designed by Grunt.
|
!hilarious
|
=eval_rand_entry hilarious_deaths 2
Shows a random entry from ??hilarious_deaths.
|
!hoursperwin
|
.echo $(let* (name (name_fixup ${1:-.}) duration (!lg ${1:-.} $* x=sum(dur) notitle fmt:'$x') wins (!lg ${1:-.} $* won notitle fmt:'${n}') avg (/ (/ (float (pduration $duration)) $wins) 3600)) (if (> $wins 0) (sprintf "Total playtime divided by wins for $name$(argst $*): %1.2f hours/win" $avg) "No wins for $name$(argst $*)... yet!"))
Hours played divided by number of wins. How long it takes you to get a win on average. Try !hoursperwin . recent
|
!hp
|
.echo $(if $* (let* (t (split " " $*) apt (nth 1 (split "=" (!apt $t[0] HP))) xl $t[1] f $t[2]) "HP apt: "$apt", XL: "$xl", Fighting: "$f" => MHP = "$(int (* (+ (int (* 5.5 $xl)) 8 (int (* $xl (/ $f 14.0))) (int (/ (+ 1 (* 3 $f)) 2.0))) (+ 1 (/ $apt 10.0))))) "Usage: !hp [species] [XL] [Fighting]")
Usage: !hp [species] [XL] [Fighting]. Calculate the maximum HP for a character with a given species, experience level, and Fighting skill.
|
!intactgems
|
!lg ${1:-.} won vmsg~~'\d+ gems? \((?:\w+ )?intact!?\)' s=int(regexp_replace(regexp_replace(regexp_replace(regexp_replace(vmsg, '.*and (\d+) gems? \(intact!?\).*', '1'), '.*and (\d+) gems? \(both intact!?\).*', '2'), '.*and (\d+) gems? \(all intact!?\).*', "\1"), '.*and \d+ gems? \((\w+) intact!?\).*', "\1")) o=-. title:"Intact gem wins for $(name_fixup ${1:-.})$(argst $*)" stub:"No gem wins for $(name_fixup ${1:-.})$(argst $*)" $*
Lists intact gems obtained during winning games for the selected player(s). Only includes games that have some gems ("0" means all their gems shattered).
|
!isonline
|
.echo $(=time_since_milestone $*) since last activity ($(replace . $nick $*))
Shows time since the last milestone satisfying a supplied condition. Syntax: !isonline <!lm_condition> | Examples: !isonline <servername> | !isonline @nickname
|
!karmicbalance
|
.echo "The Karmic Balance of Crawl to-date: Violence win% $(!violentwinning $*) .vs. nonviolence win% $(!nonviolentwinning $*)"
This command displays the win rates of violent religions vs. nonviolent religions for the Crawl player base as a whole
|
!killratio
|
.echo $(let (target $(=target ${2:-*})$(replace " ()" '' " ($*)") ratio $(=killratio.calc $(!lg ${2:-*} $* ikiller=$1 fmt:"${n}" stub:"0") $(!lm ${2:-*} $* uniq=$1 fmt:"${n}" stub:"0"))) $(if $(= $ratio NaN) "No battles for $1"$(if $(/= $target *) " and $target"). "$1 wins $ratio% of battles"$(if $(/= $target *) " against $target").))
Displays the number of player deaths/number of unique deaths. Only works for uniques!
|
!last
|
!won ${2:-.} $* rend>=$(!lg ${2:-.} $* fmt:"${rend}" -${1:-100})
Usage: !last <number> <player> <other args>, shows wins in the last x games played. e.g. !last 50 . Be
|
!last10
|
!lg * $* won s=-end x=max(end),max(name),max(char) fmt:'${x[1]} (${x[2]})' rend>=$(!lg * $* won -10 fmt:"$end") title:"last 10 wins $(if $* "for $* " " ")are"
This command shows the last 10 games won on any public server(s)
|
!lastgames
|
!lg ${1:-.} $(split " " $*) x=xl,char,god,ckiller -count:10 fmt:'L${x[0]} ${x[1]}^$(=godshortname ${x[2]}) (${x[3]})' title:"Last 10 games for $(name_fixup $1)" stub:"No games for $(name_fixup $1)"
Shows information about the last 10 games you played (or played by the person in the command argument)
|
!lgm
|
!lg $* $(thismonth)
Like !lg, but only looks at games played this month.
|
!lgt
|
!lg $* $(today)
Like !lg, but only looks at games played today.
|
!listmax
|
!lg $1 title:"$(name_fixup $1): max $2 for $3, show $4 ($*)" $* (($(!lg $1 $* s=$3 x=max\($2\) join:"||" fmt:"$3=${.} $2=${x}"))) s=$3,$2,$4 pfmt:"${.} ${child}"
Usage: !listmax <nick> <X> <Y> <Z> <other opts>. Lists games for <nick> by Y, maximising X and showing Z. e.g. !listmax mfc xl name place HuWn
|
!lowhptv
|
!lm * ((tiles || nothuge)) ((cln end>=20130626 || !cln)) !csn abyss.exit|abyss.enter|br.enter|br.exit|br.end|zig.enter|zig.exit|unique|uniq.ban|uniq.pac|ghost|ghost.ban|ghost.pac|orb|rune xl>=16 hp<20 $* min=ntv -tv
Uniques and ghosts killed/pacified/banished, abysses/ziggurats/branches exited and entered, runes and orbs grabbed, all when the person viewed has less than 20 hp and is xl 16 or higher. Examples: !lowhptv, !lowhptv recent, !lowhptv recent -random
|
!mediandur
|
.echo $(let* (times (split '|' $(!lg * $* s=name x=median(dur) o=median(dur) fmt:'$x' notitle join:'|' stub:'N/A')) median (if (= $times 'N/A') "N/A" (elt (/ (length $times) 2) $times))) "Median game duration of the median player$(argst $*): $median")
The median game duration of the median player. A reasonable indicator of how long a game typically lasts. Try !mediandur * recent won urune=3
|
!moralvictory
|
.echo "$(!evilvictory $*) . . . $(!goodvictory $*) . . . $(!pietytracker $*)"
This command outputs a player's winning tendencies when following "good" religions vs. "evil" religions
|
!nevertried
|
.echo $(let (r (apply nevertried $*)) (if (= 0 (length $r)) "All of those combos have been tried" (concat "Combo: " (join " " $r))))
lists char + god combos which have never been tried before in the history of crawl!
|
!neverwon
|
.echo $(let (r (apply neverwonsorted $*)) (if (= 0 (length $r)) "All of those combos have been won" (concat "Combo (number of attempts): " (join " " $r))))
lists char + god combos which have never been won, along with the number of times they have been attempted.
|
!next
|
.echo $(let* (p ${1:-${user}} c (last_win $p) e (entry ~${p}_next 1) needcombo (or (= '' $e) (has_won $p $e))) (if (= $c XXXX) "Get your first win first, ${p}!" (if (and (= $channel msg) $needcombo) "Run this command in a public IRC channel to choose your next combo." "The RNG declares that $p shall win $(if $needcombo (=newnext $p) $e) next.")))
Gives you a combo that you haven't won yet. Will remember your current combo and only change when you win it; only available for players who have already won. See !help !next-pref and !help !next-cheat for other options.
|
!next-cheat
|
.echo $(no_pm (do (if (= 0 (entrylength ~${user}_next)) "" (ldb-rm! ~${user}_next 1)) (!next)))
Rerolls your current !next combo. Cheating!
|
!next-pref
|
.echo $(no_pm (do (if (= 0 (entrylength ~${user}_pref)) (ldb-add ~${user}_pref 1 "$*") (ldb-set! ~${user}_pref 1 "$*")) "New !next preferences for ${user}: ${*}."))$(ignore (concat $*))
Sets restrictions on what combos !next will give you, e.g. "!next-pref --en !mu--" to receive a random non-mummy enchanter you haven't won yet. Use !next-pref-append to add new restrictions on at the end of your current prefs.
|
!nonaut
|
.echo $(let* (name (name_fixup ${1:-.}) autsec (split (!lg ${1:-.} x=sum(aut),sum(dur) notitle fmt:"${x[0]} ${x[1]}" $*)) aut (float (elt 0 $autsec)) secs (pduration (elt 1 $autsec))) (sprintf "There are %1.2f non-arbitrary units of time per second for $name$(argst $*)." (/ $aut $secs)))
Find out how much real-life time the average aut is for the selected games. Try !nonaut . recent
|
!nowin
|
.echo $(if (>= $(!lg ${1:-.} win fmt:"$n" stub:"0") 1) $(!lg ${1:-.} $* !boring !win rstart>$(!lg ${1:-.} win fmt:"$start" stub:"0") fmt:"$name has not won for $n games since their last win." stub:"$name has won their last game.") "${1:-.} has not won yet.")
<nickname> [options ...]
|
!oneandwon
|
.echo $(let (l (length (split , (!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=char x=min(rstart) fmt:"${x[0]}" join:"|") won s=char stub:"")))) (!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=char x=min(rstart) fmt:"${x[0]}" join:"|") won s=char title:"$l chars won first try for $name" stub:"No chars won on first try for $name"))
Show combos won on the first attempt of that combo.
|
!orbruntombtv
|
.echo $(let (name $1 tomb_array (orb_run_tombs_array_for $1)) $(let (channel $(if $(= $name ".") $nick $name) chars (map $(fn (x) $(nth 3 $x)) $tomb_array)) $(if $(> (length $tomb_array) 0) $(!lg $name gid=$(nth 1 (car $tomb_array)) -tv:<T$(nth 0 (car $tomb_array)):>>:channel=$channel))))
Plays the last successful orbruntomb by a player on its own channel. Currently there isn't a way to play previous orb run tombs using this command. Example: !orbruntombtv lainiw
|
!orbsplat
|
!lm ${*:-*} orb !won -game
Plays splats that happened after the orb was picked up. Examples: !orbsplat, !orbsplat recent, !orbsplat recent unwatched max=sc
|
!order
|
.echo $(ignore $1)$(let (verb $1 query $*) (let (gid (exec (concat $query ' fmt:"$game_key" stub:"XXX"'))) (if (= $gid XXX) "No games found ($query)" (!lm * gid=$gid verb=$verb s=-turn,milestone x=max(noun),max(turn) o=-max(turn) pfmt:"${child}" fmt:"$x[0]" title:"$verb order \($query\)" stub:"$verb order \($query\): no ${verb} milestones"))))
Shows the order of milestones from a certain game. Syntax: !order <milestone_condition> !lm <game> Example: !order rune !lm * won
|
!ouchtv
|
!lg * !won !boring ((tiles || !@hugeterm)) ((cln end>=20130626 || !cln)) !csn recent ${*:-xl>=8} max=sc dam>${mhp/2} ntv=0 -tv
Plays splats that really hurt. Examples: !ouchtv, !ouchtv cv=0.13-a
|
!owned
|
!lg ${1:-.} $* x=tdam,mhp tdam>=${mhp} tdam>70 !((ak place=abyss xl<5)) stub:"$name hasn't been owned by Crawl yet. $name should play some more ;)"
Games in which the player lost all of their hp in a single turn. The damage must be greater than 70 and low level AKs in abyss don't count. Try: !owned or !owned * recent
|
!panname
|
!lg * ikiller~~pandemonium_lord x=ikiller -random fmt:'$(re-replace "^ikiller=(.*) the pandemonium lord" $1 $x)'
A random panlord name. Chosen from panlords that killed a player and have thus immortalized themselves in this command. Try !panname
|
!polymorphtv
|
!lm * uniq~~shaped min=ntv -tv
Various kills of polymorphed TRJ or Lenny
|
!popularchar
|
.echo $(let* (allchars (split ", " (!lg * $* recent won playable s=char !nchoice-all notitle stub:"N/A" fmtsimple)) popular (sub 0 (max 1 (/ (length $allchars) 3)) $allchars)) (if (= "N/A" (car $popular)) "No combos found$(argst $*)!" "For $user the RNG selects a popular character$(argst $*): $(nth (rand (length $popular)) $popular)"))
Selects a random character combo from the top third of the most won playable combos in "recent" versions, excluding nemelex choice wins during tournaments. Try "!popularchar" or "!popularchar gn"
|
!pyrrhic
|
!lg ${1:-*} gid=$(!lm ${1:-*} uniq|rune|orb|ghost !won ${lg:turn-turn}<=3 $* fmt:'$x[0]' x=gid stub:'') stub:"No games lost within 3 turns of killing a ghost/unique or getting an orb/rune for $(name_fixup ${1:-*})$(argst $*)"
Plays splats that occured close to an important milestone. Examples: !pyrrhic, !pyrrhic recent unwatched max=sc
|
!qwstats
|
.echo $(let (l (split ' ' (=qw $*))) (join ' ' (list (per (nth 1 $l) (nth 0 $l)) (per (nth 2 $l) (nth 1 $l)) (per (nth 3 $l) (nth 2 $l)) (per (nth 4 $l) (nth 3 $l)) (per (nth 5 $l) (nth 4 $l)) (per (nth 6 $l) (nth 5 $l)) (per (nth 7 $l) (nth 6 $l)) (per (nth 8 $l) (nth 7 $l)) (per (nth 9 $l) (nth 8 $l)))))
percentages for start -> enter Lair -> exit Lair -> first rune -> enter Depths -> exit Depths -> enter Zot -> Zot:5 -> orb -> win.
|
!randnevertried
|
.echo $(let (r (apply randnevertried $*)) (if (= 0 (length $r)) "All of those combos have been tried" (concat "Combo: " (join " " $r))))
picks a random char + god combo which has never been tried before!
|
!randneverwon
|
.echo $(let (r (apply randneverwon $*)) (if (= 0 (length $r)) "All of those combos have been tried" (concat "Combo (number of attempts): " (join " " $r))))
picks a random char + god combo which has never been won before, along with the number of times it has been attempted. Will probably time out unless you specify race or class. See also: !help !randnevertried
|
!recent
|
!lg * won s=name recent
This command lists players sorted by most recent wins for a chosen religion, species or profession. For Example: '!recent ely' '!recent ee' or '!recent gr'
|
!recentwinrates
|
!lg * recentishish year title:"High winrate players this year$(argst $*) (winrate wins name)" fmt:'${n_ratio} $(re-replace "^(\d+).*" $1 ${n_x}) ${.}' $* s=name o=% / won ?: N>11
Top winrates in the last year on modern versions (up to 3 versions behind stable). Listed players need 12+ wins under those conditions to be eligible!
|
!recentwins
|
!lg * won s=name recent
This command lists players sorted by most recent wins for a chosen religion, species or profession. For Example: '!recentwins ely' '!recentwins ee' or '!recentwins gr'
|
!rg
|
!lg ${*:-.} -random
Like !lg, but picks a random game fuifilling the given criteria.
|
!ryposchoice
|
.echo $(let* (all (map split (split '|' (!lg * !nchoice playable s=-char notitle stub:"N/A" fmt:'$(re-replace "^(\d+).*" "$1" ${n_x}) ${.}' join:'|' / $* recentishish won))) min (int (nth 0 (nth 139 $all))) elig (map (fn (x) (nth 1 $x)) (filter (fn (x) (<= (int (nth 0 $x)) $min)) $all))) "$(length $elig) combos with <=$min recentishish wins: $(sort $elig)")
A suggested nchoice combo generation method that measures only recentishish wins and picks at least 140 combos + all combos with the same number of recentishish wins. Hopefully it biases recently added species/backgrounds less.
|
!score
|
.echo Approx score for $1 runes in $2 turns: $(* 100000 (int (/ (+ 254000 (* $1 (+ $1 12) 1000) (* 2000 $1) (/ (* 6250000000 $1 $1) $2) 800000) 100000)))
Usage: !score <runes> <turns>
|
!selfown
|
!lg ${1:-.} selfown $*
Like !lg but filtering for player deaths caused by the player (mostly miscasts, ally kills, teleporting in front of your OoD and projectile reflections). Try !selfown * week s=ckaux
|
!send
|
.echo Sending $(ignore $1)$* to ${1}.
Usage: !send <person> <thing>. Sends <thing> to <person> (this is a campaign promise).
|
!skillperac
|
.echo $(float (/ 22.0 $1))
<base AC>
|
!speedcoc
|
.echo $(name_fixup ${1:-.})'s fastest Icy rune retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* rune=icy s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* rune=icy s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.enter=Coc s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns
Returns shortest number of turns from entering Coc to picking up the Icy rune. Usage: !speedcoc <name> <other options>
|
!speeddis
|
.echo $(name_fixup ${1:-.})'s fastest Iron rune retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* rune=iron s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* rune=iron s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.enter=Dis s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns
Returns shortest number of turns from entering Dis to picking up the Iron rune. Usage: !speeddis <name> <other options>
|
!speedgeh
|
.echo $(name_fixup ${1:-.})'s fastest Obsid. rune retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* rune=obsidian s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* rune=obsidian s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.enter=Geh s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns
Returns shortest number of turns from entering Geh to picking up the Obsidian rune. Usage: !speedgeh <name> <other options>
|
!speedorb
|
.echo $(name_fixup ${1:-.})'s fastest orb retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* orb s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* orb s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.enter=zot s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns
Returns shortest number of turns from entering Zot to picking up the Orb. Usage: !speedorb <name> <other options> e.g. !speedorb .
|
!speedrune
|
.echo $(let (name ${1:-.} branch $2 other $*) (if (str-find? $branch (=turns_to_rune.branches)) (if (str-find? "No milestones" (=turns_to_rune.rune $name $branch $other)) $(name_fixup $name)$(if $other " ("$other")")" has never found the "$branch" rune" (=turns_to_rune.format $name $branch $other)) $branch" is not a valid branch. Valid branches: "(replace | , (=turns_to_rune.branches))))
Returns shortest number of turns from entering a branch to finding it's rune. Usage: !speedrune <name> <branch> <other options> e.g. !speedrune . tomb recent
|
!speedtar
|
.echo $(name_fixup ${1:-.})'s fastest Bone rune retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* rune=bone s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* rune=bone s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.enter=Tar s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns
Returns shortest number of turns from entering Tar to picking up the Bone rune. Usage: !speedtar <name> <other options>
|
!speedzot5
|
.echo $(name_fixup ${1:-.})'s fastest Zot:5 enter to Orb retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* orb s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* orb s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.end=zot s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns
Returns shortest number of turns from entering Zot:5 to picking up the Orb. Usage: !speedzot5 <name> <other options>
|
!speedzot6
|
.echo $(let* (turns (map int (split (!lm ${1:-.} $* ((br.end=zot || orb)) s=gid x=-${max(turns)-min(turns)} fmt:'${x[0]}' notitle join:' ' stub:'N\A' ?: N=2))) min (car $turns) max (last $turns) med (listmid $turns) avg (listavg $turns)) (sprintf "Zot:5 to Orb pickup turns for $(name_fixup ${1:-.})$(argst $*): Min: $min, Max: $max, Median: $med, Average: %.2f" $avg))
The long awaited sequell to speedzot5. Gives min, max, median and average turns from entering Z:5 to picking up the orb. Try !speedzot6 * recent or !speedzot6 .
|
!stats
|
.echo $(if (= (lower (sub 2 $1)) wn) "Wanderer starting stats are random. Stat gain: $(getldbsid (combo_to_race $1))" $(!lm * begin char=$1 ${2:-recent trunk} $* x=str,int,dex fmt:"Starting stats for ${char}: Str $x[0] Int $x[1] Dex $x[2]. Stat gain: $(getldbsid (combo_to_race $1))" stub:"Go start a ${1:-?} if you want me to know its starting stats."))
Provides starting stats for the given starting character, such as !stats GhBe.
|
!statspread
|
.echo $(let* (sid (!lg ${1:-.} $* x=sum(str),sum(int),sum(dex) notitle fmt:'${x[0]} ${x[1]} ${x[2]}') str (nth 0 $sid) int (nth 1 $sid) dex (nth 2 $sid) sum (+ $str $int $dex)) "Stat spread for $(name_fixup ${1:-.})$(argst $*): STR: $(percent $str $sum) INT: $(percent $int $sum) DEX: $(percent $dex $sum)")
Displays the str/dex/int in all games as a percentage of the total of all stats. Takes !lg arguments. Try !statspread or !statspread * recent won urune=3
|
!stepdown
|
.echo $(if (< (int $1) (int ${3:-${2}})) $1 (+ (- ${3:-${2}} $2) (stepdown (- $1 (- ${3:-${2}} $2)) $2)))
Calculates stepdown_value(int base_value, int stepping, int first_step). Here first_step = stepping by default. Example: "!stepdown n 50" for the spellpower stepdown. Doesn't apply a ceiling_value.
|
!timeline
|
.echo Timeline: $(let (args $(split ; $*)) $(let (lg_args (car $args) lm_args (car (cdr $args))) $(foldr $(fn (x y) $(concat (str (cdr $x)) " (+" (car $x) ")" (if (not (null? $y)) "; " "") $y)) "" $(format_timeline_array 0 $(game_milestones_array $lg_args $lm_args) $(cons)))))
Groups and orders milestones for a specific game. Usage: !timeline lg_arguments ; lm_arguments Examples: !timeline madreisz won ; rune|orb s=turn,noun. !timeline madreisz won ; unique s=turn,noun,ev
|
!titleprogress
|
.echo $(let (known (!lg * x=cdist(title) notitle fmt:"${x}" stub:"0") won (!lg ${1:-.} won x=cdist(title) notitle fmt:"${x}" stub:"0") name (name_fixup ${1:-.})) (sprintf "$name has won %d out of %d known titles (%.2f%%). %s" $won $known (/ (* 100.0 $won) $known) (if (> $won 99) "$name is an entitled player!" "")))
Lets you know how many titles a player has won with, compared to all titles seen so far. Try !titleprogress . or !titleprogress Ge0ff
|
!topuniquewins
|
.echo $(apply allplayeruniquewinsscore $*)
Like !uniquewins but only shows the total number instead of listing each combo.
|
!tourneychar
|
!rg * recent playable won crace=$(=tourneychar.topraces crace!=$(=wonraces ${1:-.} t)) role=$(=tourneychar.toproles role!=$(=wonroles ${1:-.} t)) $* fmt:'The RNG chooses: $char, $(!charworth $char) points'
Returns a random char from the top 10 races and roles by score which you have not yet won. Best used with a team nick, e.g. !tourneychar ruthlessrubes
|
!tstats
|
.echo $(let (arg1 ${1:-16} arg2 ${*:-t}) (let (t (concat $arg2 " !@bot " end<$(+ (stamptime (!lg * $arg2 1 fmt:"$end")) $arg1))) "Stats after $arg1 days $(concat '(' $arg2 ')'): $(=tstats.players $t), $(=tstats.runers $t), $(=tstats.winners $t), $(=tstats.wins $t), $(=tstats.games $t), $(=tstats.winrate $t), $(=tstats.playertime $t)."))
!tstats <days> <tournament selector> for information on games/runes/wins. Example: !tstats 15 t0.14
|
!turnsummary
|
.echo $(let* (info (split (!lg ${1:-.} $* x=gid,char,ktype,turns notitle fmt:'${x[0]} ${x[1]} ${x[2]} ${x[3]}')) out (!lm * gid=$(nth 0 $info) !portal !arena !crucible br.enter|rune|orb|god.worship s=noun x=-min(turns) fmtsimple title:"Summary for $(nth 0 $info) $(nth 1 $info)" stub:"N/A")) $(if (= 'N/A' $out) "No games found for $(name_fixup ${1:-.})$(argst $*)" "$out, $(nth 2 $info) [$(nth 3 $info)]"))
Shows the order and turns of various important milestones for a single game. Usage: !turnsummary <lg args for the game>. Try !turnsummary * won min(turns) or !turnsummary . recent max(sc) -2
|
!turnsummery
|
!turnsummary
see {!help:!turnsummary}
|
!uniquewins
|
.echo $(apply allplayeruniquewins $*)
rank of all players by the number of unique char + god combos they have won.
|
!uniquewinslookup
|
.echo $(apply uniquewinsplayer ${1:-$user} (cdr $*))
lookup the number of unique char + god combos a player has won
|
!watchrandom
|
&watch $(let (names (split " " $(!lm * ktyp= type!=crash time>=$(- (utc (time)) (interval-minute 30)) !cdo s=name fmt:"${.}" join:" " $*))) $(if $(> $(length $names) 0) $(elt $(rand 0 $(length $names)) $names) "No active games to watch."))
Gives a link to spectate a random game that was active in the last half hour.
|
!whichgod
|
!lg * won $1 recent $* s=god title:"${n} recent wins for $1$(argst $*)" stub:"No recent wins for $1$(argst $*)."
Usage: !whichgod [race and/or role]
|
!whichrace
|
!lg * won recent $(if (or (re-find ru|Ru $*) (> $(length $*) 2)) $* class=$*) s=crace title:"${n} recent wins" stub:"No recent wins for $*."
Usage: !whichrace [role or god]
|
!whichrole
|
!lg * won recent $(if (or (re-find ru|Ru $*) (> $(length $*) 2)) $* race=$*) s=role title:"${n} recent wins" stub:"No recent wins for $*."
Usage: !whichrole [race or god]
|
!winpercentiles
|
.echo $(let* (wins (split '|' (!lg * $* s=-name fmt:'$(re-replace "(\d+)/\d+" $1 $(groupcount ${n_x}))' join:'|' notitle stub:'N/A' / won ?: den.N>=${1:-100} N>=${2:-0})) percentiles (join ", " (map (fn (x) "$x: $(percentile $wins $x)") (range 4 99 5)))) "Win percentiles for players with at least ${1:-100} games and ${2:-0} wins$(argst $(ignore $1)$(ignore $2)$*): $percentiles")
Lists the wins of players at 4th-99th percentiles. Syntax: !winpercentiles [minimum games] [minimum wins] [lg args].
|
!winratepercentiles
|
.echo $(let* (wins (split '|' (!lg * $* s=name fmt:'${n_ratio}' join:'|' notitle stub:'N/A' o=-% / won ?: den.N>=${1:-100} N>=${2:-0})) percentiles (join ", " (map (fn (x) "$x: $(percentile $wins $x)") (range 4 99 5)))) "Winrate percentiles for players with at least ${1:-100} games and ${2:-0} wins$(argst $(ignore $1)$(ignore $2)$*): $percentiles")
Lists the winrate of players at 4th-99th percentiles. Syntax: !winratepercentiles [minimum games] [minimum wins] [lg args].
|
!wintimes
|
!lg ${1:-.} won s=nhour(end),$${2:-0}$ o=nhour(end) pfmt:'${n_x}$(mod (+ ${child[0]} ${.}) 24)' fmt:'${.}'
Show the times at which you've won in your time zone. e.g. !wintimes . 2 for in the UTC+2 time zone
|
!xldeathrate
|
.echo $(let* (toHash (fn (lg) (foldr xldeath-helper4 (hash) (split ", " $lg))) xlL (toHash (!lg ${1:-.} !won s=xl notitle fmt:"${.} ${n_x}" $*)) xlW (toHash (!lg ${1:-.} won s=xl notitle fmt:"${.} ${n_x}" $*)) total (xldeath-helper3 28 $xlW $xlL) result (fn (xl) (sprintf "%s: %2.2f%%" $xl (* 100 (/ (float (xldeath-helper $xl $xlL)) (- $total (xldeath-helper3 $xl $xlW $xlL))))))) (map result (range 1 27)))
Shows the rate of deaths (quits/deaths/etc) at each XL, for characters that made it to that XL. Basically, it shows something approximating the game's difficulty curve. Graphs: https://docs.google.com/spreadsheets/d/1m_aGyxgq97BKp2rZi2pksZyFaYeE58YAHAedZo2vlXo/edit Breakdown: https://gist.github.com/RypoFalem/10845d564efbf4d55f108278aa01d201
|
!xxx
|
.echo $(let (num $(rand 5 15)) "$nick $(=rndspellgesture). $num tentacled monstrosities appear! The tentacled monstrosity tentacle-slaps ${*:-Mnoleg's tentacle}! x$num")
Cast Summon Horrible Things on some puny mortal.
|
!zigdeathgraph
|
!lg ${1:-.} s=zigdeepest br='zig' zigscompleted=0 place='zig' o=zigdeepest -graph
This command graphs a player's (or, with "*" ALL players') number of deaths per Zig level, assuming no Zigs yet completed this game.
|
&dump
|
!lm ${1:-.} fmt:"\$(=morgue_link ${2:-${src}} \$(if \$(match -a ${3:-${cv}}) trunk ${3:-${cv}}))/${name}/${name}.txt" stub:"No milestones for $(name_fixup ${1:-${user}})."
Find a player's in-progress game dump based on their last milestone (by default) or by server (argument two) and game version (argument three). For example, to find your last 0.20 game on cbro use: &dump . cbro 0.20
|
&rc
|
=eval $(=rc.helper $*)
Gets the rc file of the specified player, version, and server. Syntax: &rc [player selector] [canonical version] [source]. Try "&rc" for your own rc, or "&rc qw 0.20 cao" for a specific rc.
|
&splat
|
!lg * recent !blacklist ((tiles || !@hugeterm)) ((ikiller=(a_pandemonium_lord|dispater|geryon|ereshkigal|asmodeus|cerebov|gloorx_vloq|lom_lobon|mnoleg) || ckiller=a_pandemonium_lord)) $* min=ntv -tv
Plays a death to an &. Examples: &splat, &splat recent
|
.csdc
|
!lg * xl>=5 !won csdc $* max=rend oktv ntv=$(!lg * xl>=5 !won csdc $* min=ntv oktv fmt:"$ntv") -tv:channel=csdc
Watch the latest un-watched {csdc} death.
|
.s
|
!lg * !won !boring ((tiles || !@hugeterm)) !cwz !cpo recent max=sc ntv=0 -tv ${*:-xl>15}
plays an unwatched splat. You can add keywords and fields to filter which splat is played. Examples: .s, .s xl>=20, .s cv=0.13-a fe--
|
.suspensetv
|
.echo $(let (cmd (if (rand 2) (!lg $(=suspensetv.lgopt) $(rand $(!lg $(=suspensetv.lgopt) $*)) $* x=gid fmt:"!lg * gid=\$x[0] -tv") (!lm $(=suspensetv.lmopt) $(rand $(!lm $(=suspensetv.lmopt) $*)) $* x=gid,turn fmt:"!lm * gid=\$x[0] turn=\$x[1] -tv"))) (do $(ldb-set! ~suspensetv 1 $cmd) (exec $cmd) "suspensetv requested for FooTV (telnet termcast.shalott.org or http://termcast.shalott.org )."))
Randomly plays either a death or a near-death milestone. The options for lg and lm respectively can be edited in the functions =suspensetv.lgopt and =suspensetv.lmopt
|
.suspensetvreplay
|
.echo $(exec (nth 1 (split "]: " (ldb ~suspensetv))))
Replays the last .suspensetv
|
!*rc
|
!echo test
|
!1n1
|
!rng $(!lg * recent $(ignore $1)$* playable s=char join:' ' fmt:"${.}" / @${1:-.} ?:N=0)
|
!27club
|
!lg ${*:-.} !won xl=27 -random
|
!a-background
|
!rng @role
|
!a-char
|
!a-character
|
!a-character
|
!echo $(re-replace 'The RNG chooses: ([^.]+)\.' '$1' (!a-race)) $(re-replace 'The RNG chooses: ([^.]+)\.' '$1' (!a-class))
|
!a-choice
|
.echo Sign: $(randelem $(split & $(=a-signlist))) Race: $(randelem $(split & $(=a-racelist))) Class: $(randelem $(split & $(=a-classlist)))
|
!a-class
|
!rng @role
|
!a-god
|
!rng @god
|
!a-monster
|
!rg * killer!= x=killer fmt:"$x[0]" xl=$(rand 1 27) ${*:-current}
|
!a-race
|
!rng @race
|
!a-role
|
!rng @role
|
!a-sign
|
!rng raven book wand unicorn salamander dragon sword falcon cup candle wolf tree
|
!a-species
|
!rng @race
|
!absolutezero
|
.echo $nick $(=rndspelltarget ${*:-something}). $nick chills ${*:-something} to absolute zero! ${*:-something} is frozen into a solid block of ice!
|
!abyssrunevaultkills
|
!echo Abyss rune vault kills$(argst $*): $(vaultallkills kmap~~abyss_rune map~~abyss_rune $*)
|
!activegames
|
!lm * ktyp= type!=crash time>=$(- (utc (time)) (interval-minute 30)) s=name,src pfmt:"${.} (${child})" fmt:"${.}" title:"Active games, last half-hour ($*)" stub:"No milestones in the last half-hour ($*)" $*
|
!actualoldest
|
!lg * $* won playableme s=char x=max(rend) o=-max(rend) join:" " fmt:"${.}" notitle
|
!add
|
!commit Add $*
|
!alignedwinner
|
.echo "$(!evilwinner $*) . . . $(!goodwinner $*)"
|
!always
|
!motto $(cons always ${*:-be closing})
|
!ancestorclasses
|
!lm ${1:-.} verb=ancestor.class $* s=regexp_replace(noun, ".*\m(\w+)\.$", "\1")%
|
!ancestornames
|
!lm ${1:-.} $* ancestor s=regexp_replace(milestone, '.*remembered their ancestor (.+)as a (battlemage|hexer|knight).*$', '\1') title:"Ancestor names for $(name_fixup ${1:-$nick})$(argst $*)"
|
!ancestorpopularity
|
!lm * verb=ancestor.class $* s=regexp_replace(noun, ".*\m(\w+)\.$", "\1")%
|
!antiprogress
|
.echo $(name_fixup ${1:-.}) antiprogress: $(car (split | (!lg ${1:-.} $* won s=char fmt:"${n_x}${.}" join:"|")))
|
!antititleprogress
|
.echo $(name_fixup ${1:-.}) antititleprogress: $(car (split | (!lg ${1:-.} $* won s=title fmt:"${n_x}${.}" join:"|")))
|
!aptsum
|
!echo $(let (a (apthash $1)) (apply ${+} (map (fn (k) (elt $k $a)) (hash-keys $a))))
|
!argtest
|
!lg * char=$1 s=char,name x=max(xl) $(ignore $2) $* ?: max(xl)>=$2
|
!averageapt
|
.echo $(let (apts (map (fn (t) (re-replace '[!*]' (re-replace "[^:]+: " $t))) (filter (fn (t) (not (or (str-find? 'N/A' $t) (str-find? 'Dr[' $t)))) (split , (!apt $1))))) (.echo Average apt for $1: $(sprintf "%1.1f" (/ (float (apply ${+} $apts)) (length $apts)))))
|
!averagesessions
|
!echo $(let (ns (sort (filter (fn (n) (> $n 0)) (map (fn (g) (!numbersessions ${1:-.} gid=$g)) (split '|' (!lg ${1:-.} won $* s=gid fmt:'${.}' join:'|' notitle)))))) (.echo Average number of sessions for games won by $(name_fixup ${1:-$nick})$(argst $*): $(sprintf '%.2f' (/ (float (apply ${+} $ns)) (length $ns))); #Games: $(length $ns); MinSessions: $(elt 0 $ns); MaxSessions: $(elt 0 (reverse $ns))))
|
!avggamestats
|
!lg ${1:-.} $* x=avg(xl),avg(mmhp),avg(mmp),avg(ac),avg(ev),avg(sh),avg(str),avg(int),avg(dex) title:"Average stats for $(name_fixup $1)$(argst $*) over \$n games" fmt:"XL: $x[0], MHP: $x[1], MMP: $x[2], AC: $x[3], EV: $x[4], SH: $x[5], Str: $x[6], Int: $x[7], Dex: $x[8]"
|
!avgmilestonestats
|
!lm ${1:-.} $* x=avg(xl),avg(mmhp),avg(mmp),avg(ac),avg(ev),avg(sh),avg(str),avg(int),avg(dex) title:"Average stats for $(name_fixup $1)$(argst $*) over \$n milestones" fmt:"XL: $x[0], MHP: $x[1], MMP: $x[2], AC: $x[3], EV: $x[4], SH: $x[5], Str: $x[6], Int: $x[7], Dex: $x[8]"
|
!awaken
|
.echo $nick $(=rndspelltarget ${*:-something}). Some walls begin to move on their own! The earth elemental hits ${*:-something}!!! x$(rand 2 7)
|
!awbwchar
|
!rg * recent playable won char!=$(!lg awbw won s=char fmt:"${.}" join:"|") $* fmt:"The RNG chooses: $char."
|
!awbwleft
|
!lg awbw playable s=char o=-char fmt:"${.}" / won ?: N=0
|
!awbwlive
|
!lm awbw alive name!=$nick x=src title:"" fmt:'$(=time_since_milestone @awbw alive name!=$nick) ago on ${src} $(if ${tiles} tiles console): ${name} the ${char}^$(=godshortname ${god}) ${milestone}'
|
!awbwprogress
|
.echo awbw progress: $(let (num (!lg awbw playable won x=count(char) fmt:"${x[0]}") den (!lg * playable won x=count(char) fmt:"${x[0]}")) $num"/"$den" ("$(/ (* 100 $num) $den)"%)")
|
!badchar
|
!rg * playable name~~hyper !@hyperimposters !won fmt:"The RNG chooses: $char"
|
!banish
|
.echo $nick casts a spell. ${1:-Everyone} is cast into ${*:-$(=badplace)}!
|
!banish2
|
.echo $nick casts a spell. ${1:-Everyone} is cast into ${2:-$(=badplace)}!
|
!banishratio
|
.echo $(let (x (!lm ${1:-.} !ak $* banished fmt:"${n}") y (!lg ${1:-.} !ak $* fmt:"${n}") z (!lg ${1:-.} !ak $* x=sum(turns) fmt:"${x}" )) "$(name_fixup ${1:-.}) $(if $* "("$*") ")was banished $x times in $y games over $z turns: $(int (* 100 (/ (float $x) $y)))% of games, $(int (* 1000000 (/ (float $x) $z))) per 1,000,000 turns")
|
!beam
|
.echo $(if (and (not (str-find? elliptic $nick)) (or (str-find? wheals $*) (str-find? Wensley $*))) "$nick miscasts Beamishment. $nick is cast into beam.cc!" "$nick casts a spell. $* is cast into beam.cc!")
|
!beckon
|
.echo $nick $(=rndspelltarget $*). "Get OVER here!!" $* is pulled closer!
|
!beer
|
.echo /me slides a $(sub 0 1 $(sub $(rand $(length $(split & $(=beervessel)))) $(split & $(=beervessel)))) of $(sub 0 1 $(sub $(rand $(length $(split & $(=beerlist)))) $(split & $(=beerlist)))) down the bar to ${*:-${nick}}$(if $* ", courtesy of $nick").
|
!beestorm
|
.echo $nick $(=rndspelltarget $*). A raging swarm of bees appear! The great swarm engulfs ${*:-something}!
|
!beetv
|
.echo $(!lg * cikiller~~bee cikiller!~ghost recent -tv:<0.5 -$(rand 12000))
|
!bestunwonchar
|
!lg * !boring char=$(!lg * $(ignore $1)$* playable won s=char notitle fmt:'${.}' join:'|' / @${1:-.} ?: N=0) s=char title:"Best unwon chars for $(name_fixup ${1:-.})$(argst $*)" o=% / won
|
!bet
|
.echo $(mvmoney $* "~"$nick":money" "~holdem:pot")
|
!bigdrain
|
!lg ${1:-*} $* newdrain ${mmhp-mhp > 50} !won x=${mmhp-mhp},mmhp,mhp title:"Big drain characters for $(name_fixup ${1:-*})$(argst $*)" stub: "No big drain characters for $(name_fixup ${1:-*})$(argst $*)"
|
!biglcs
|
.echo $nick $(=rndspelltarget ${*:-something}). The crystal spear hits ${*:-something}$(nth $(rand 3) $(split '|' '!!!|!!!!|!!!!!'))!!
|
!blame
|
.echo I pronounce ${*:-${nick}}... Guilty!
|
!blame2
|
.echo $(re-replace '(.)' '$1$1$1' "$*")
|
!blame3
|
.echo $(re-replace '([AEIOUYaeiouy])' '$1$1$1$1$1' $*)
|
!blame37
|
!chaos $(!blame2 $*)
|
!blame3n
|
!recur !blame3 $*
|
!blame4
|
!chaos $(!blame3 $*)
|
!blamedev
|
!echo $(!blame $(randelt (nick-aliases devteam)))
|
!blamen
|
!recur !blame2 $*
|
!boris
|
.echo $(name_fixup ${1:-.}): $(car (split | (!lm ${1:-.} $* uniq=boris s=gid fmt:"${n_x}" join:"|"))) Boris
|
!branchless
|
!lg ${1:-.} cv>=0.5 won gid!=$(!lm ${1:-.} won br.enter=lair|vaults|temple|orc s=gid join:"|") -opt:(title:"Branchless wins by $name" stub:"$name doesn't have any branchless wins... Tragic!") pfmt:"${.} (${child})" s=char,god join:", "
|
!brendratio
|
.echo $(let (x (!lm ${2:-.} $* br.end=${1} ktyp!= x=cdist(gid) fmt:"${x}" stub:"0") y (!lg ${2:-.} $* fmt:"${n}" stub:"0") player (name_fixup $2)) "${player}$(if "${*}" " (${*})" "") has reached the ${1} branch end in $x of $y attempts: $(int (+ 0.5 (/ (* 100.0 $x) $y)))%")
|
!brstats
|
!lg * recent !won !boring br=(snake|swamp|spider|shoals) xl=$(!lg * recent br=$1 urune=0 x=median(xl) $* fmt:"$x[0]") x=cdist(gid) fmt:"$x[0]" / br=$1 $* title:"Lethality of $1 $(argst $*) as a first Lair rune:"
|
!bug
|
.echo https://crawl.develz.org/mantis/view.php?id=${1:-$(rand 1 10000)}
|
!buyin
|
!holdeminit
|
!calc
|
!lg xyz x=$$*$ fmt:"${x[0]}"
|
!cancel
|
!lg * -tv:nuke
|
!cannchoice
|
!lg * current char=$(join '|' (nem-remaining)) $* s=char o=-. fmt:"${.}" title:"Available combos for Nemelex Choice with $*" stub:"No available combos for Nemelex Choice with $*"
|
!canoneandwon
|
!lg * playable cls!=$(join "|" (map (fn (c) (replace ?? (!ftw $c))) (split "|" (!lg . $1 playable s=cls fmt:"${.}" join:"|" title:"")))) s=cls fmt:"${.}" title:"Available classes for $1 oneandwon"
|
!caorc
|
.echo https://crawl.akrasiac.org/rcfiles/crawl-$(replace trunk git ${2:-git})/$(!lm ${1:-.} cao x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc
|
!cardpower
|
.echo $(let (c (=cardpower $1 $2) x (=ornate.card.lvl1 $1 $2) y (=legendary.card.lvl1 $1 $2) z (=legendary.card.lvl2 $1 $2) ) "evo skill=$1, nemelex piety=$2, Cardpower=$c, Ornate Lvl 1: $(int (* $x 100))% , Legendary Lvl 1: $(int (* $y 100))% , Legendary Lvl 2: $(int (* $z 100))% ")
|
!cards
|
.echo $(nth 1 (split "]:" (ldb "~"$nick":cards")))
|
!cats
|
!lg ${1:-.} won fe-- $* s=char join:"|" fmt:"${n_x}{=^;^=}" stub:"=u.u=" title:"Cats won for $(name_fixup $1)"
|
!ccttwatch
|
!lm * cctt-milestones hour-milestone alive s=name x=max(xl) o=max(xl) join:" || " fmt:"\$(!lm * name=${.} cctt-milestones hour-milestone alive fmt:'L$xl ($place)') \$(!watch ${.})" title:"" stub:""
|
!cdirc
|
.echo https://crawl.dcss.io/crawl/rcfiles/crawl-$(replace trunk git ${2:-git})/$(!lm ${1:-.} cdi x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc
|
!celcius
|
.echo $(sprintf "$* degrees F is %1.1f degrees C" $(/ (- $1 32) 1.8))
|
!centuryplayer
|
!won ${1:-.} 100 stub:"${1:-.} is not yet a CenturyPayer"
|
!chaos
|
!echo $(map (fn (w) (apply concat (map (fn (c) (if (rand 2) (upper $c) (lower $c))) (split '' $w)))) (split ' ' ${*:-$(!banish)}))
|
!chargodgames
|
!lg ${1:-.} $* s=char,god pfmt:'${.}^$(join "" (sort (split ", " $child)))' fmt:'$(godletter ${.})' o=-. title:"Games for $(name_fixup ${1:-.})$(argst $*)" stub:"No games for $(name_fixup ${1:-.}$(argst $*)"
|
!chargodwins
|
!lg ${1:-.} won $* s=char,god pfmt:'${.}^$(join "" (sort (split ", " $child)))' fmt:'$(godletter ${.})' o=-. title:"Wins for $(name_fixup ${1:-.})$(argst $*)" stub:"No wins for $(name_fixup ${1:-.}$(argst $*)"
|
!chars
|
!lg ${*:-.} s=char
|
!charworth
|
.echo $(+ $(!raceworth $(combo_to_race $1)) $(!roleworth $(combo_to_class $1)))
|
!cheatstreak
|
!streak ${1:-.} $* won
|
!cheers
|
.echo /me slides a $(sub 0 1 $(sub $(rand $(length $(split & $(=cheers.containers)))) $(split & $(=cheers.containers)))) of $(sub 0 1 $(sub $(rand $(length $(split & $(=cheers.drinklist)))) $(split & $(=cheers.drinklist)))) across the bar to ${*:-${nick}}$(if $* ", courtesy of $nick").
|
!cheqpanlord
|
!lg * vlong>0.18-a0-1305-g2d5df2f ckiller=a_pandemonium_lord
|
!circus-dump
|
.echo http://crawl.homedns.org/morgue/${1}/$1.txt (user names are case sensitive, make sure you got it right!)
|
!circus-rc
|
.echo http://crawl.homedns.org/morgue/$1.rc (user names are case sensitive, make sure you got it right!)
|
!circus-watch
|
.echo Watch $1 at http://crawl.homedns.org/crawl#watch-${1}
|
!ckorc
|
.echo https://crawl.kelbi.org/crawl/rcfiles/crawl-$(replace trunk git ${2:-git})/$(!lm ${1:-.} cko x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc
|
!clanname
|
!learn add reserved_clan_names "$* [$nick]"
|
!clannamefor
|
.echo $(let (p $1 n $*) (!learn add reserved_clan_names "$n [$p]"))
|
!clap
|
!emote 👏 $*
|
!clapall
|
!emoteall 👏 $*
|
!clapmotto
|
!emotemotto 👏 $*
|
!classcanoneandwon
|
.echo $(let (c (fullclass $1)) (!lg * playable cls="$c" $(ignore $1)$(ignore $2)$* crace!=$(!lg ${2:-.} cls="$c" $* s=regexp_replace(char, "..$", "") fmt:"${.}" join:'|' title:'') s=char o=-. fmt:"${.}" title:"Available combos for $(name_fixup ${2:-.}) to oneandwon with $1$(argst $*)" stub:"No vailable combos for $(name_fixup ${2:-.}) to oneandwon with $1$(argst $*)"))
|
!classhs
|
!lg * playable sc<1000000000 s=cls x=max(char),+max(score) fmt:'$(combo_to_class ${x[0]}): $(short_num ${x[1]})' title:"Class high scores"
|
!classoneandwoncounts
|
!lg ${1:-.} $* char=$(join '|' (split ', ' (re-replace '^[^:]+: ' '' (!oneandwon ${1:-.} $*)))) s=cls won title:"Race oneandwon counts for $(name_fixup $1)$(argst $*)" stub:"No oneandwons for $(name_fixup $1)$(argst $*)"
|
!classwords
|
.echo $(map (fn (p) (.echo $p${1})) (sort (split "|" (!lg * playable current alpha s=regexp_replace(char, "..$", "") join:"|" fmt:"${.}"))))
|
!clswords
|
.echo $(map (fn (p) (.echo ${p}${1})) (sort (map (fn (c) (replace "??" (!ftw $c))) (split "|" (!lg * playable current trunk s=crace join:"|" fmt:"${.}")))))
|
!cmdcp
|
.echo $(!cmd $2 $(re-replace-n 1 '.*?=>' '' (!cmd $1)))
|
!cmdfind
|
!cmdsearch
|
!cmdlist
|
!cmd -$(.echo ls)
|
!cmdmv
|
.echo $(do (!cmd $2 $(re-replace-n 1 '.*?=>' '' (!cmd $1))) (!cmd -rm $1))
|
!cmdsearch
|
.echo $(let (x (join ', ' (re-gmatch "[^\s]*$*\w*" (!cmd -ls)))) (if $x $x "Couldn't find that!"))
|
!cncrc
|
.echo https://archive.nemelex.cards/rcfiles/crawl-$(replace trunk git ${2:-git})/$(!lm ${1:-.} cnc x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc
|
!coffee
|
.echo /me hands ${1:-${user}} a $(sub 0 1 $(sub $(rand $(length $(split & $(=coffee.containers)))) $(split & $(=coffee.containers)))) of $(sub 0 1 $(sub $(rand $(length $(split & $(=coffee.coffeelist)))) $(split & $(=coffee.coffeelist)))), brewed by $(=tea.brewer).
|
!coinflip
|
!rng heads tails
|
!comborobin
|
.echo comborobin progress: $(let (num (!lg comborobin playable won x=count(char) fmt:"${x[0]}") den (!lg * playable won x=count(char) fmt:"${x[0]}")) $num"/"$den" ("$(/ (* 100 $num) $den)"%)")
|
!comborobinchar
|
!lg * recent playable char!=$(!lg comborobin won s=char fmt:"${.}" join:"|") char!=$(!lm comborobin alive s=char fmt:"${.}" join:"|") s=char won o=n title:"Best chars to play with comborobin (not currently being played)" stub:"$(!comborobinnotwonchar)"
|
!comborobinfail
|
!lg comborobin won s=char title:"Characters over-won for comborobin" fmt:"${.}" ?: N>1
|
!comborobinhs
|
!highscores comborobin
|
!comborobinnotwonchar
|
!lg * recent playable char!=$(!lg comborobin won s=char fmt:"${.}" join:"|") s=char won o=n title:"Best chars to play with comborobin (currently being played, but not won)" stub:"All comborobin chars won."
|
!comborobinold
|
.echo comborobin new+old(>=0.10) progress: $(let (num (!lg comborobin cv>=0.10 !experimental won x=count(char) fmt:"${x[0]}") den (!lg * cv>=0.10 crace!=Dj|LO|Yak cls!=Jr stable x=count(char) fmt:"${x[0]}")) $num"/"$den" ("$(/ (* 100 $num) $den)"%)")
|
!commitby
|
.echo $(let (v (=version) c (=commitby.counter) h (randhex 7) f (+ 1 (rand 50)) a (+ 200 (rand 799)) r (+ 200 (rand 799))) " 03${1:-$nick} ⛐ ${v}-a0-${c}-g${h}: ${*:-do stuff} 10(in the future, $f files, ${a}+ ${r}-) 13http://s-z.org/neil/git/commit.png?p=crawl.git;a=commitdiff;h=${h} ")
|
!coolplayer
|
!lg ${1:-.} $(replace " " | (ldbent-text (ldb words 1))) won console s=char fmt:"$name is a coolplayer!" stub:"$name is not a coolplayer!" title:"" join:" "
|
!countgoodplayers
|
.echo $(length (split , (!listgoodplayers))) good players
|
!countgreaterplayers
|
.echo $(length (split , (!listgreaterplayers))) up to date greaterplayers!
|
!countgreatplayers
|
.echo $(length (split , (!listgreatplayers))) up to date greatplayers!
|
!countnick
|
.echo $(length (split ' ' (nick-aliases $*)))
|
!cpodump
|
!lm ${1:-.} cpo fmt:"https://crawl.project357.org/morgue/${name}/${name}.txt"
|
!crash
|
!crashlog
|
!crashlog
|
!lm ${*:-!ignoredcrashers} crash -log
|
!crucibledeaths
|
.echo Players that died in the Crucible of Flesh, as a percentage of all who took the Mark of the Fanatic $(!lm * mark~~fanatic / lg:br=crucible)
|
!crunwon
|
.echo $(let (x (=0woncomborobin.list)) $(if (= $x x) "All combos have been won at least once!" "$(length (split | $x)) $(plural combo (length (split | $x))) won zero times: "$(split | $x)))
|
!crunwonold
|
.echo $(let (x (=0woncomborobinold.list)) $(if (= $x x) "All new+old(>=0.10) combos have been won at least once!" "$(length (split | $x)) $(plural combo (length (split | $x))) won zero times: "$(split | $x)))
|
!crush
|
.echo $nick $(nth $(rand 5) $(split '|' "crushes $* like a grape|beats $* like a drum|flattens $* like a pancake|pounds $* like an anvil|hammers $* like a gong"))$(nth $(rand 3) $(split '|' '!|!!|!!!'))!!
|
!csdcwon
|
!lg csdc $(=csdcwk $1) won s=name
|
!currentgamepath
|
!lmpath ${1:-.} alive
|
!cwzrc
|
.echo http://webzook.net/soup/rcfiles/$(replace git trunk ${2:-trunk})/$(!lm ${1:-.} cwz x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc
|
!d1panlordtv
|
!tv * d:1 ckiller=pandemonium_lord $*
|
!damnation
|
!hellfire $*
|
!dang
|
.echo ohh dang!!!!!
|
!darkbolt
|
!echo I cast Darkbolt! ${*:-$channel} is struck by a blast! ${*:-$channel} is paralyzed!
|
!daysperwin
|
.echo $(name_fixup ${1:-.}) wins approximately once per $(let (age $(int $(let (first $(ptime $(!lg $(name_fixup ${1:-.}) x=min(end) fmt:"${x[0]}" stub:'$(ftime $(utc $(time)) "%Y-%m-%d %H:%M:%S")') "%Y-%m-%d %H:%M:%S") now $(utc $(time))) (- $now $first)))) (/ (float $age) $(!lg $(name_fixup ${1:-.}) won $* fmt:"${n}"))) days
|
!daystilltourney
|
.echo $(int $(- $(ptime "2019-10-23 20:00:00" "%Y-%m-%d %H:%M:%S") $(utc $(time)))) days till 0.24 tourney start!
|
!dcssstats
|
!dcss-stats
|
!deal
|
.echo $(if (deal (split ' ' $*)) "Cards dealt to $(replace " " ", " $*). Do !cards in pm to see")
|
!death
|
.echo Death has come for ${*:-${nick}}...
|
!deathless
|
!lg ${*:-*} start>20101115 fe-- won gid!=$(!lm ${*:-*} death won s=gid join:"|") s=name,char -opt:(title:"Deathless wins for ${*:-*}")
|
!deathsin
|
!lg * place=${*} ktyp!=quitting|leaving|winning s=name
|
!deathtimes
|
!lg ${1:-.} !won s=nhour(end),$${2:-0}$ o=nhour(end) pfmt:'${n_x}$(mod (+ ${child[0]} ${.}) 24)' fmt:'${.}'
|
!debug
|
.echo $nick sets a breakpoint on ${*}. $(capitalise ${*}) $(nth $(rand 6) $(split '&' $(=resist_message))). You crash... Would you like your variables identified?
|
!decentgreatchar
|
!rg * playable won crace!=$(!lg ${1:-.} won s=char join:"|" fmt:'$(combo_to_race ${.})' stub:"") class!=$(!lg ${1:-.} won s=char join:"|" fmt:'$(combo_to_class ${.})' stub:"") char!=$(!lg ${1:-.} s=char join:"|" fmt:"${.}" stub:"") $* fmt:"The RNG chooses: $char" stub:"${1:-.} is already a great(er)player, or has played every combo!"
|
!decentplayer
|
.echo $(let (l (length (split , (!lg $(name_fixup $*) rstart=$(!lg $(name_fixup $*) s=char x=min(rstart) fmt:"${x[0]}" join:"|") won s=char stub:"")))) (if (> $l 9) "$(name_fixup $*) is a decent player. $l oneandwon wins." "$(name_fixup $*) is not a decent player. $l oneandwon wins ($(- 10 $l) to go)."))
|
!depthsvaultkills
|
!echo Depths (non-encompass) vault kills$(argst $*): $(vaultallkills depthsvaultkmap depthsvaultmap "$*")
|
!descentplayer
|
.echo $(let (name (name_fixup ${1:-.}) played (!lg ${1:-.} $* game=descent notitle fmt:'$n') won (!lg ${1:-.} $* game=descent won notitle fmt:'$n')) (if (> $played 0) "$name is a descent player. ($played played, $won won)" "$name is not a descent player. (no descent games played)"))
|
!desolated
|
!lg * desolation
|
!dflip
|
!flip $(!flip $*)
|
!dice
|
.echo $(/ (* $1 (+ 1 $2)) 2.0)
|
!dieselratio
|
.echo $(name_fixup ${1:-.}) $(if $* "("$*") ")has been diesel $(!lg ${1:-.} $* defstats diesel won fmt:"${n}" stub:"0") out of $(!lg ${1:-.} $* defstats won fmt:"${n}" stub:"0") wins: $(int (* 100 (/ (float (!lg ${1:-.} $* defstats diesel won fmt:"${n}")) (!lg ${1:-.} $* defstats won fmt:"${n}"))))%
|
!dieselteamideas
|
.echo $(join ': ' $(sub 1 $(split ':' $(ldb dieselteamideas $(rand 1 (entrylength dieselteamideas))))))
|
!dieselteamup
|
.echo $(join '; ' (groups (shuffle (split ' ' $*)) 3))
|
!disc
|
!calc (1- (30-${1:-0})/100.0)**3
|
!discord
|
.echo $* flies into a frenzy!
|
!dispel
|
.echo $nick $(=rndspelltarget ${*:-something}). ${*:-something} convulses!
|
!doom
|
.echo $nick unleashes a terrible howl, and it begins to echo in ${*}'s mind! The $nick bites ${*}!!! x$(rand 4 6)
|
!dragonscall
|
.echo $nick calls out to the draconic realm, and the dragon horde roars back! The golden dragon tramples ${*}!!! x3
|
!drain
|
.echo $nick $(=rndspelltarget ${*:-something}). The bolt of negative energy hits ${*:-something}$(nth $(rand 3) $(split '|' '!|!!|!!!'))! ${*:-something} is drained!
|
!duhzlitewin
|
!lg ${*:-.} won gid=$(=allhellrunes $*) gid=$(=helluniques $*) gid!=$(!lm ${*:-.} abyss.enter !banished won s=gid fmt:"${.}" join:"|" stub:"")|$(!lm ${*:-.} br.enter!=temple|depths|hell|geh|coc|tar|dis|zot|icecv|volcano|lab|bailey|sewer|bazaar|ossuary|wizlab|trove won s=gid fmt:"${.}" join:"|" stub:"") s=char title:"DUHZ lite games won for $(name_fixup $*)" stub:"No games won for $(name_fixup $*) as a DUHZ lite win."
|
!duhzwin
|
!lg ${*:-.} won gid=$(=allhellrunes $*) gid=$(=helluniques $*) gid!=$(!lm ${*:-.} abyss.enter won s=gid fmt:"${.}" join:"|" stub:"")|$(!lm ${*:-.} br.enter!=temple|depths|hell|geh|coc|tar|dis|zot|icecv|volcano|lab|gauntlet|bailey|sewer|bazaar|ossuary|wizlab|gauntlet|trove won s=gid fmt:"${.}" join:"|" stub:"") s=char title:"DUHZ games won for $(name_fixup $*)" stub:"No games won for $(name_fixup $*) as a DUHZ win."
|
!dumb
|
.echo <$(replace neil |amethyst $(replace sgrunt Grunt $(car $(sub 0 1 $(sub $(rand $(length $(nick-aliases devteamnp))) $(nick-aliases devteamnp))))))> that's dumb
|
!dump
|
&dump
|
!dumpplease
|
!learn q dump
|
!dupzwin
|
!lg ${*:-.} won gid!=$(!lm ${*:-.} abyss.enter won s=gid fmt:"${.}" join:"|" stub:"")|$(!lm ${*:-.} br.enter!=temple|pan|depths|zot|icecv|volcano|lab|bailey|sewer|bazaar|ossuary|wizlab|trove won s=gid fmt:"${.}" join:"|" stub:"") s=char title:"DUPZ games won for $(name_fixup $*)" stub:"No games won for $(name_fixup $*) as a DUPZ win."
|
!earlygod
|
.echo $(let (x (!lm ${1:-.} $* god.worship place=(d:1|d:2|d:3) xl<9 won x=cdist(gid) fmt:"${x}" stub:"0") y (!lm ${1:-.} $* god.worship place=(d:1|d:2|d:3) xl<9 x=cdist(gid) fmt:"${x}" stub:"0") player (name_fixup ${1:-.})) "${player}$(argst $*) has won after using a pre-d:4 altar $x out of $y times: $(int (/ (* 100 $x) $y))%.")
|
!echo
|
.echo $*
|
!elfendkills
|
!echo Elf end vault kills$(argst $*): $(vaultallkills kmap~~elf_hall|nooodl_elf_gasket map~~elf_hall|nooodl_elf_gasket $*)
|
!elywinssincenewely
|
!lg * won ely rstart>20150103 s=name
|
!embarrassing
|
=eval_rand_entry embarrassing_deaths
|
!embarrassingdeath
|
!tv $(replace !tv $(replace !lg $(nth 1 $(split "]: " $(ldb "embarrassing_deaths" $(if $* $* $(rand 1 (entrylength "embarrassing_deaths"))))))))
|
!embrace
|
.echo $nick $(=rndspellgesture). The bodies of the dead rush to embrace ${*:-$nick}!
|
!emote
|
!echo ${1:-👏} $(join " ${1:-👏} " (split " " "$(ignore $1)${*:-REMOVE FELIDS}")) ${1:-👏}
|
!emoteall
|
!echo ${1:-👏 } $(join " ${1:-👏} " (split "" "$(ignore $1)${*:-REMOVEFELIDS}")) ${1:-👏}
|
!emotemotto
|
!emotewords $1 $(!motto $(ignore $1)$*)
|
!ev.wrong
|
.echo Race: $1 str: $2 dex: $3 ER: $4 dodging: $5 armour: $6 => EV: $(int (evscale (+ 10 (+ (=evbonus.sizefactor $(lower $1)) (- (max (- (=dodgebonus $1 $3 $5) (=armourdodgepenalty $1 $4 $2)) 0) (=aevp $4 $2 $6))))))
|
!eventuallywon
|
.echo $(let* (sortbyfirst (fn (l r) (- (car $r) (car $l))) format (fn (x) "$(cdr $x) $(car $x)%") xs (split "|" (!lg * $* x=count(name) fmt:'$(re-replace ".*\((.*)%.*" $1 ${x[0]}) ${.}' notitle join:'|' / won))) "Ratio of players that won:tried$(argst $*): $(join ", " (map $format (sort $sortbyfirst $xs)))")
|
!evilgodwinner
|
!lg * won evilgod s=god / @${1:-.} title:"$(name_fixup ${1:-.})'s unwon evil gods: " stub:"$(name_fixup ${1:-.}) has won all evil gods." fmt:"${.}" ?:%=0.0
|
!evilvictory
|
!won ${1:-.} evilgod
|
!evilwinner
|
.echo $(let (player $(name_fixup ${1:-.})) (let (egod $(!lg * !buggygods won evilgod !experimental s=god / @$player title:"" fmt:"${.}" stub:"" ?:%=0.0) erace $(!lg * !buggygods won evilrace !experimental s=crace / @$player title:"" fmt:"${.}" stub:"" ?:%=0.0)) (if (and (= $egod "") (= $erace "")) "$player has won all evil gods and races" "Unwon evil gods and races $player: $egod, $erace")))
|
!extendedfinished
|
!lg ${*:-.} gid=$(!lm ${*:-.} br.enter=pan|geh|coc|dis|tar|tomb s=gid fmt:"${.}" join:"|") / won15 title:"% games won with 15 runes after going extended for $name:"
|
!fahrenheit
|
.echo $(sprintf "$* degrees C is %1.1f degrees F" $(+ (* $1 1.8) 32))
|
!fanatic
|
.echo $(let (player $(name_fixup ${2:-.})) (let (frace $(!lg * $1 playable !fanaticbuggygods won !experimental s=crace / @$player title:"" fmt:"${.}" stub:"" ?:%=0.0) fclass $(!lg * $1 playable !fanaticbuggygods won !experimental s=class / @$player title:"" fmt:"${.}" stub:"" ?:%=0.0)) (if (and (= $frace "") (= $fclass "")) "$player has won all races and classes for $1" "Unwon races and classes for $player with $1: $frace, $fclass")))
|
!fanaticclass
|
!lg * $1 playable !fanaticbuggygods won !experimental s=class / @${2:-.} title:"Unwon $1 classes for $(name_fixup $2)" fmt:"${.}" stub:"$(name_fixup $2) has won all classes for $1" ?: %=0.0
|
!fanaticrace
|
!lg * $1 playable !fanaticbuggygods won !experimental s=crace / @${2:-.} title:"Unwon $1 races for $(name_fixup $2)" fmt:"${.}" stub:"$(name_fixup $2) has won all races for $1" ?: %=0.0
|
!fanaticrole
|
!fanaticclass
|
!fast10
|
.echo Fastest 10$(if $* " for $*"): $(!lg * won !@bot !@hybridbot $* s=gid x=max(name),-min(dur),max(char) fmt:'${x[0]} ${x[2]} ${x[1]}' dur<=$(!lg * $* won !@bot !@hybridbot min=dur x=dur -10 fmt:"${x[0]}"))
|
!fastestspecieswins
|
!lg ${1:-*} $* !@bot won playable !experimentalrace s=crace x=min(dur) o=min(dur) title:'Fastest species wins' fmt:'$(replace ?? (!ftw ${.})) ($x[0])'
|
!fastplayer
|
!lg ${*:-.} won dur<$(!lg * urune=15 won min=dur x=dur fmt:"${x[0]}") fmt:"$(name_fixup $*) is a fast player." stub:"$(name_fixup $*) is not a fast player."
|
!fastplayers
|
.echo $(!lg * !@bot !@hybridbot won s=name x=min(dur) o=-min(dur) dur<$(!lg * urune=15 won min=dur fmt:"$dur") join:" " fmt:"${.}")
|
!feliddeath
|
.echo $(+ 1 (int $(!lm ${1:-.} fe-- death $* gid=$(!lg ${1:-.} fe-- $* x=gid fmt:"${x[0]}") fmt:"$n" stub:"0")))
|
!file
|
!source
|
!findcmd
|
!cmdsearch
|
!finddoppleganger
|
!lm * xl=$(!lm ${*:-.} x=xl alive fmt:"${x[0]}") char=$(!lm ${*:-.} x=char alive fmt:"${x[0]}") gid!=$(!lm ${*:-.} x=gid alive fmt:"${x[0]}") alive
|
!findtitle
|
!title $*
|
!firestorm
|
.echo $nick $(=rndspelltarget $*). A raging storm of fire appears! The great blast of fire engulfs ${*:-something}!
|
!firework
|
.echo http://kramin.herokuapp.com/fireworktext?text=$(replace ' ' + $*)
|
!firstwins
|
!lg ${1:-.} won 1 $* x=char -count:10 fmt:'$x[0]' join:"|" title:"First 10 wins for $name$(argst $*)" stub:"$name doesn't have any wins yet!"
|
!flip
|
.echo (╯°□°)╯︵ $(map (fn (w) (apply concat (map (fn (c) (if (< $c T) (lookup $c (flipcharhash1)) (lookup $c (flipcharhash2)))) (reverse (split "" $w))))) (join " " (reverse (split " " ${*:-┻━┻}))))
|
!flipdang
|
!flip $(!zap $(!blame3 $(!dang)))
|
!func
|
!function
|
!gamecost
|
.echo $(/ $(* $(+ 0.0 ${2:-99}) $(- $(months $(=time)) $(months $(!lg * src=$1 1 fmt:'$rstart')))) $(!lg * src=$1 x=count(gid) fmt:'${x[0]}'))
|
!gamegraph
|
.echo $(let (gid $(!lm $* x=gid fmt:"${x[0]}")) $(!lm * gid=$gid fmt:"${name}, ${char}: ")" "$(nth -1 (split " " (!lm * gid=$gid s=turn x=max(AC),max(EV),max(SH),max(mhp/10),max(absdepth) -graph:area))))
|
!gameinfo
|
!lm ${1:-.} $* x=str,int,dex,gid fmt:'${name} the L${xl} ${char}^$(=godshortname ${god}) in ${place} ($src $(if $tiles tiles console)), ${dur}, T:$turn$(if ${urune} ", runes: ${urune} ($(=lastrunes * gid=${x[3]})$(if (> ${urune} 3) ...))"), defenses: ${ac}/${ev}/${sh}, stats: ${x[0]}/${x[1]}/$x[2]$(if ${fifteenskills} ", >15 skills: ${fifteenskills}")$(if ${maxskills} ", Max skills: ${maxskills}")'
|
!gamepath
|
.echo $(let (path (gamepath_query $*)) (if (= (length $path) 0) "No milestones found." (format_autocompress $path (list gamepath_format_normal gamepath_format_compressed1 gamepath_format_compressed2 gamepath_format_compressed3 gamepath_format_compressed4))))
|
!gamepath.query
|
.echo $(let (gid (!lg $* fmt:'$game_key')) (!lm * gid=$gid type=br.enter|rune|orb !portal s=id,turn,type,noun pfmt:'${.}:${child}' join:'/' stub:''))
|
!gamerank
|
!lg * $(ignore $1) $* score>=$(!lg ${1:-.} $* x=score fmt:'$x[0]') x=score,src,cv -count fmt:'$n, Score: $x[0], Server: $x[1], Ver: $x[2]' title:"Game rank for $(name_fixup $1)"
|
!games
|
!lm ${1:-.} $* alive s=name,gid x=max(name),max(xl),max(char),max(god) o=max(xl) title:"Current games for $(name_fixup ${1:-.})$(if $* " ("$*")")" join:" | " pfmt:"${.}: ${child}" fmt:'L${x[1]} ${x[2]}^$(=godshortname ${x[3]})'
|
!gamesbyversion
|
!lg ${1:-.} s=regexp_replace(cv, "-a", "") o=-. x=count(gid) -graph
|
!gamessincelastwin
|
!gamestriedsincelastwin
|
!gamessincelastwon
|
!gamestriedsincelastwin
|
!gamestowin
|
!gamesuntilwin $*
|
!gamestriedsincelastwin
|
.echo $(let (player (name_fixup $*)) (try (!lg ${*:-$user} rstart>$(!lg ${*:-$user} won -1 fmt:"$end") s=char title:"$n games since last win for $player" fmt:"${n_x}${.}" stub:"No games played since last win for $player.") (!lg ${*:-$user} s=char title:"$n games since last win for $player" fmt:"${n_x}${.}" stub:"No games played since last win for $player.")))
|
!gamesuntillair
|
!lg ${*:-.} rstart<=$(!lm ${*:-.} br.enter=lair 1 fmt:"$start" stub:"0") fmt:'$target had $(- $n 1) games before reaching lair.' stub:"$(name_fixup $*) has never reached lair."
|
!gamesuntilmilestone
|
!lg ${1:-.} $(ignore $2)$* rstart<=$(!lm ${1:-.} $2 $* 1 fmt:"$start" stub:"0") fmt:"$(name_fixup $1) had \$(- \$n 1) games before their first $2 milestone$(argst $*)." stub:"No $2 milestones for $(name_fixup $1)$(argst $*)."
|
!gamesuntilrune
|
!lg ${*:-.} rstart<=$(!lg ${*:-.} urune>0 1 fmt:"$start" stub:"0") fmt:'$target had $(- $n 1) games before their first rune.' stub:"No games with a rune for $(name-fix $*)."
|
!gamesuntilwin
|
!lg ${1:-.} $* rstart<=$(!lg ${1:-.} $* won 1 fmt:"$start" stub:"0") fmt:"$(name_fixup $1) had \$(- \$n 1) games before their first win$(argst $*)." stub:"No wins for $(name_fixup $1)."
|
!gamesuntilwon
|
!gamesuntilwin $*
|
!gameswonsince
|
!lg ${1:-.} won rend>$(!lg ${1:-.} $* fmt:"$end" stub:"error") fmt:"$n" stub:"0"
|
!gdeaths
|
!lg ${1:-.} $* killer~~'s_ghost s=killer title:"$n deaths to player ghosts for $(name_fixup ${1:-.})" stub:"No deaths to player ghosts for $(name_fixup ${1:-.})"
|
!getcasualclass
|
!rng $(replace "," " " $(replace " " "_" $(!lg * playable s=class class!=$(replace " " "_" $(!lg * playable s=class casualchar fmt:"${.}" join:"|")) fmt:"${.}")))
|
!getcasualrace
|
!rng $(replace "," " " $(replace " " "_" $(!lg * playable s=crace crace!=$(replace " " "_" $(!lg * playable s=crace casualchar fmt:"${.}" join:"|")) fmt:"${.}")))
|
!ghostkills
|
!lg * ikiller~~^($(join '|' (nick-aliases (name_fixup ${1:-.}))))$(=apostrophe)s?_ghost $* s=ikiller,name title:"${n} kills by $(name_fixup ${1:-.})'s ghost$(if "${*}" " (${*})" "")"
|
!ghostratio
|
.echo $(let (d (=gdeathcount ${1:-.} $*) k (=gkillcount ${1:-.} $*) player (name_fixup $1)) "The ghost of ${player} has killed ${k} players, but ${player} has died to ${d} ghosts: $(if (= (int ${d}) 0) NaN (int (+ 0.5 (/ (* 100.0 ${k}) ${d})))%)")
|
!ghostvaultkills
|
!echo Ghost vault kills$(argst $*): $(vaultallkills ghostkmap ghostmap "$*")
|
!git
|
.echo %git $*
|
!gitgrep
|
.echo $(ignore $1)$(let (n $1 s $*) (concat "%git HEAD^{/" $s "}" (repeat (concat "^^{/" $s "}") (- (int $n) 1))))
|
!givepot
|
.echo $(if (/= $1 $nick) (mvmoney (ldb-entry "~holdem:pot" 0) "~holdem:pot" "~"$1":money") "Can't take it yourself")
|
!gkiller
|
!lm . type=ghost s=noun
|
!gkillratio
|
=gkillratio2.helper2 $(name_fixup $1) $(=target ${2:-*}) $*
|
!gkills
|
!lg * ikiller~~^($(join '|' (nick-aliases (name_fixup_long ${1:-.}))))$(=apostrophe)s?_ghost $* s=name title:"${n} kills by $(name_fixup ${1:-.})'s ghost$(argst $*)"
|
!glaciate
|
.echo $nick $(=rndspelltarget $*). $nick conjures a mighty blast of ice! The great icy blast engulfs ${*:-something}!
|
!glasses
|
.echo ( •_•) ( •_•)>⌐■-■ (⌐■_■)
|
!glyph
|
.echo http://dev.host/~shmup/crawl/dcss-glyphs.html#$1
|
!gnollchallenge
|
!lg * gn chei win vlong>=0.21-a0-133-gf55ed5b !gnollsredux s=name $*
|
!godwinner
|
!lg * playable:god s=god fmt:"${.}" title:"$(name_fixup ${1:-.})'s unwon gods" stub:"$(name_fixup ${1:-.}) has already won with all gods." / @${1:-.} won ?: N=0
|
!godwins
|
!lg ${1:-.} title:"" fmt:'${n_x}$(lookup ${.} (godshortnamehash))' god s=god $* / won
|
!godwononfirsttry
|
!lg ${*:-.} rstart=$(!lg ${*:-.} s=god x=min(rstart) fmt:"${x[0]}" join:"|") won s=god title:"Gods won first try for $(name_fixup $*)" stub:"No gods won on the first try for $(name_fixup $*)"
|
!goodcompass
|
!won $(name_fixup ${1:-.}) goodgod
|
!goodgodwinner
|
!lg * won goodgod s=god / @${1:-.} title:"$(name_fixup ${1:-.})'s unwon good gods: " stub:"$(name_fixup ${1:-.}) has won all good gods." fmt:"${.}" ?:%=0.0
|
!goodgodwon
|
!lg * won goodgod s=god / @${1:-.}
|
!goodplayer
|
.echo $(let (wins $(nwins ${1:-.}) player $(name_fixup $1)) $(if (>= $wins 10) "$player is a goodplayer: $wins wins." "$player is not a goodplayer yet: $wins $(plural win $wins) ($(- 10 $wins) to go)."))
|
!goodvictory
|
!won ${1:-.} goodgod
|
!goodwhichgod
|
!lg * won !chei $1 recent $* s=god title:"${n} recent wins for $1$(argst $*)" stub:"No recent wins for $1$(argst $*)."
|
!goodwinner
|
!lg * !buggygods won goodgod !experimental s=god / @${1:-.} title:"Unwon good gods for $(name_fixup ${1:-.})" stub:"$(name_fixup ${1:-.}) has won all the good gods." fmt:"${.}" ?:%=0.0
|
!gotrune
|
.echo $(let (rc (!lm ${2:-*} recent rune=$1 fmt:"$n" stub:"0") rbr (!lm ${2:-*} recent rune=$1 x=br fmt:"$x[0]")) (let (brc (if (= $rbr "Abyss") $(!lm ${2:-*} recent abyss.enter x=cdist(gid) fmt:"$x[0]" stub:"0") (!lm ${2:-*} recent br.enter=$rbr x=cdist(gid) fmt:"$x[0]" stub:"0"))) "$rbr entered $brc times. $1 rune found $rc times ($(=percentcalc $rc $brc) %)."))
|
!gotslimy
|
!lm ${*:-.} br.enter=slime fmt:"You entered Slime $n times"
|
!greaterchar
|
!rg comborobin playable won crace!=$(!lg ${1:-.} won s=char join:"|" fmt:'$(combo_to_race ${.})' stub:"") class!=$(!lg ${1:-.} won s=char join:"|" fmt:'$(combo_to_class ${.})' stub:"") $* fmt:"The RNG chooses: $char" stub:"${1:-.} is already a great(er)player!"
|
!greaterlairer
|
.echo $(do ${1:-.} "")$(!lm * playable:role br.enter=lair $* s=role o=-role / @${1:-.} format:"${.}" title:"Unlaired backgrounds for $name$(if $* " ("$*")")" stub:"$name$(if $* " ("$*")") is a greaterlairer!" ?:N=0)
|
!greaterorbrun
|
.echo $(!lm $(name_fixup ${1:-.}) greaterorbrun fmt:"$name has completed a greater orb run!" stub:"$name has not completed a greater orb run")
|
!greaterplayer
|
.echo $(do ${1:-.} "")$(greathelper2 cls ${1:-.} backgrounds "greaterplayer (or at least has won every background)" playable:job $*)
|
!greaterplayer_old
|
.echo $(greathelper cls ${1:-.} backgrounds greaterplayer playable:job)
|
!greaterprogress
|
!greatprogress
|
!greatlairer
|
.echo $(do ${1:-.} "")$(!lm * playable:sp $* br.enter=lair s=crace o=-crace / @${1:-.} format:"${.}" title:"Unlaired species for $name$(if $* " ("$*")")" stub:"$name$(if $* " ("$*")") is a greatlairer!" ?:N=0)
|
!greatplayer
|
.echo $(do ${1:-.} "")$(greathelper2 crace ${1:-.} species greatplayer playable:sp $*)
|
!greatplayer_old
|
.echo $(greathelper crace ${1:-.} species greatplayer playable:sp)
|
!greatrace
|
.echo $(let (a (lower (canonicalise crace $1))) (if (= $a xx) "$1 is not a race, sorry." $(greathelper char ${2:-.} "${a}s" "great$(replace ' ' $a)" "playable crace=$(replace ' ' '_' $a)")))
|
!greatracesnipe
|
.echo $(!lg * playable won s=crace,name x=+count(role) pfmt:"${.}:${child[0]}" fmt:"$x")
|
!greatrole
|
.echo $(let (a (lower (canonicalise role $1))) (if (= $a xx) "$1 is not a role, sorry." $(greathelper char ${2:-.} "${a}s" "great$(replace ' ' $a)" "playable cls=$(replace ' ' '_' $a)")))
|
!greatrole2
|
.echo $(let (a (lower (canonicalise role $1))) (if (= $a xx) "$1 is not a role, sorry." $(greathelper char ${2:-.} "${a}s" "great$(replace ' ' $a)" "playable:sp playable cls=$(replace ' ' '_' $a)")))
|
!greatroles
|
.echo $(ldb-lookup greatrole[1])
|
!greatrolesnipe
|
.echo $(!lg * playable won s=role,name x=+count(crace) pfmt:"${.}:${child[0]}" fmt:"$x")
|
!greatsnipe
|
!lg * playable crace!=$(!lg ${1:-.} won s=char join:"|" fmt:'$(combo_to_race ${.})') class!=$(!lg ${1:-.} won s=char join:"|" fmt:'$(combo_to_class ${.})') $* s=char x=-max(sc) title:"The lowest high scores are" fmt:"${.} [${x}]" stub:"${1:-.} is already a great(er)player!"
|
!grektd
|
!lm * type=ghost noun=$nick s=name
|
!gt
|
.echo Go team ${*}!
|
!guruplayer
|
.echo $(if (> (!lg ${1:-.} $* won fmt:"$n" stub:"0") 0) "Listen to $(name_fixup $*), as they are a guru who has won the game." "No wins for $(name_fixup $*)")
|
!hands
|
.echo (∩ ͡° ͜ʖ ͡°)⊃━☆゚.✋🤙✌️👌🤚 $*
|
!haunt
|
.echo $nick $(=rndspelltarget $*). Insubstantial figures form in the air. The $(=randwraith) hits ${*:-something}! x$(rand 2 4) The $(=randwraith) hits ${*:-something}! x$(rand 3 6)
|
!helldeathrate
|
!lm ${1:-.} br.enter=tar|geh|coc|dis s=br o=% title:"Death rates in hell branches for $(name_fixup ${1:-.})$(argst $*)" stub:"Death rates in hell branches for $(name_fixup ${1:-.})$(argst $*)" / lg:br=$noun
|
!hellfire
|
.echo /me ends ${*:-it} in hellfire! You hear a strangely unpleasant explosion.
|
!hellsuccess
|
.echo Hell success rate for $(name_fixup $*). $(join ", " (map (fn (x) (!lm ${*:-.} !alive br.enter=$x / lg:place!=$x title:"$x" pfmt:"${.}${%}" )) (list hell geh coc tar dis)))
|
!highscores
|
!lg * ${2:-*} s=char o=-char x=max(sc) / @${1:-.} fmt:"${.}" join:" " title:"${name}'s high scores" stub:"$name has no high scores." ?:%.max(sc)=1
|
!hilariousdeath
|
!tv $(replace !tv $(replace !lg $(nth 1 $(split "]: " $(ldb "hilarious_deaths" $(if $* $* $(rand 1 (entrylength "hilarious_deaths"))))))))
|
!hitme
|
.echo $(let* (deck (cdr (split ' ' (ldb ~deck))) card (car $deck) remain (cdr $deck)) (do (ldb-set! ~deck 0 (join ' ' $remain)) $card))
|
!hittemtest
|
.echo $(let (l (length (split , (!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=char x=min(rstart) fmt:"${x[0]}" join:"|") won s=char stub:"")))) (!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=char x=min(rstart) fmt:"${x[0]}" join:"|") won s=char title:"$l chars won first try for $name" stub:"No chars won on first try for $name"))
|
!hm
|
.echo <$(replace neil |amethyst $(replace sgrunt Grunt $(car $(sub 0 1 $(sub $(rand $(length $(nick-aliases devteamnp))) $(nick-aliases devteamnp))))))> hm
|
!holdeminit
|
.echo $(do (ldb-add "~"$nick":cards" 0 "xx xx") (ldb-add "~"$nick":money" 0 "1000"))
|
!hostileservant
|
.echo ~ $(int (* 400.0 (/ 1 (+ 20 (* $1 3.0))))) % chance of hostile {lesser, greater} servant
|
!hoursuntilwon
|
!timeuntilwon
|
!hs
|
!lg $* max=sc
|
!huboris
|
!lm * uniq~~boris lg:cikiller~~boris s=gid
|
!ignominyratio
|
!lg ${1:-.} $* / ignominy title:"The amount of time $(name_fixup ${1:-.}) died stupidly"
|
!implement
|
!commit Implement ${*}
|
!infiniteloop
|
.echo !infiniteloop
|
!iood
|
.echo $nick $(=rndioodgesture). The orb of destruction hits ${*:-something}$(nth $(rand 3) $(split '|' '!|!!|!!!'))!!!
|
!ironshot
|
.echo $nick $(=rndspelltarget ${*:-something}). The iron shot hits ${*:-something}$(nth $(rand 3) $(split '|' '!|!!|!!!'))!
|
!issue
|
!echo https://github.com/crawl/crawl/issues/$*
|
!jim
|
.echo I`m a Healer, not $(re-replace '^a ([AEIOU])' 'an $1' (re-replace '.*: (.*).$' 'a $1' (!rng @role)))!
|
!kids
|
!lg ${1:-.} won s=crace kids fmt:"$name is childish: ${crace}!" stub:"$name is Too Old!"
|
!killration
|
!killratio
|
!killsby
|
!lg * ikiller=${*} s=name
|
!klownpie
|
!echo $(let* (n ${*:-$nick} p (elt (rand (length (hash-keys (klownpie)))) (hash-keys (klownpie))) m (replace %n $n (replace %N "$n's" (replace %s (elt (rand 3) (list "a bat" "an insubstantial wisp" "a filthy swine")) (elt $p (klownpie)))))) (!echo The Killer Klown throws a pie at $n. The Klown pie hits ${n}! ${p}! $m))
|
!klownpies
|
!lg ${1:-*} $* klownpied byklownpie title:"Klown pies for $(name_fixup ${1:-*})$(argst $*)" stub:"No klown pies for $(name_fixup ${1:-*}$(argst $*)"
|
!koboldina
|
!lg * kaux~~tornado
|
!lairbranches
|
!lm ${1:-.} br.enter=snake|swamp|shoals|spider -count:20 x=br fmt:'$noun' title:"last 20 lair branches for $(name_fixup $1)" stub:"$(name_fixup $1) has never entered a lair branch"
|
!lairendkills
|
!echo Lair end kills$(argst $*): $(vaultallkills lairendkmap lairendmapcertain "$*")
|
!lairgamesuntilwin
|
!lm ${*:-.} br.enter=lair rstart<=$(!lg ${*:-.} won 1 fmt:"$start" stub:"0") fmt:'$target had $(- $n 1) games that reached lair before their first win.' stub:"No wins for $(name_fixup $*)."
|
!lairratio
|
.echo $(let (x (!lm ${1:-.} $* br.enter=lair ktyp!= x=cdist(gid) fmt:"${x}" stub:"0") y (!lg ${1:-.} $* fmt:"${n}" stub:"0") player (name_fixup $1)) "${player}$(if "${*}" " (${*})" "") has reached Lair in $x of $y attempts: $(int (+ 0.5 (/ (* 100.0 $x) $y)))%")
|
!lairration
|
!lairratio
|
!lairrunes
|
!lm ${1:-.} rune=serpentine|decaying|barnacled|gossamer -count:20 x=rune fmt:'$noun' title:"last 20 lair runes for $(name_fixup $1)" stub:"$(name_fixup $1) has never found a lair rune"
|
!lairskills
|
!lm ${1:-.} $* br.end=lair !gn s=sk title:"Skills at Lair end by $(name_fixup ${1:-.}) $(argst $*)"
|
!lairsuccess
|
.echo Lair success rate for $(name_fixup $*). $(join ", " (map (fn (x) (!lm ${*:-.} !alive br.enter=$x / lg:place!=$x title:"$x" pfmt:"${.}${%}" )) (list lair spider swamp snake shoals slime)))
|
!lairtowins
|
.echo $(let (y (!lm ${1:-.} $* br.enter=lair ktyp!= x=cdist(gid) fmt:"${x}" stub:"0") x (!lg ${1:-.} $* fmt:"${n}" stub:"0" won) player (name_fixup $1)) "${player}$(if "${*}" " (${*})" "") has won after reaching Lair in $x of $y attempts: $(int (+ 0.5 (/ (* 100.0 $x) $y)))%")
|
!lairvaultkills
|
!echo Lair vault kills$(argst $*): $(vaultallkills "!lairendkmap kmap!~~layout|uniq|entry" "!lairendmap map!~~layout|uniq|entry" "br=lair $*")
|
!last100
|
!won ${1:-.} $* rend>=$(!lg ${1:-.} $* fmt:"${rend}" -100)
|
!lasty_monkills
|
!lg * ikiller=(caustic_shrike|caustic_bee|caustic_wasp|entropy_weaver|salamander_stormcaller|firecaller) s=ikiller
|
!lcs
|
.echo $nick $(=rndspelltarget ${*:-something}). The crystal spear hits ${*:-something}$(nth $(rand 3) $(split '|' '!|!!|!!!'))!!
|
!learntv
|
.echo $(exec $(re-replace ".*!(tv|lg|lm)" '!$1' $(ldb-smart-lookup $1)))
|
!lettest
|
!echo $(let (hc (lghashcounts 's=vault(kmap)' "$1")) $hc)
|
!lgn
|
!lg ${*:-.} nostalgia
|
!lgpath
|
!gamepath
|
!lgr
|
!lg $(recursive_expand_nick (name_fixup ${1:-.}) 2) $* title:"$n games"
|
!list_casual_races_to_do
|
.echo $(replace "," " " $(replace " " "_" $(!lg * playable s=crace crace!=$(replace " " "_" $(!lg * playable s=crace casualchar_tmp fmt:"${.}" join:"|")) fmt:"${.}")))
|
!listgoodplayers
|
!lg * s=name won ?: N>9
|
!listgreaterplayers
|
!lg * playable:job won s=name x=count(cls) title:"" fmt:"${.}" ?: count(cls)=$(!lg * playable:job won x=count(cls) fmt:"${x}")
|
!listgreatplayers
|
!lg * playable:sp won s=name x=count(crace) title:"" fmt:"${.}" ?: count(crace)=$(!lg * playable:sp won x=count(crace) fmt:"${x}")
|
!live
|
!lm ${1:-*} alive name!=$nick x=src title:"" fmt:'$(=time_since_milestone @${1:-*} alive name!=$nick)'
|
!lldrc
|
.echo http://lazy-life.ddo.jp:8080/rcfiles/$(replace git trunk ${2:-trunk})/$(!lm ${1:-.} lld x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc
|
!lmpath
|
.echo $(let (path (lmpath_query $*)) (if (= (length $path) 0) "No milestones found." (format_autocompress $path (list gamepath_format_normal gamepath_format_compressed1 gamepath_format_compressed2 gamepath_format_compressed3 gamepath_format_compressed4))))
|
!lmpath.query
|
.echo $(let (gid (!lm $* fmt:'$game_key')) (!lm * gid=$gid type=br.enter|rune|orb !portal s=id,turn,type,noun pfmt:'${.}:${child}' join:'/' stub:''))
|
!lmr
|
!lm $(recursive_expand_nick (name_fixup ${1:-.}) 2) $* title:"$n milestones"
|
!locate
|
!lm ${*:-.} alive fmt:"${*:-${user}} was last seen on \$(upper $src) ($name, L$xl $char of ${god:-No God})." stub:"Failed to locate ${*:-${user}}."
|
!locateall
|
.echo $(or $(join " || " $(split " | ^" $(sub 1 $(=locateall.raw $*)))) "Failed to locate $(name_fixup "$*").")
|
!locateallall
|
.echo $(or $(join " || " $(split " | ^" $(sub 1 $(=locateall.rawall $*)))) "Failed to locate $(name_fixup "$*").")
|
!location
|
!locate
|
!lodjgames
|
!lm * lo|dj alive_all !cszo !ckr !rhf $* x=cdist(gid) fmt:"${.}: ${x[0]}" pfmt:"${.}: ($child)" title:"Ongoing LO & Dj games" s=crace,src
|
!log
|
!lg ${*:-.} -log
|
!log10
|
!lg xyz x=log($*) fmt:"${x[0]}"
|
!lol
|
!echo lol
|
!losingstreak
|
!won zermako
|
!lossorder
|
.echo $(let (player (name_fixup ${1:-.})) (!lg ${1:-.} $* !won s=end,char title:"Losses by $player $(argst $*) in order" pfmt:"${child}" stub:"No losses for $player $(argst $*)."))
|
!lowturns
|
!lg * playable $* won s=char o=min(turn) x=min(turn) title:"Go win these quickly!" fmt:"${.} [${x}]"
|
!lst
|
.echo $(replace .txt .lst $(!log ${*:-.}))
|
!magicd
|
.echo $nick $(=rndspelltarget $*). The magic dart hits ${*:-something}!
|
!magicschoolswon
|
.echo Magic schools at >15 skill won for $(name_fixup $*). $(join ", " (map (fn (x) (!lg ${*:-.} won / fifteenskills~~$x title:"$x")) (list air_magic charms conjurations earth_magic fire_magic hexes ice_magic necromancy poison_magic summonings translocations transmutations)))
|
!makewords
|
.echo $(map (fn (p) (.echo ${1}${p})) (sort (map (fn (c) (replace "??" (!ftw $c))) (split "|" (!lg * playable current trunk s=cls join:"|" fmt:"${.}")))))
|
!makhlebmarks
|
!lm ${1:-.} mark newmakhleb $* s=regexp_replace(noun, "accepted the Mark of( the)?", "") title:"Makhleb marks taken by $(name_fixup ${1:-.})$(argst $*)" stub:"No Makhleb marks taken by $(name_fixup ${1:-.})$(argst $*)"
|
!mantis
|
!bug
|
!map
|
.echo $(replace .txt .map $(!log $*))
|
!mapkills
|
!lg ${2:-*} !boring !won (( map=~$(replace . $nick ${1:-${nick}}) || kmap=~$(replace . $nick ${1:-${nick}}))) $*
|
!mapmakerkills
|
!lg ${1:-*} kmapmaker $* bykmapmaker title:"Kills of $(name_fixup ${1:-*})$(argst $*) by map maker" stub:"No kills of $(name_fixup ${1:-*})$(argst $*) for known map makers"
|
!massages
|
.echo Sorry, but I don't know you that well, $user.
|
!megacats
|
!lg ${1:-.} won fe-- $* s=char join:"|" fmt:"${n_x}😼" stub:"😿" title:"Cats won for $(name_fixup $1)"
|
!meleeweaponswon
|
.echo Melee weapons at >15 skill won for $(name_fixup $1). $(join ", " (map (fn (x) (!lg ${1:-.} won $* / fifsk=$x title:"$x")) (list long_blades short_blades axes maces polearms staves unarmed)))
|
!mesages
|
!messages
|
!message
|
.echo You probably meant $(if $* "!tell, or possibly !messages" "!messages, or possibly !tell").$(ignore $*)
|
!mfcwc
|
!kw mfcwcall ${1}|$(=kw mfcwcall)
|
!mfcwcnext
|
.echo $(replace char= '' (!rg * playable !mfcwcall x=char title:"" fmt:"${x}"))
|
!miekminimalwin
|
!lg ${*:-.} won gid!=$(!lm ${*:-.} abyss.enter won s=gid fmt:"${.}" join:"|" stub:"")|$(!lm ${*:-.} br.enter=vaults|elf won s=gid fmt:"${.}" join:"|" stub:"") s=char title:"Games won without going to abyss, elf and vaults for $(name_fixup $*)" stub:"No games won for $(name_fixup $*) without going to the abyss, elf, or vaults."
|
!miscaster
|
.echo $(!lg ${1:-.} kaux~~miscasting s=kaux title:"Miscasts that have killed ${name}" pfmt:"${child}" stub:"${name} has never been killed by a miscast.")
|
!money
|
.echo $(nth 1 (split "]:" (ldb "~"$nick":money")))
|
!motto
|
.echo $(apply concat (map (fn (w) (upper (sub 0 1 $w))) $*))! $(map (fn (w) (concat (capitalise (sub 0 1 $w)) - (capitalise $w) !)) $*) $(map capitalise $*)! $(map upper $*)!
|
!motto.first
|
.echo $(apply concat (map (fn (w) (upper (sub 0 1 $w))) $*))
|
!mr
|
.echo $(let* (a (hash sp 7 fe 6 dd 6 na 5 mu 5 vs 5 he 4 vp 4 de 4 fo 4 og 4 dg 4) b $(elt $1 $a)) $(if $2 "$(* $(with-nvl 3 $b) $2) MR at level $2" "$(with-nvl 3 $b) MR per level"))
|
!murdertv
|
!lg * !boring !win !Pan !Dis:7 !Geh:7 !Tar:7 ((tiles || !@hugeterm)) ((cln end>=20130626 || !cln)) !csn (( killer!=tentacled_monstrosity|greater_naga|naga_warrior || ktyp!=mon )) vault(kmap)|vault(map)~~evilmike|_mu$|_due|dpeg|minmay|hangedman|lemuel|^st_|_st$|^grunt xl>=15 x=map,kmap $* stub:"No murders found." min=ntv -tv
|
!mute
|
.echo Muting ${1:-everyone} for ${2:-forever}.
|
!nameapply
|
.echo $(let (y (fn (p x) (map (fn (n) (exec (replace "@n" "$n" "$x"))) (split "|" (replace "@" $p))))) (y $1 "${*}"))
|
!nametest
|
.echo $(name_fixup $*)
|
!nchoice
|
.echo $(let (combo (if (is_int ${1:--1}) (nth (int ${1:--1}) $(split | (replace " => " | (!kw nchoice)))) $1)) (let (wins (!lg * t-games won char=$combo fmt:"$n" stub:"0")) (if (and (> (int $wins) 0) (= ${1:-x} x)) (=nchoice.new) (concat (canonicalise char $combo) ": $wins $(plural win (int $wins)) || " (or (=lastnchoice.combostatus $combo) "No $combo games in progress.")))))
|
!nchoice-credit
|
.echo $(map (fn (x) (concat (nth 1 $x) "(" (nth 0 $x) "),")) (transpose (list (sub 0 -1 (split | (=kw nchoice))) (split " " (!nchoice-credit.helper)))))
|
!nchoice-credit.helper
|
.echo $(map (fn (c) (!lg * t won $c 1 fmt:"$name" stub:"")) (split | (=kw nchoice)))
|
!nchoice-times
|
.echo $(map (fn (x) (concat (nth 0 $x) " " (nth 1 $x) ",")) (transpose (list (sub 0 -1 (split | (=kw ${2:-nchoice}))) (split " " (!nchoice-times.helper $1 $2))))) $(nth -1 (split | (=kw ${2:-nchoice}))) $(fduration (* 86400 (- (time) (stamptime (!lg * ${1:-t} won $(nth -2 (split | (=kw ${2:-nchoice}))) 1 fmt:"$rend")))))(+)
|
!nchoice-times.helper
|
.echo $(map (fn (d) (fduration (* 86400 (- (stamptime (nth 1 $d)) (stamptime (nth 0 $d)))))) (pairs (cons (!lg * ${1:-t} 1 fmt:"$rend") (map (fn (c) (!lg * ${1:-t} won $c 1 fmt:"$rend" stub:"")) (sub 0 -1 (split | (=kw ${2:-nchoice})))))))
|
!nchoice.likely
|
!lg * won playable race!=$(nchoice_norep_by combo_to_race) class!=$(nchoice_norep_by combo_to_class) char!=$(!lg * won t s=char fmt:"${.}" join:"|" stub:"xxxx") s=char o=-char format:"${.}" join:" " title:"Likely next Nemelex' Choices" stub:"none" ?:N<=19
|
!nchoice.possible
|
!lg * won playable char!=$(!lg * won t s=char fmt:"${.}" join:"|" stub:"xxxx") s=char o=-char format:"${.}" join:" " title:"Possible next Nemelex' Choices" stub:"none" ?:N<=10
|
!nchoiceclasscounts
|
!lg * t nchoice $* s=regexp_replace(char, "^..", "") x=+cdist(char) fmt:"${.}: $x[0]" title:"Nemelex Choice class combo counts$(argst $*)"
|
!nchoiceleft
|
!lg * nchoice t s=char o=-N fmt:'${.} ($(- 9 (if (= "" $n_x) 0 (replace x $n_x))) left)' title:"Available Nemelex Choice combos$(argst $*)" stub:"No available Nemelex Choice combos$(argst $*)" / won ?: N<9
|
!nchoiceruined
|
!lg * nem-eligible !nchoice t won $* s=char fmt:'${.}' title:"Ruined (formerly) eligible nemelex choice combos$(argst $*)" stub:"No eligible nemelex choice combos$(argst $*) have been ruined!"
|
!nchoices
|
!lg * nchoice t s=char / won fmt:"${n_x}${.}" ?:N<8
|
!nchoicesclasscounts
|
!lg * recent nem-eligible s=cls x=+cdist(char) fmt:"${.}: $x[0]" title:"Eligible class combo counts for Nemelex Choice"
|
!nchoicespeciescounts
|
!lg * t nchoice $* s=regexp_replace(char, "..$", "") x=+cdist(char) fmt:"${.}: $x[0]" title:"Nemelex Choice species combo counts$(argst $*)"
|
!nchoiceuntilwon
|
.echo $(!lg * ${1:-t} ${2:-nchoice} won s=char x=min(rend) fmt:'${.}: $(!lg * ${1:-t} char=${.} rend<${x[0]} fmt:"$n")' title:'Nemelex Choice games until won')
|
!nem-avoid-prob
|
.echo $(let* (nc (nem-chosen) nr (nem-remaining) nw (nem-weights $nc $nr) tw (apply ${+} $nw) fnr (apply nem-remaining-filtered || (split " " $*)) ids (subset-ids $nr $fnr)) (.echo Chance that next nchoice is not$(argst $*) is $(percent (apply + (map (fn (j) (elt $j $nw)) $ids)) $tw): $(map (fn (i) (sprintf "$(elt $i $nr)(%s)" (percent (elt $i $nw) $tw))) (reverse (sort (fn (x y) (<=> (elt $x $nw) (elt $y $nw))) $ids)))))
|
!nem-avoid-prob-old
|
.echo $(let* (cl (nem-remaining) fcl (apply nem-remaining-filtered || (split " " $*)) tw (nem-total-weight $cl) mw (nem-max-weight $cl) tw2 (nem-total-weight $fcl) mw2 (nem-max-weight $fcl)) (.echo Chance that next nchoice is not$(argst $*): $(sprintf "%2.2f%%" (* 100 (/ (float $tw2) $tw) (/ (float $mw) $mw2)))))
|
!nem-chances
|
!echo $(let* (nc (nem-chosen) nr (nem-remaining) nw (nem-weights $nc $nr) tw (apply ${+} $nw) num (length $nr)) (.echo Remaining eligible Nemelex Choices (chance): $(map (fn (i) (sprintf "$(elt $i $nr)(%2.2f%%)" (* 100 (/ (float (elt $i $nw)) $tw)))) (reverse (sort (fn (x y) (<=> (elt $x $nw) (elt $y $nw))) (range 0 (- $num 1)))))))
|
!nem-chances-filtered
|
.echo $(let* (nc (nem-chosen) nr (nem-remaining) nw (nem-weights $nc $nr) tw (apply ${+} $nw) fnr (apply nem-remaining-filtered || (split " " $*)) ids (subset-ids $nr $fnr)) (.echo possible nchoices$(argst $*): $(map (fn (i) (sprintf "$(elt $i $nr)(%2.2f%%)" (* 100 (/ (float (elt $i $nw)) $tw)))) (reverse (sort (fn (x y) (<=> (elt $x $nw) (elt $y $nw))) $ids)))))
|
!nem-eligible-remaining
|
!echo $(nem-remaining)
|
!nemeligibleclasscounts
|
!lg * recent nem-eligible $* s=regexp_replace(char, "^..", "") x=+cdist(char) fmt:"${.}: $x[0]" title:"Eligible Nemelex Choice class combo counts$(argst $*)"
|
!nemeligiblespeciescounts
|
!lg * recent nem-eligible $* s=regexp_replace(char, "..$", "") x=+cdist(char) fmt:"${.}: $x[0]" title:"Eligible Nemelex Choice species combo counts$(argst $*)"
|
!nerf
|
.echo /me nerfs ${*}!!!
|
!neutralwinner
|
.echo $(let (player $(name_fixup ${1:-.})) (let (egod $(!lg * !buggygods won god!= !goodgod !evilgod !experimental s=god / @$player title:"" fmt:"${.}" stub:"" ?:%=0.0) erace $(!lg * !buggygods won playable !evilrace !experimental s=crace / @$player title:"" fmt:"${.}" stub:"" ?:%=0.0)) (if (and (= $egod "") (= $erace "")) "$player has won all neutral gods and races" "Unwon neutral gods and races $player: $egod, $erace")))
|
!newac
|
.echo You get $(/ (int (/ (* 100.0 $1) 22.0)) 100.0) extra AC for each level of Armour skill if you have $1 base AC.
|
!newelywon
|
!lg * won ely rstart>20150103 s=name
|
!newestwon
|
!lg * won playable s=char x=max(end) o=max(end) fmt:"${.}" join:" " title:"Most recently won combos"
|
!newhell
|
!lg ${1:-*} newhell $* tar|coc|dis|geh title:"New hell deaths for $(name_fixup ${1:-*})$(argst $*)" stub:"No new hell deaths for $(name_fixup ${1:-*})$(argst $*)"
|
!newhellratio
|
!lm ${1:-*} newhell br.enter=tar|coc|dis|geh urune>=5 s=br o=% title:"Death rates in new hells for $(name_fixup ${1:-*})$(argst $*)" stub:"Death rates in new hells for $(name_fixup ${1:-*})$(argst $*)" / lg:br=$noun
|
!newmiscastdeath
|
!lg * newmiscasts ((ktype="wild magic" || killer="nameless horror")) $*
|
!newnext
|
.echo $(let* (p ${1:-${user}} c (last_win $p) needcombo (or (= 0 (entrylength ~${p}_next)) (= $c (entry ~${p}_next 1)))) (if (= $c XXXX) "Get your first win first, ${p}!" (if (and (= $channel msg) $needcombo) "Run this command in a public IRC channel to choose your next combo." "The RNG declares that $p shall win $(if $needcombo (=newnext $p) $c) next.")))
|
!newplayers
|
.echo $(- (!lg * end>$(- (time) ${1:-1}) x=cdist(name) fmt:"$x" stub:"0") (!lg * name=$(!lg * end>$(- (time) ${1:-1}) s=name fmt:"${.}" join:"|") end<$(- (time) ${1:-1}) x=cdist(name) fmt:"$x" stub:"0"))
|
!newplayerstoday
|
!newplayers 1
|
!newwon
|
=oldwon.nodefs ${1:-$(=oldwon.v)} ${2:-28}
|
!next-pref-append
|
.echo $(no_pm (do (if (= 0 (entrylength ~${user}_pref)) (ldb-add ~${user}_pref 1 "$*") (ldb-set! ~${user}_pref 1 "$(entry ~${user}_pref 1) $*")) "New !next preferences for ${user}: $(entry ~${user}_pref 1)."))$(ignore (concat $*))
|
!next2
|
.echo Another satisfied customer, next!
|
!nextcsdc
|
!echo The next combo for CSDC will be $(!a-char)
|
!nickel
|
.echo Here's a nickel, kid. Get yourself a better ${*:-computer}.
|
!nodiff
|
!lg . won / nodiff
|
!nonviolentwinning
|
!lg * nonviolentgod / won
|
!notthebees
|
!lg $* !won recentish notitle / thebees o=% ?: N>0
|
!nuke
|
!lg * -tv:nuke:channel=${1:-FooTV}
|
!numbersessions
|
!echo $(length (split (re-replace '.*http.+/' (!lg ${1:-.} $* -ttyrec))))
|
!nwhere
|
.echo $(let (combo (if (is_int ${1:--1}) (nth (int ${1:--1}) $(split | (replace " => " | (!kw nchoice)))) $1)) (let (wins (!lg * t won char=$combo fmt:"$n" stub:"0")) (if (and (> (int $wins) 0) (= ${1:-x} x)) (=nchoice.new) (concat (canonicalise char $combo) ": $wins $(plural win (int $wins)) || " (or (=lastnchoice.combostatus2 $combo) "No $combo games in progress.")))))
|
!nwon
|
=nwon.nodefs ${1:-$(=nwon.n)} ${2:-12} $*
|
!octaneratio
|
!lg ${1:-.} $* defstats won / octane title:"Times $(name_fixup ${1:-.}) has won octane" stub:"No octane wins for $(name_fixup ${1:-.})"
|
!oldest
|
.echo $(sub 0 4 $(!lg * $* won playableme char!=$(!lm * alive time>${now()-interval('7d')} playableme s=char fmt:"${.}" join:"|") s=char x=max(rend) o=-max(rend) fmt:"${.}" join:" " notitle))
|
!oldestwon
|
!lg * won playable s=char x=max(end) o=-max(end) fmt:"${.}" join:" " title:"Least recently won combos"
|
!oldplayer
|
.echo $(if (> (!lg ${1:-.} $* won x=count(cv) fmt:"${x}" stub:"0") (* (!lg * won x=count(cv) fmt:"${x}") 0.35)) (name_fixup $1)" is ancient!" (name_fixup $1)" is a newbie!")
|
!oldtile
|
.echo $(replace master "stone_soup-$1" (replace github.com raw.githubusercontent.com (replace blob/ (!source $(replace ' ' _ "$(ignore $1)$*").png))))
|
!oldtilegit
|
.echo $(replace master "stone_soup-$1" (!source $(replace ' ' _ "$(ignore $1)$*").png))
|
!oldunwon
|
.echo $(let (x (=currentgames $(=0won.list) ${1:-12})) $(if (= $x x) "All combos have been won at least once!" "$(length (split ' ' $x)) $(plural combo (length (split ' ' $x))) won zero times: $x"))
|
!oldwon
|
!nwon
|
!oneandlost
|
!lg ${1:-.} $\* rstart=$(!lg ${1:-.} $\* s=char x=min(rstart) fmt:"${x[0]}" join:"\|") !won s=char title:"Chars lost first try for $name" stub:"No chars lost on first try for $name"
|
!oneandsplat
|
!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=char x=min(rstart) fmt:"${x[0]}" join:"|") splat s=char title:"Chars splat first try for $name" stub:"No chars splat on first try for $name"
|
!oneandwoncctt
|
!lg * cctt s=name o=-. x=min(rstart) / won fmt:"${.}" ?:%.min(rstart)=1
|
!oneandwonchar
|
!rg * playable won char!=$(!lg ${1:-.} s=char join:"|" fmt:"${.}" stub:"") $* fmt:"The RNG chooses: $char" stub:"${1:-.} has played every char."
|
!oneandwonclass
|
!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=class x=min(rstart) fmt:"${x[0]}" join:"|") won s=class title:"classes won first try for $name" stub:"No classes won on first try for $name"
|
!oneandwongods
|
!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=god x=min(rstart) fmt:"${x[0]}" join:"|") won s=god title:"Gods won first try for $name" stub:"No gods won on first try for $name"
|
!oneandwonold
|
!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=char x=min(rstart) fmt:"${x[0]}" join:"|") won s=char title:"Chars won first try for $name" stub:"No chars won on first try for $name"
|
!oneandwonrace
|
!oneandwonspecies $*
|
!oneandwonrole
|
!oneandwonclass $*
|
!oneandwonspecies
|
!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=crace x=min(rstart) fmt:"${x[0]}" join:"|") won s=crace title:"Races won first try for $name" stub:"No species won on first try for $name"
|
!ood
|
!iood $*
|
!ootcdeathrate
|
!lg ootc !won s=name / $1 o=% ?: N>0
|
!ootcw
|
!locateall ootc 0.28 t
|
!ootcwins
|
!lg ootc t 0.28 won s=god,char
|
!optimalchar
|
.echo The RNG chooses: MiBe
|
!orbdeath
|
!lg * $(!lm ${1:-.} $* orb died x=game_key fmt:"${x}" stub:"0")
|
!orbdeathtv
|
!lg * $(!lm ${1:-.} $* orb died x=game_key fmt:"${x}" stub:"0") -tv
|
!orbmilestone
|
!lm ${*:-.} (($(!lm ${1:-.} $2 orb s=gid x=max(rtime) fmt:'((gid=${.} rtime>${x[0]}))' join:' || ' title:'')))
|
!orbruntomb
|
=orbruntomb.helper $(name_fixup "${1:-.}") $*
|
!orbrunzig
|
.echo $(!lm ${1:-.} $* orb lg:zigscompleted>${zigscompleted} s=char stub:"$(name_fixup ${1:-.}) has not done an orbrunzig, boo!" title:"$(name_fixup ${1:-.}) has completed an orbrunzig! Characters")
|
!orbrunzigtest
|
.echo $(!lm ${1:-.} $* orb lg:zigscompleted>${zigscompleted} s=name,char stub:"${name} has not done an orbrunzig, boo!" title:"${name} has completed an orbrunzig! Characters")
|
!orbsplattv
|
!lm * orb ((tiles || nothuge)) !cwz !ckr !cjr ((!cdo || cv>=0.14)) !won !blacklist $* recent min=lg:ntv -game -tv
|
!orbstarve
|
!lg ${*:-.} gid=$(!lm ${*:-.} orb gid=$(!lg ${*:-.} ktyp=starvation s=gid fmt:"${.}" join:"|" stub:"") s=gid fmt:"${.}" join:"|" stub:"") stub:"No orb starvation deaths found for $*"
|
!orbtv
|
!lg * gid=$(!lm * orb died src!=cwz title:'' fmt:'$game_key' $*) -tv:<4
|
!orcendkills
|
!lg * orc-end $* s=regexp_replace(kmap, "grunt.*community.*", "grunt_orc_community_town_hall")% title:"Orc End kills ($*)"
|
!outtest
|
.echo $(map (fn (n) (* $n $n)) $(range 1 5))
|
!pacify
|
.echo ${1:-Everyone} turns neutral. $nick feels somewhat more hungry.
|
!parse
|
.echo $(if (str-find? mopl $*) "$nick sends deaths yaks. mopl waves the hand and enslaves them. The deaths yaks turn and trample on $nick" "$nick sends death yaks to $*")
|
!perfect
|
!lg ${1:-.} s=char / won fmt:"${.}" title:"$name has a 100% winrate with" join:" " stub:"Hi $name." o=-char ?:%=1
|
!petrify
|
.echo $nick $(=rndspelltarget ${*:-something}). ${*:-Something} stops moving altogether!
|
!pie
|
.echo /me throws a pie. The pie blinds ${*:-it}!
|
!pietytracker
|
!lg ${1:-.} x=avg(piety)
|
!ping
|
.echo pong
|
!pizza
|
.echo /me cooks up a $(sub 0 1 $(sub $(rand $(length $(split & (=pizzaquantity)))) $(split & $(=pizzaquantity)))) of $(sub 0 1 $(sub $(rand $(length $(split & $(=pizzalist)))) $(split & $(=pizzalist)))) pizza for ${*:-${nick}}$(if $* ", courtesy of $nick").
|
!place
|
.echo VETO : $channel: Had 1 zone, now has $(+ 2 (rand 3)); broken by ${*:-$nick}.
|
!playing
|
.echo $(!lm * $* alive s=name o=-name fmt:"${.}")
|
!pmtest
|
.echo $(no_pm xxx)$(ignore (concat $*))
|
!poly6test
|
.echo $(let (x $(rand 7 8)) $(let (y $(length $(split & $(=hd($x)polylist))))) $nick zaps a wand. $* evaporates and reforms as a $(nth $(rand ($y)) $(split & $(=hd($x)polylist))
|
!polymorph
|
.echo $nick zaps a wand. $1 evaporates and reforms $(re-replace '^as a ([AEIOUaeiou])' 'as an $1' "as a ${*:-$(nth (rand 34) (split '|' (if (rand 2) (=poly1) (=poly2))))}!")
|
!polymorph2
|
.echo $nick zaps a wand. $1 evaporates and reforms $(re-replace '^as a ([AEIOUaeiou])' 'as an $1' "as a ${*:-$(nth (rand 34) (split '|' (if (rand 2) (=poly1) (=poly2))))} !")
|
!polytheist
|
.echo $(greathelper god ${1:-.} gods polytheist "won !experimental !pakellas")
|
!polythiest
|
!polytheist $*
|
!popular
|
!lg * ${*:-recent} playable s=char x=-${max((now()-end))/sum(dur)} fmt:"${.}" join:" " title:""
|
!portalsuccess
|
!lm ${1:-.} portal br!=D|lair|orc|swamp|snake|spider|shoals|vaults|depths br.enter=icecv|volcano|lab|bailey|sewer|bazaar|ossuary|wizlab|trove|desolation|gauntlet $* s=br o=% title:"Portal success for $(name_fixup ${1:-.})$(argst $*)" stub:"No portal entries for $(name_fixup ${1:-.})$(argst $*)"/ lg:br!=$noun
|
!pot
|
.echo $(ldb-entry ~holdem:pot 0)
|
!power
|
.echo $(if (< $(length $*) 10) $(nth $(length $*) $(split , 0,10,15,25,35,50,70,100,150,200)) impossible)
|
!pr
|
.echo https://github.com/crawl/crawl/pull/$1
|
!praise
|
.echo Did you mean: !blame $*
|
!progress
|
.echo $(name_fixup ${1:-.}) progress: $(let (num (!lg ${1:-.} $* playable won x=count(char) fmt:"${x[0]}") den (!lg * playable won x=count(char) fmt:"${x[0]}")) $num"/"$den" ("$(/ (* 100 $num) $den)"%)")
|
!pullrequest
|
.echo https://github.com/crawl/crawl/pull/$*
|
!punch
|
.echo $nick $(nth $(rand 4) $(split '|' "pounds $* into fine dust|pulverises $*|squashes $* like a bug|pummels $* like a punching bag"))$(nth $(rand 3) $(split '|' '!|!!|!!!'))!!
|
!punished
|
.echo $1 pun-ishes $nick, causing immense pain!!!
|
!pvp
|
.echo $(let* (a (name_fixup ${1:-.}) b (name_fixup ${2:-.}) bkills (!lg $a ikiller~~"$b\'s ghost" fmt:"$n" stub:"0") akills (!lg $b ikiller~~"$a\'s ghost" fmt:"$n" stub:"0")) "$a vs $b: "$(if (> $akills $bkills) "$a wins! (${akills}-${bkills})" (if (> $bkills $akills) "$b wins! (${bkills}-${akills})" (if (= ${akills} "0") "$a and $b never fought." "Tie! (${akills} all)"))))
|
!pyrrhictv
|
!lm * unique|rune|orb|ghost ((tiles || !@hugeterm)) !won ${lg:turn-turn}<=3 -game -tv $* min=${lg:ntv} xl>8
|
!racecanoneandwon
|
!speciescanoneandwon $*
|
!racehs
|
!specieshs
|
!raceoneandwoncounts
|
!lg ${1:-.} $* char=$(join '|' (split ', ' (re-replace '^[^:]+: ' '' (!oneandwon ${1:-.} $*)))) s=crace won title:"Race oneandwon counts for $(name_fixup $1)$(argst $*)" stub:"No oneandwons for $(name_fixup $1)$(argst $*)"
|
!racesnipe
|
!lg * playable $* s=crace x=-max(sc) title:"The lowest race high scores are" fmt:"${.} [${x}]"
|
!raceweapon%
|
!lg greaterplayers cv>0.16 urune>0 urune<4 crace=$1 / fifsk~~$2
|
!raceworth
|
.echo $(let (T (!lg * ${2:-t} won fmt:"${n}") S (!lg * crace=$1 ${2:-t} won fmt:"${n}")) (/ (* 2 (+ 52 $T)) (+ 2 $S)))
|
!randchar
|
!rng $(join ' ' (split '|' $(=kw playable)))
|
!randgod
|
!echo $(randelem (split | (!lg * won god!= god!=wudzu|iashol|wulndraste|pakellas|igni_ipthes s=god $(ignore $1)$* fmt:"${.}" join:"|" title:"" / @${1:-.} ?: N=0)))
|
!randhat
|
.echo $(replace _ ' ' (ldb (randnth (split & (=randhat.list)))))
|
!randnwon
|
.echo $(randnth (split ' ' (=currentgames.unplayed $(=nwon.list ${1:-$(=nwon.n)}) ${2:-12})))
|
!randoldwon
|
.echo $(randnth (split ' ' (=currentgames.unplayed $(=oldwon.list ${1:-$(=oldwon.v)}) ${2:-12})))
|
!random2
|
.echo $(rand (!calc $*))
|
!randomgame
|
!lm * alive !cdo -random $* time>${now()-interval('10minute')} x=src fmt:'$(lookup ${x[0]} (watchhash))${name}'
|
!randomnewbie
|
!echo $(let* (pl (apply hash (split | (!lm * alive !cdo $* time>${now()-interval('10minute')} x=max(src) s=name join:'|' fmt:'${.}|$x[0]'))) npl (split | (!lg $(join | (hash-keys $pl)) fmt:'${.}' join:'|' s=name won ?: N<4)) sel (elt (rand (length $npl)) $npl)) (lookup (elt $sel $pl) (watchhash))$sel)
|
!randomrip
|
.echo $(let* (b $(nick-aliases irc)) $(!rip $(randelem $(filter $(fn (x) (= -1 $(str-find "Failed to locate" $(!locateall $x)))) $b))))
|
!randomriptest
|
.echo $(let* (a $(nick-aliases xom)) $(!rip $(randelem $a)))
|
!randomunwon
|
.echo $(let (charlist (split (!lg * playable s=char char!=$(!lg ${1:-.} won s=char join:"|" fmt:"${.}" stub:"") stub:""))) (if (= 0 (length $charlist)) "All combos have been won." (replace "," (elt (rand (length $charlist)) $charlist))))
|
!randomwinrateplayer
|
!randomgame name=$(!lg * fmt:'${.}' join:"|" s=name / win ?: den.N >5 %>0.1) tiles
|
!randskill
|
.echo $(elt $(rand 32) $(split | "fighting|sblades|lblades|axes|maces|polearms|staves|unarmed|bows|crossbows|throwing|slings|armour|dodging|shields|spellcasting|conjurations|hexes|charms|summonings|necromancy|translocations|transmutations|fire|ice|air|earth|poison|invocations|evocations|stealth"))
|
!randskillname
|
.echo $(elt $(rand 32) $(split | "fighting|sblades|lblades|axes|maces|polearms|staves|unarmed|bows|crossbows|throwing|slings|armour|dodging|shields|spellcasting|conjurations|hexes|charms|summonings|necromancy|translocations|transmutations|fire|ice|air|earth|poison|invocations|evocations|stealth"))
|
!randskillrange
|
.echo $(elt $(rand 3) $(split | "sklev>=15 sklev<21|sklev>=21 sklev<27|sklev=27"))
|
!randskilltest
|
.echo $(elt $(rand 32) $(split | "fighting|sblades|lblades|axes|maces|polearms|staves|unarmed|bows|crossbows|throwing|slings|armour|dodging|shields|spellcasting|conjurations|hexes|charms|summonings|necromancy|translocations|transmutations|fire|ice|air|earth|poison|invocations|evocations|stealth"))
|
!randskilltest2
|
.echo $(!lg * fmt:'$title' sklev>=$(+ (rand 13) 15) sk=$(elt $(rand 32) $(split | "fighting|sblades|lblades|axes|maces|polearms|staves|unarmed|bows|crossbows|throwing|slings|armour|dodging|shields|spellcasting|conjurations|hexes|charms|summonings|necromancy|translocations|transmutations|fire|ice|air|earth|poison|invocations|evocations|stealth")))
|
!randtitlehelp
|
.echo $(!lg * fmt:'$title' $(elt $(rand 3) $(split | "sklev>=15 sklev<21|sklev>=21 sklev<27|sklev=27")) sk=$(elt $(rand 32) $(split | "fighting|sblades|lblades|axes|maces|polearms|staves|unarmed|bows|crossbows|throwing|slings|armour|dodging|shields|spellcasting|conjurations|hexes|charms|summonings|necromancy|translocations|transmutations|fire|ice|air|earth|poison|invocations|evocations|stealth")))
|
!rangedweaponswon
|
.echo Ranged weapons at >15 skill won for $(name_fixup $*). $(join ", " (map (fn (x) (!lg ${*:-.} won / fifteenskills~~$x title:"$x")) (list bows crossbows throwing slings)))
|
!rank
|
!lg * id=$(if (= $(length $*) 0) $(!lg . x=id fmt:'$x[0]') $*) x=score,src,cv,race,cls,char fmt:'$(!testfoo2) $(!testfoo3)'
|
!rc
|
&rc
|
!read
|
!readall
|
!readall
|
.echo $(let (x (ldb-canonical-term $*)) (join " / " $(map (fn (n) $(entry $x $n)) $(range 1 $(entrylength $x)))))
|
!readall-l
|
.echo $(let (x (ldb-canonical-term $*)) (join " / " $(map (fn (n) $(concat "[" $n "] " $(entry $x $n))) $(range 1 $(entrylength $x)))))
|
!readend
|
.echo $(trunc_end 400 $(join $(concat " " ${*:-/} " ") $(map (fn (n) $(entry $1 $n)) $(reverse $(range 1 $(entrylength $1))))))
|
!readmess
|
.echo $(join " / " (filter (fn (z) (> (length $z) 0)) (map (fn (x) (let (m $(!messages)) (if (= $m "No messages for ${nick}.") "" (join ") " (cdr (split ") " $m)))))) (range 1 ${1:-27}))))
|
!reallygoodchar
|
.echo MiBe
|
!realtime
|
.echo 🔜
|
!realtimevaults5
|
.echo $(name_fixup ${1:-.})'s fastest realtime Vaults:5 enter to silver rune retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* rune=silver s=gid o=gid x=max(dur) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* rune=silver s=gid o=gid x=max(dur) join:"|" fmt:"gid=${.} dur<=${x[0]}"))"))") br.end=vaults s=gid o=gid
|
!rebase
|
.echo $nick rebases ${*}. $(capitalise ${*}) is banished to the reflog!
|
!recentfirstwinspecies
|
!lg * game_key=$(join "|" (hash-keys (reverse (apply hash (flatten (map (fn (game) (cdr (split "#" $game))) (split " " (!lg * name=$(!lg * won s=name fmt:"${.}" join:"|" / !recent ?: N=0) won o=rend s=rend,name,game_key pfmt:"${.}#${child}" fmt:"${.}" join:" ")))))))) s=crace title:"Recent first win species"
|
!recentlywon
|
!recent
|
!recentwon
|
.echo $(let (name ${1:-.} num ${2:-1}) $(!won $name $(- (!lg $name won fmt:"$n") $num)))
|
!recur
|
.echo $(let* (y (fn (c n x) (if (<= $n 0) $x (y $c (- $n 1) (exec "$c $x"))))) (y $1 $2 "${*}"))
|
!reeces
|
.echo Ru <:plogchamp:823530252075794433>
|
!refactor
|
.echo $nick refactors ${1:-$nick} right out of existence!
|
!remove
|
!commit Remove ${*}
|
!revert
|
!commit Revert "${*}"
|
!rhalf
|
!rng $(randelem (list @race @role))
|
!rhyme
|
.echo $(replace "Time:" (concat (nth (rand (length (rhymes))) (rhymes)) ":") (exec !time))
|
!rip
|
.echo $(lg_name ${1:-.}) $(let* (lm (split | (=rip.lm $1 $*)) game (split | (!rg * $(=rip.opts) xl=$lm[2] br=$lm[4] lvl>=$lm[5] fmt:"$vmsg|$place|$sc|$turn|$dur"))) (ripformat $lm[0] $lm[1] $lm[2] $lm[3] $game[0] $game[1] $game[2] $game[3] $game[4]))
|
!ripinpieces
|
.echo $(name_fixup ${1:-.}) $(let* (char (=rip.char $1 $*) title (=rip.title $1 $*) xl (=rip.xl $1 $*) god (=rip.god $1 $*) vmsg (=rip.vmsg $xl $*) place (=rip.place $xl $*) points (=rip.points $xl $*) turns (=rip.turns $xl $*) time (=rip.time $xl $*)) "the $title (L$xl $char), worshipper of $god, $vmsg on $place, with $points points after $turns turns and $time.")
|
!ripmix
|
.echo $(name_fixup ${1:-.}) $(let* (char (=rip.char $1 $*) title (=rip.title $1 $*) xl (=rip.xl $1 $*) god (=rip.god $1 $*) vmsg (=rip.vmsg $xl $*) place (=rip.place $xl $*) points (=rip.points $xl $*) turns (=rip.turns $xl $*) time (=rip.time $xl $*)) (ripformat $char $title $xl $god $vmsg $place $points $turns $time))
|
!ripsane
|
.echo $(name_fixup ${1:-.}) $(let* (lm (split | (=rip.lm $1 $*)) game (split | (!rg * $(=rip.opts) xl=$lm[2] br=$lm[4] lvl>=$lm[5] fmt:"$vmsg|$place|$sc|$turn|$dur"))) (ripformat $lm[0] $lm[1] $lm[2] $lm[3] $game[0] $game[1] $game[2] $game[3] $game[4]))
|
!rlol
|
!send $1 lol
|
!rng+
|
.echo The RNG chooses: Xom.
|
!rnggod
|
!rng @god
|
!rofl_testcmd
|
.echo $(apply rofl_testfn $1 $*)
|
!rolecanoneandwon
|
!classcanoneandwon $*
|
!rolesnipe
|
!lg * playable $* s=role x=-max(sc) title:"The lowest role high scores are" fmt:"${.} [${x}]"
|
!roleworth
|
.echo $(let (T (!lg * ${2:-t} won fmt:"${n}") B (!lg * role=$1 ${2:-t} won fmt:"${n}")) (/ (+ 48 $T) (+ 2 $B)))
|
!rrtest2
|
.echo $(let (b $(randelem $(nick-aliases xom))) $(let (a $(!locateall $b)) $(if (= 0 $(str-find "Failed to locate" $a)) "$b can't be found" "performing !rip on $b")))
|
!ru
|
.echo Reeces <:plogchamp:823530252075794433>
|
!runedeathrate
|
.echo $(let* (toHash (fn (lg) (foldr xldeath-helper4 (hash) (split ", " $lg))) rL (toHash (!lg ${1:-.} !won s=urune notitle fmt:"${.} ${n_x}" $*)) rW (toHash (!lg ${1:-.} won s=urune notitle fmt:"${.} ${n_x}" $*)) total (runedeath-helper3 16 $rW $rL) result (fn (r) (sprintf "%s: %2.2f%%" $r (* 100 (/ (float (xldeath-helper $r $rL)) (- $total (runedeath-helper3 $r $rW $rL))))))) (map result (range 0 15)))
|
!runeorder
|
!order rune $*
|
!runes
|
.echo $(let (gid (!lm ${1:-.} $* alive x=gid fmt:"${x[0]}")) (!lm ${1:-.} gid=$gid rune s=noun x=+max(turns) fmt:"${.}"))
|
!runetowin
|
.echo $(try "$(name_fixup $*) had $(- (!lg ${*:-.} rstart<$(!lg ${*:-.} won 1 fmt:"$end") fmt:"$n") (!lg ${*:-.} rstart<$(!lg ${*:-.} gid=$(!lm ${*:-.} urune>0 1 x=gid fmt:"$x[0]") fmt:"$end") fmt:"$n")) games between their first rune and first win." "No wins for $(name_fixup $*).")
|
!rypotest
|
.echo $(let (durs (apply hash (split ' ' (!lg * $* s=name x=sum(dur) notitle join:' ' fmt:'${.} $(pduration ${x[0]})'))) wins (apply hash (split ' ' (!lg * $* s=name won notitle join:' ' fmt:'${.} $(groupcount ${n_x})')))) (hash-keys $durs))
|
!sacprop
|
.echo $(let (n (!lm * ru sacrifice=$1 $* x=count(gid) fmt:"${x[0]}") d (!lg * ru $* fmt:"$n")) "$(/ (* 100 $n) $d)% ($n/$d) sacrificed $1$(if $* " ($*)")")
|
!sacrifice
|
.echo $(if (str-find? mopl $*) "$nick raises a huge knife to sacrifice mopl... $nick slips on a banana peel and bleed himself white" "/me sacrifices ${*:-$nick}!")
|
!sacrifices
|
.echo $(let (player (name_fixup ${1:-.}) gid (!lm ${1:-.} $* sacrifice x=gid fmt:"${x[0]}" stub:"")) (!lm ${1:-.} gid=$gid sacrifice s=turns,noun x=-max(turns) title:"Last sacrifices made by $player" pfmt:"${child}" stub:"$player has never made a Ru sacrifice."))
|
!saltv
|
!tv * salt
|
!sbranchratio
|
!lm ${1:-*} $* br.enter=shoals|snake|spider|swamp s=br o=% title:"Death rates in 1st rune S branches for $(name_fixup ${1:-*})$(argst $*)" stub:"Current death rates in S branches for $(name_fixup ${1:-*})$(argst $*)" / lg:br=$noun lg:urune<=1
|
!scorepage
|
!scoringlink
|
!scoringlink
|
.echo https://crawl.akrasiac.org/scoring/players/$(lower (nth 0 (split ' ' (nick-aliases (name_fixup ${1:-.})))))
|
!secrip
|
!rip $(replace ' ' '' $*)
|
!sent
|
!send
|
!sequelhelp
|
!help $*
|
!sequellhelp
|
!help $*
|
!serverstats
|
!lg * s=src x=cdist(name) o=cdist(name)
|
!sh
|
.echo $(/ (int (+ 0.5 (* 100 (/ 20.0 $1)))) 100.0) Shield skill per 1 SH for $1 base SH
|
!shafttv
|
!lm * shaft ((tiles || nothuge)) !cwz !ckr !cjr ((!cdo || cv>=0.14)) !won $* ${lg:turn-turn}<=12 min=${lg:ntv} xl>8 -game -tv
|
!shatter
|
.echo $nick $(=rndspellgesture). $channel rumbles around ${nick}! ${*:-Everyone} shudders from the earth-shattering force.
|
!shatterdamage
|
!lg ${1:-*} ckaux=by_shatter ((status=statue-form || status!=statue-form)) s=regexp_replace(status, '^.*(statue-form).*|.*', '\1') x=avg(sdam) title:"Average damage taken from shatter" fmt:'$(if (= (length ${.}) 0) "not statue-form" "statue-form"): ${x}' $*
|
!shoalsendkills
|
!lg ${1:-*} $* shoalsendkmap s=regexp_replace(regexp_replace(vault(kmap), "_rune", ""), "_decoy", "")% title:"Shoals End kills for $(name_fixup ${1:-*})$(argst $*)" stub:"No Shoals End kills for $(name_fixup ${1:-*})$(argst $*)"
|
!shrikedeath
|
!lg * killer=~caustic
|
!shrikekills
|
!lg * killer=~caustic
|
!shriketv
|
!lg * killer=~caustic -tv:<2:channel=shriketv
|
!shrug
|
.echo ¯\_(ツ)_/¯
|
!shuffle
|
.echo $(do $(ldb-set! ~deck 0 (join ' ' (shuffle (list as 2s 3s 4s 5s 6s 7s 8s 9s 10s Js Qs Ks Ac 2c 3c 4c 5c 6c 7c 8c 9c 10c Jc Qc Kc Ah 2h 3h 4h 5h 6h 7h 8h 9h 10h Jh Qh Kh Ad 2d 3d 4d 5d 6d 7d 8d 9d 10d Jd Qd Kd)))) "deck shuffled")
|
!silence
|
.echo $nick $(=rndspellgesture). A profound silence engulfs ${*:-$nick}.
|
!singularity
|
.echo $nick $(=rndspellgesture). Space collapses on itself with a satisfying crunch. The singularity violently warps ${*:-something}!
|
!skills
|
!lairskills
|
!slash
|
.echo $nick $(nth $(rand 6) $(split '|' "opens $* like a pillowcase|carves $* like a ham|slices $* like a ripe choko|chops $* into pieces|cuts $* into ribbons|dices $* like an onion"))$(nth $(rand 3) $(split '|' '!|!!|!!!'))!!
|
!slice
|
!slash $*
|
!slimeendkills
|
!echo Slime end kills$(argst $*): $(vaultallkills slimeendkmap slimeendmap "$*")
|
!slimy
|
.echo $(let (runecount $(!lm * rune=slimy fmt:"$n") branchcount $(!lm * br.enter=slime fmt:"$n")) "Of the $branchcount times Slime was entered, Rune was obtained $runecount"
|
!slowabyss
|
.echo $(name_fixup ${1:-.})'s slowest abyss rune retrieval$(if $* " ("$*")"): $(foldr max -1 (listsubtract (split | (!lm ${1:-.} $* abyss rune s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* abyss rune s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") abyss.enter s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns
|
!smite
|
.echo $nick gestures. Something smites ${*}!
|
!snakeendkills
|
!lg ${1:-*} snakeendkmap $* s=kmap% title:"Snake End kills for $(name_fixup ${1:-*})$(argst $*)" stub:"No Snake End kills for $(name_fixup ${1:-*})$(argst $*)"
|
!snipe
|
!lg * playable $* s=char x=-max(sc) title:"The lowest high scores are" fmt:"${.} [${x}]"
|
!sort
|
.echo ${*}: $(sort (split ' ' $*))
|
!spd
|
.echo $(/ (int (+ 0.5 (* 100 (/ 10.0 $1)))) 100.0) move delay for $1 spd.
|
!speciescanoneandwon
|
.echo $(let (r (fullrace $1)) (!lg * playable crace="$r" $(ignore $1)$(ignore $2)$* cls!=$(!lg ${2:-.} crace="$r" $* s=regexp_replace(char, "^..", "") fmt:"${.}" join:'|' title:'') s=char o=-. fmt:"${.}" title:"Available combos for $(name_fixup ${2:-.}) to oneandwon with $1$(argst $*)" stub:"No vailable combos for $(name_fixup ${2:-.}) to oneandwon with $1$(argst $*)"))
|
!speciesgodgames
|
!lg ${1:-.} $* s=regexp_replace(char, "..$", ""),god pfmt:'${.}^$(join "" (sort (split ", " $child)))' fmt:'$(godletter ${.})' o=-. title:"Games for $(name_fixup ${1:-.})$(argst $*)" stub:"No games for $(name_fixup ${1:-.}$(argst $*)"
|
!speciesgodwins
|
!lg ${1:-.} won $* s=regexp_replace(char, "..$", ""),god pfmt:'${.}^$(join "" (sort (split ", " $child)))' fmt:'$(godletter ${.})' o=-. title:"Wins for $(name_fixup ${1:-.})$(argst $*)" stub:"No wins for $(name_fixup ${1:-.}$(argst $*)"
|
!specieshs
|
!lg * playable sc<1000000000 s=crace x=max(char),+max(score) fmt:'$(combo_to_race ${x[0]}): $(short_num ${x[1]})' title:"Species high scores"
|
!specieswords
|
.echo $(map (fn (p) (.echo $1${p})) (sort (split "|" (!lg * playable current alpha s=regexp_replace(char, "^..", "") join:"|" fmt:"${.}"))))
|
!speedabyss
|
.echo $(name_fixup ${1:-.})'s fastest abyss rune retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* abyss rune s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join "||" $(split "|" (!lm ${1:-.} $* abyss rune s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}")))"))") abyss.enter s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}"))))
|
!speedabyss2
|
.echo $(listsubtract (split | $(!lm ${1:-.} $* abyss rune s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | $(!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* abyss rune s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") abyss.enter s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))
|
!speedabyss3
|
.echo $(let* (runes (speedabyss3runes ${1:-.} $*) enters (speedabyss3enters ${1:-.} $*) times (sort (speedabyss3helper $runes $enters)) min (car $times) max (last $times) med (listmid $times) avg (listavg $times)) (sprintf "Abyss rune retrievals for $(name_fixup ${1:-.})$(argst $*): Min: $min, Max: $max, Median: $med, Average: %.2f" $avg))
|
!speedlairenter
|
!lm $(name_fixup ${1:-.}) br.enter=Lair min=turns x=turns fmt:"$(name_fixup ${1:-.})'s fastest Lair enter: ${x[0]}" stub:"$(name_fixup ${1:-.}) has never reached Lair."
|
!speedorb2
|
.echo $(let* (raw (speedorb2lm ${1:-.} $*) ints (map (fn (xs) (map (fn (n) (int $n)) (split " " $xs))) $raw) turns (sort (foldr $speedorb2diffs (list) $ints)) min (car $turns) max (last $turns) med (listmid $turns) avg (sprintf "%.2f" (listavg $turns))) "Turns from entering zot to orb retrieval for $(name_fixup ${1:-.})$(argst $*): Min:$min Max:$max Median:$med Average:$avg")
|
!speedorbend
|
.echo $(name_fixup ${1:-.})'s fastest orb retrieval from zot:5$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* orb s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* orb s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.end=zot s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns
|
!speedpan
|
.echo $*'s fastest pan rune: $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* rune=demonic s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* rune=demonic s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.enter=pan s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns
|
!speedsplits
|
.echo Milestone deltas for $(name_fixup ${1:-.}) (vs PB, WR): $(=speedsplits ${1:-.} $*)
|
!speedtomb3
|
.echo $(name_fixup ${1:-.})'s fastest Tomb:3 enter to rune retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* rune=golden s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* rune=golden s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.end=tomb s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns
|
!speedturnsatplace
|
!lm * $* won lg:turns<30000 x=avg(turns),avg(XL) fmt:"$x" title:"Average turn count and XL at $* during speedruns" stub:"Supply a valid milestone."
|
!speedvaults5
|
.echo $(name_fixup ${1:-.})'s fastest Vaults:5 enter to silver rune retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* rune=silver s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* rune=silver s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.end=vaults s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns
|
!spiderendkills
|
!lg ${1:-*} spiderendkmap $* s=kmap% title:"Spider End kills for $(name_fixup ${1:-*})$(argst $*)" stub:"No Spider End kills for $(name_fixup ${1:-*})$(argst $*)"
|
!splatratio
|
!lg ${1:-.} recentish xl>=17 $* s=name o=-% title:"Percent of recentish chars with XL>=17 killed for $(name_fixup $1)$(argst $*)" stub:"No recentish chars with XL>=17 for $(name_fixup $1)$(argst $*)" / !won
|
!splatratio-discord
|
!lg ${1:-.} recentish xl>=17 $* hittemnames o=-% title:"Percent of recentish chars with XL>=17 killed for $(name_fixup $1)$(argst $*)" stub:"No recentish chars with XL>=17 for $(name_fixup $1)$(argst $*)" / !won
|
!splatratioall
|
!lg ${1:-.} xl>=17 $* s=name o=-% title:"Percent of chars with XL>=17 killed for $(name_fixup $1)$(argst $*)" stub:"No chars with XL>=17 for $(name_fixup $1)$(argst $*)" / !won
|
!sprinter
|
.echo $(let (nick (name_fixup ${1:-.})) (let (unwon_sprints (filter (fn (sprint) (= "" (!lg $nick $sprint won stub:""))) (sprints))) (if (> (length $unwon_sprints) 0) "Unwon sprints for $nick: $(join ', ' (map (fn (s) (let (x (!kw $s)) (replace _ ' ' (sub (str-find 'Sprint_' $x) $x)))) $unwon_sprints))" "$nick has won all sprints!")))
|
!stalk
|
!gameinfo
|
!statustv
|
!lg * recent !blacklist ((tiles || !@hugeterm)) !won ((status=confused|paralysed|marked|starving|overloaded|petrified|mesmerised || badform || ktyp=weakness|clumsiness|stupidity)) min=ntv xl>20 -tv:<T-50
|
!straek
|
!cheatstreak
|
!strike
|
!lg ${1:-.} s=char o=N,-. / won fmt:'$(if (/= (car (split / ${n_x})) "1") (car (split / ${n_x}))"x " "")${.}' title:"Strikes for $name" stub:"No striked combos for $name" ?: %=1
|
!strikegods
|
!lg ${1:-.} $* !boring s=god o=-. / won pfmt:"${child} ${n_x}" fmt:"${.}" title:"Gods with 100% winrate for $name" stub:"No gods with 100% winrate for $name" ?:%=1
|
!suggest
|
!rg * playable char!=$(!lg ${1:-.} won s=char join:"|" fmt:"${.}" stub:"") $* fmt:"The RNG chooses: $char" stub:"${1:-.} has won every char."
|
!swampendkills
|
!lg ${1:-*} swampendkmap $* s=kmap% title:"Swamp End kills for $(name_fixup ${1:-*})$(argst $*)" stub:"No Swamp End kills for $(name_fixup ${1:-*})$(argst $*)"
|
!swampvaultkills
|
!lg * swamp kmap!= kmap!=swamp kmap!~~uniq|rune|old_school|alternative|swamp_basic|swamp_vile|swamp_icy|swamp_fiery|swamp_pestilence s=vault(kmap) $* title:"Swamp non-end vault kills ($*)"
|
!tag
|
.echo git tag $* # you're it!
|
!taste
|
.echo $nick devours ${1:-everyone} whole! $nick feels better.
|
!tc
|
!echo http://crawl.develz.org/tournament/${2:-0.24}/clans/${1:-${user}}.html
|
!tea
|
.echo /me hands ${1:-${user}} a cup of $(sub 0 1 $(sub $(rand $(length $(split & $(=tea.tealist)))) $(split & $(=tea.tealist)))), brewed by $(=tea.brewer).
|
!tellnc
|
!tell $(replace : $1) ${*}
|
!temp
|
!lm ${1:-.} $* x=str,int,dex,gid fmt:'${name} the L${xl} ${char}^$(=godshortname ${god}) in ${place} ($src $(if $tiles tiles console)), T:$turn$(if ${urune} ", runes: ${urune} ($(=lastrunes * gid=${x[3]})$(if (> ${urune} 3) ...))"), defenses: ${ac}/${ev}/${sh}, stats: ${x[0]}/${x[1]}/$x[2]$(if ${fifteenskills} ", >15 skills: ${fifteenskills}")$(if ${maxskills} ", Max skills: ${maxskills}")'
|
!temperature
|
.echo $(!fahrenheit $*), and $(!celcius $*)
|
!templeratio
|
.echo $(let (x (!lm ${1:-.} $* br.enter=temple|lair|orc ktyp!= x=cdist(gid) fmt:"${x}" stub:"0") y (!lg ${1:-.} $* fmt:"${n}" stub:"0") player (name_fixup $1)) "${player}$(if "${*}" " (${*})" "") has reached temple in $x of $y attempts: $(int (+ 0.5 (/ (* 100.0 $x) $y)))%")
|
!test2
|
.echo $(!lg ${1:-.} $(id "(("${1:-.}"))"))
|
!test3
|
.echo $(let (z $1) $(.echo ${z:-a} ${z:-b} (${z:-c}) ((${z:-d}))))
|
!test4
|
.echo $(let (z $1) $(.echo ${z:-a} ${z:-b} $(id "(("${z:-c}"))") ((${z:-d}))))
|
!test400
|
.echo $(!calc ${1:-.} / ${2:-.})
|
!test_arg
|
!echo Args: $(arg_subtitle $*)
|
!testfoo
|
!lg * id=$(if (= $(length $*) 0) $(!lg . x=id fmt:'$x[0]') $*) x=score,src,cv,race,cls,char fmt:'$(!testfoo2) $(!testfoo3)'
|
!testfoo2
|
.echo Global: $(re-replace '1/(\d+) .*' '$1' $(!lg * score>=$(!lg . x=score fmt:'$x[0]' notitle) cv=$(!lg . x=cv fmt:'$x[0]' notitle) -count)) Race:$(re-replace '1/(\d+) .*' '$1' $(!lg * score>=$(!lg . x=score fmt:'$x[0]' notitle) cv=$(!lg . x=cv fmt:'$x[0]' notitle) crace=$(!lg . x=crace fmt:'$x[0]' notitle) -count))
|
!testfoo3
|
.echo Class:$(re-replace '1/(\d+) .*' '$1' $(!lg * score>=$(!lg . x=score fmt:'$x[0]' notitle) cv=$(!lg . x=cv fmt:'$x[0]' notitle) cls=$(!lg . x=cls fmt:'$x[0]' notitle) -count)) Combo:$(re-replace '1/(\d+) .*' '$1' $(!lg * score>=$(!lg . x=score fmt:'$x[0]' notitle) cv=$(!lg . x=cv fmt:'$x[0]' notitle) char=$(!lg . x=char fmt:'$x[0]' notitle) -count))
|
!testplayer
|
.echo $(let (l (length (split , (!lg $(name_fixup $*) rstart=$(!lg $(name_fixup $*) s=char x=min(rstart) fmt:"${x[0]}" join:"|") won s=char stub:"")))) (if (> $l 9) "$(name_fixup $*) is a decent player. $l wins." "$(name_fixup $*) is not a decent player. $l wins ($(- 10 l) to go)."))
|
!testrev
|
.echo $(reverse ${*})
|
!testsh
|
.echo $(/ 20.0 $1)
|
!testwinner
|
!lg * !buggygods won goodgod !experimental s=god / @${1:-.} title:"Unwon good gods for $(name_fixup ${1:-.})" stub:"$(name_fixup ${1:-.}) has won all the good gods." fmt:"${.}" ?:%=0.0
|
!thirdrune
|
!lg * recent !won !boring br=(vaults|slime|abyss) xl=$(!lg * recent br=$1 urune>=2 urune<=4 x=median(xl) $* fmt:"$x[0]") x=cdist(gid) fmt:"$x[0]" / br=$1 $* title:"Lethality of $1 $(argst $*) as 3–5 rune"
|
!thyme
|
.echo $(replace "Time:" "Thyme:" (exec !time))
|
!tiamat
|
.echo $(let (player (name_fixup $1)) (if (>= $(!lg ${1:-.} won dr race!=mottled_draconian x=cdist(race) title:"" fmt:"$x[0]" stub:"0") 8) "$player is a tiamat player" $(!lg * dr race!=mottled_draconian won s=race / @$player title:"$player is not a tiamat player. Unwon draconians" fmt:'$(replace " Draconian" "" "${.}")' ?:%=0)))
|
!tile
|
.echo $(replace github.com raw.githubusercontent.com (replace blob/ (!source $(replace ' ' _ "$*").png)))
|
!tilesratio
|
!lg ${*:-.} / tiles title:"% games tiles for $(name_fixup $*)"
|
!tim
|
!echo There are those who call me ... $user
|
!timeuntilwon
|
.echo $(!lg ${1:-.} $* rend<=$(!lg ${1:-.} $* x=rend fmt:'${x[0]}' stub:'-1' notitle won 1) x=sum(dur) title:"Playtime until first win for $(name_fixup ${1:-.})$(argst $*) ($n games)" fmt:" ${x[0]}" stub:"No games won for $(name_fixup ${1:-.})$(argst $*)")
|
!timewasters
|
!lg ${1:-.} s=ckiller x=+sum(dur) title:"Time wasters" $*
|
!title
|
.echo ${*}: $(or $(=title.title recent $*) $(=title.skill.noinv recent $*) $(=title.skill.inv recent $*) $(=title.title !recent $*) $(=title.skill.noinv !recent $*) $(.echo cannot understand ${*}.))
|
!tkillers
|
.echo $(join ", " $(map $(fn (n) $(car $(split "|" $(!lg * t !boring place=${1:-D}:$n s=ckiller join:"|" stub:"cang")))) $(listrange 1 ${2:-27})))
|
!top10
|
.echo Top 10$(if $* " for $*"): $(!lg * $* realscore s=gid x=max(name),+max(sc),max(char) fmt:'${x[0]} ${x[2]} $(short_num ${x[1]})' sc>=$(!lg * $* realscore max=sc x=sc -10 fmt:"${x[0]}"))
|
!torment
|
.echo $nick gestures. $nick is wracked with pain!$(ignore $*)
|
!tornado
|
.echo $nick $(=rndspellgesture). A great vortex of air appears and lifts $nick up! ${*:-$channel} is engulfed in raging winds.
|
!totaldur
|
.echo $(formattime $(+ $(=totaldur.lg $*) $(=totaldur.lm $*)))
|
!tournament
|
!time
|
!tournamentlink
|
!tournamentpage
|
!tournamentpage
|
.echo https://crawl.develz.org/tournament/0.32/players/$(lower (nth 0 (split ' ' (nick-aliases (name_fixup ${1:-.}))))).html
|
!tournamentwins
|
!lg ${1:-.} $* tall s=regexp_replace(cv, "-a", "") title:"Tournament wins for ${1:-$nick}$(argst $*)" stub:"No tournament wins for ${1:-$nick}$(argst $*)" o=. / won
|
!tourneypage
|
!tournamentpage
|
!tp
|
!echo http://crawl.develz.org/tournament/${2:-0.24}/players/${1:-${user}}.html
|
!transportervaultkills
|
!echo Transporter vault kills$(argst $*): $(vaultallkills trkmap trmap "$*")
|
!treachery
|
!lg ${1:-.} $* cikiller~~$crace cikiller~~$class s=cikiller title:"Characters killed by their monster species/background combo [$(name_fixup ${1:-.})$(argst $*)]" stub:"No characters murdered by their species/background combo [$(name_fixup ${1:-.})$(argst $*)]"
|
!trogchallenge
|
!lg ${1:-.} $* gid=$(!lm ${1:-.} $* god.abandon=trog turns=0 lg:god!=trog won s=gid fmt:"${.}" join:"|" stub:"") s=name,char title:"trog challenge wins for $name" stub:"No trog challenge wins for $name"
|
!ttyrec
|
!lg ${*:-.} -ttyrec
|
!ttyrecbygame
|
!lm $1 $2 gid=$(!lg $1 $(ignore $2)$* x=gid fmt:'$x[0]') -ttyrec
|
!tuniqs
|
!lm * t-milestones uniq s=noun / @${1:-.} title:"Uniques remaining for $(name_fixup $1)" fmt:"${.}" ?:N=0 den.N>=$(car (split x $(!lm * t-milestones uniq=murray|ignacio s=-uniq fmt:"${n_x}")))
|
!tuniques
|
!tuniqs
|
!turnsperwin
|
.echo $(let (x $(!lg ${*:-.} won fmt:"$n" stub:"0") y $(!lg ${*:-.} x=sum(turns) fmt:"$x" stub:"0")) $(.echo $(if (> $y 0) (if (> $x 0) "$(name_fixup $*) has $(/ $y $x) turns per win." "No wins for $(name_fixup $*).") "No games for $(name_fixup $*).")))
|
!tv
|
!lg ${*:-.} -tv
|
!twoandwon
|
!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* rstart!=$(!lg ${1:-.} $* s=char x=min(rstart) fmt:"${x[0]}" join:"|") s=char x=min(rstart) fmt:"${x[0]}" join:"|") won s=char title:"Chars won on second try for $name" stub:"No games won on second try for $name"
|
!twoandwongods
|
!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* rstart!=$(!lg ${1:-.} $* s=god x=min(rstart) fmt:"${x[0]}" join:"|") s=god x=min(rstart) fmt:"${x[0]}" join:"|") won s=god title:"Gods won on second try for $name" stub:"No gods won on second try for $name"
|
!ultrazigenter
|
!lm ${*:-*} vlong>0.16-a0-650-g275c35f zigscompleted>0 zig.enter x=vlong,zigscompleted
|
!unflip
|
.echo ${*:-┬─┬} ノ( ゜-゜ノ)
|
!uniqs
|
!lm * uniq s=noun / @${1:-.} title:"Uniques remaining for $(name_fixup $1)" stub:"$(name_fixup $1) has slain all uniques!" fmt:"${.}" ?:N=0 den.N>=$(car (split x $(!lm * uniq=ignacio s=-uniq fmt:"${n_x}")))
|
!uniques
|
!uniqs
|
!unoneandwonchar
|
!rg ${1:-.} $* playable char!=$(!lg ${1:-.} $* won s=char join:"|" fmt:"${.}" stub:"") fmt:"The RNG chooses: $char" stub:"${1:-.} has no unwon chars that they've played."
|
!unplayed
|
.echo $(let (text "combos for $(name_fixup ${1:-.})$(if (> (length $*) 0) " (${*})" "")") $(!lg * playable s=char $(do $1 "") $(nth 0 (split "/" $*)) / @${1:-.} $(nth 1 (split "/" $*)) o=-. title:"Unplayed $text" stub:"No unplayed $text" fmt:'${.}' ?: N=0))
|
!unpopular
|
!lg * ${*:-recent} playable s=char x=+${max((now()-end))/sum(dur)} fmt:"${.}" join:" " title:""
|
!unravel
|
.echo $nick gestures. $*'s magical effects unravel! The enchantments explode! $* twists and deforms. The unravelling engulfs $*.
|
!unstreak
|
!gamestriedsincelastwin
|
!untell
|
.echo Okay, message deleted.
|
!unwon
|
!lg * !experimental playable $(ignore $1)$* s=char o=-char title:"Unwon playable chars$(argst $*)" stub:"All playable chars have been won$(argst $*)" join:' ' fmt:"${.}" / won $(if $1 @$1) ?: N=0
|
!unwonchar
|
.echo $(let (charlist (split (!lg * $* playable s=char char!=$(!lg ${1:-.} $* won s=char join:"|" fmt:"${.}" stub:"") stub:""))) (if (= 0 (length $charlist)) "All combos have been won." (replace "," (elt (rand (length $charlist)) $charlist))))
|
!unwonchars
|
!lg * playable s=char won $(ignore $1)$* title:"Unwon chars for $(name_fixup ${1:-$nick})$(argst $*)" fmt:"${.}" o=-. / @${1:-$nick} ?: N=0
|
!unwoncharweighted
|
!rg * playable won char!=$(!lg ${1:-.} won s=char join:"|" fmt:"${.}" stub:"") $* fmt:"The RNG chooses: $char" stub:"${1:-.} has won every char."
|
!unwongoodchar
|
!rg * recent playable won char!=$(!lg . s=char won notitle join:'|' fmtsimple) $* fmt:"The RNG chooses: $char"
|
!unwonrace
|
.echo $(let (text "races for $(name_fixup ${1:-.})$(argst $*)") $(!lg * playable:sp s=crace $(do $1 "") $(nth 0 (split "/" $*)) / @${1:-.} $(nth 1 (split "/" $*)) won o=-. title:"Unwon $text" stub:"No unwon $text" fmt:'${.}' ?: N=0))
|
!unwonrole
|
.echo $(let (text "roles for $(name_fixup ${1:-.})$(if (> (length $*) 0) " (${*})" "")") $(!lg * playable s=cls $(do $1 "") $(nth 0 (split "/" $*)) / @${1:-.} $(nth 1 (split "/" $*)) won o=-. title:"Unwon $text" stub:"No unwon $text" fmt:'${.}' ?: N=0))
|
!unwonsh
|
!lg * $* --sh s=char o=-char title:"Unwon shapeshifters" join:' ' fmt:"${.}" / won ?:N=0
|
!unwontitles
|
!lg * !experimental $(ignore $1)$* s=title o=-title title:"Unwon titles$(argst $*)" stub:"All titles have been won$(argst $*)" fmt:"${.}" / won $(if $1 @$1) ?: N=0
|
!update-centuryplayers
|
!nick centuryplayers $(!lg * won s=name o=-name title:"" join:" " format:"${.}" ?:N>=100)
|
!update-goodplayers
|
!nick goodplayers $(!lg * won s=name fmt:"${.}" join:" " ?:N>9)
|
!update-greaterorbrunners
|
!nick greaterorbrunners $(!lm * cv>0.10 orb urune=3 lg:urune=15 s=name title:"" join:" " fmt:"${.}")
|
!update-greaterplayers
|
!nick greaterplayers $(!lg greatplayers playable:job won s=name x=count(cls) title:"" fmt:"${.}" join:" " ?: count(cls)=$(!lg * playable:job won x=count(cls) fmt:"${x}"))
|
!update-greatorbrunners
|
!nick greatorbrunners $(!lm * cv>=0.10 orb ${lg:urune>urune} s=name title:"" join:" " fmt:"${.}")
|
!update-greatplayers
|
!nick greatplayers $(!lg * playable:sp won s=name x=count(crace) title:"" fmt:"${.}" join:" " ?: count(crace)=$(!lg * playable:sp won x=count(crace) fmt:"${x}"))
|
!update-starting-stats-job
|
!learn set starting_stats[3] $(!lm * begin recent playable hu-- s=char x=avg(str),avg(int),avg(dex) fmt:'$(sub 2 4 ${.}) $(fmt_mostly_int (- $x[0] 8)),$(fmt_mostly_int (- $x[1] 8)),$(fmt_mostly_int (- $x[2] 8))' join:' | ' notitle o=-.)
|
!update-starting-stats-sp
|
!learn set starting_stats[2] $(!lm * begin recent playable --fi s=char x=avg(str),avg(int),avg(dex) fmt:'$(sub 0 2 ${.}) $(- $x[0] 8),$x[1],$(- $x[2] 4)' join:' | ' notitle o=-.)
|
!update-winners
|
!nick winners $(!lg * won s=name fmt:"${.}" join:" ")
|
!update-winrateplayers
|
!nick winrateplayers $(join " " (map (fn (x) (elt 0 (split ":" $x))) (filter (fn (p) (let (l (split ":" $p)) (< 33 (float (replace "%" (elt 1 $l)))))) (split "|" (!lg * recent !dd fmt:'${.}:${n_ratio}' join:'|' urune<5 s=name o=% / won ?: N>=10)))))
|
!v5success
|
!lm ${*:-.} !alive br.end=vaults / lg:place!=vaults:5
|
!varietytv
|
!lg * ((tiles || !@hugeterm)) ((cln end>=20130626 || !cln)) !csn $* ktyp!=mon|beam|quitting|leaving|pois|winning|acid (( ktyp!=cloud || map= )) (( xl>=19 || ktyp!=cloud|trap|wild_magic|disintegration|starvation|draining|targeting|spore|burning|rotting|stupidity|water|curare|lava )) min=ntv -tv
|
!vaultkills
|
!echo $(let (hc (combinehashcounts (lghashcounts 's=vault(kmap)' $1 current) (lghashcounts 'kmap= s=vault(map)' $2 current))) (hashcountsummary $hc))
|
!vaultsratio
|
.echo $(let (x (!lm ${1:-.} $* br.enter=vaults ktyp!= x=cdist(gid) fmt:"${x}" stub:"0") y (!lg ${1:-.} $* fmt:"${n}" stub:"0") player (name_fixup $1)) "${player}$(if "${*}" " (${*})" "") has reached Vaults in $x of $y attempts: $(/ (* 100.0 $x) $y) %")
|
!vercel
|
!dcss-stats
|
!vercelstats
|
.echo https://dcss-stats.vercel.app/players/$(lower (nth 0 (split ' ' (nick-aliases (name_fixup ${1:-.})))))
|
!violentwinning
|
!lg * violentgod / won
|
!volunteer
|
.echo I volunteer... ${nick}!$(ignore $*)
|
!watch
|
&watch $*
|
!whendie
|
!lg ${1:-.} s=lvl -graph
|
!wheretodie
|
!lg ${1:-.} s=lvl -graph
|
!whichbg
|
!whichrole
|
!whichchar
|
!combowinrates !t-all $*
|
!whichclass
|
!whichrole
|
!whichcombo
|
!lg * won $1 recent $* s=char title:"${n} recent wins for $1$(argst $*)" stub:"No recent wins for $1$(argst $*)."
|
!whichcombo2
|
!lg * won $1 recent $* s=char x=cdist(name) o=cdist(name) fmt:"${x}x ${.}" title:"${n} recent wins for $1$(argst $*)" stub:"No recent wins for $1$(argst $*)."
|
!whichgod2
|
!lg * won $1 recent $* s=god x=cdist(name) o=cdist(name) fmt:"${x}x ${.}" title:"Recent wins for $1$(argst $*)" stub:"No recent wins for $1$(argst $*)."
|
!whichgod3
|
!lg $(!lg * listnames notitle !boring !bot recent / won ?:%<.1 N>0) $1 !boring !bot recent $* s=god title:"Recent $1$(argst $*) wins for players with >0 wins <10% winrate" stub:"Not enough recent wins for $1$(argst $*)." / won o=+% ?:N>5
|
!whichrace2
|
!lg * won recent $(if (or (re-find ru|Ru $*) (> $(length $*) 2)) $* class=$*) s=crace x=cdist(name) o=cdist(name) fmt:"${x}x ${.}" title:"Recent wins" stub:"No recent wins for $*."
|
!whichrace3
|
!lg $(!lg * listnames notitle !boring !bot recent / won ?:%<.1 N>0) recent $(if (or (re-find ru\|Ru $*) (> $(length $*) 2)) $* class=$*) s=crace !boring !bot title: "Recent $* wins for players with >0 wins <10% winrate" stub:"Not enough recent wins for $*." / won o=+% ?:N>10
|
!whichrole2
|
!lg * won recent $(if (or (re-find ru|Ru $*) (> $(length $*) 2)) $* race=$*) s=role x=cdist(name) o=cdist(name) fmt:"${x}x ${.}" title:"Recent wins" stub:"No recent wins for $*."
|
!whichskill
|
!lg * won recent $* s=sk title:"${n} recent wins" stub:"No recent wins for $*."
|
!whichskills
|
!lg greaterplayers won $1 recent urune=3 $* x=fifsk fmt:"$name's 15+ skills for $1$(argst $*): $x[0]" stub:"No recent wins for $1$(argst $*)."
|
!whichweapon
|
!lg ${1:-*} won recent $* fifsk~~long_blades|ranged|unarmed|axe|mace|pole|stave s=regexp_replace(fifsk, ".*((long|ranged|unarmed|axes|maces|pole|stave)[^,]*).*", "\1")% title:"Recent win weapons skills for $(name_fixup ${1:-*})$(argst $*)" stub:"No recent wins for $(name_fixup ${1:-*})$(argst $*)."
|
!whorecentlywon
|
!recent
|
!wiki
|
!echo http://crawl.chaosforge.org/$(replace " " _ $*)
|
!will
|
.echo $(let* (a (hash sp 7 fe 6 dd 6 na 5 mu 5 vs 5 vp 4 de 4 fo 4 og 4 dg 4 dj 4) b $(elt $1 $a)) $(if $2 "$(* $(with-nvl 3 $b) $2) Will at level $2" "$(with-nvl 3 $b) Will per level"))
|
!win
|
!won
|
!winrategame
|
!lg $(join "|" (map (fn (x) (elt 0 (split ":" $x))) (filter (fn (p) (let (l (split ":" $p)) (< 33 (float (replace "%" (elt 1 $l)))))) (split "|" (!lg * recent !dd fmt:'${.}:${n_ratio}' join:'|' urune<5 s=name o=% / won ?: N>=10))))) $* title:"Recent high winrate players$(argst $*):"
|
!winratewhichgod
|
!lg * recentish !boring $* s=god urune<6 / win o=% ?: den.N>4
|
!winsperday
|
.echo $(name_fixup ${1:-.}) wins approximately $(let (age $(int $(let (first $(ptime $(!lg $(name_fixup ${1:-.}) x=min(end) fmt:"${x[0]}" stub:'$(ftime $(utc $(time)) "%Y-%m-%d %H:%M:%S")') "%Y-%m-%d %H:%M:%S") now $(utc $(time))) (- $now $first)))) (/ $(!lg $(name_fixup ${1:-.}) won $* fmt:"${n}") (float $age))) times per day
|
!winssinceclasswon
|
.echo Wins since class won for ${1:-$nick}: $(join ", " (map (fn (x) (join ": " (list $x (!gameswonsince ${1:-.} $* playable:job cls=$x won)))) (map (fn (r) (replace "??" (!ftw $r))) (split ", " (!lg ${1:-.} $* playable:job won s=cls x=max(end) o=-max(end) fmt:"${.}" stub:"")))))
|
!winssincegodwon
|
.echo Wins since god won for $(name_fixup ${1:-$nick}): $(join ", " (map (fn (x) (join ": " (list $x (!gameswonsince ${1:-.} $* playable:god god=$x won)))) (map (fn (g) (replace " " _ $g)) (split ", " (!lg ${1:-.} $* playable:god won s=god x=max(end) o=-max(end) fmt:"${.}" stub:"")))))
|
!winssinceracewon
|
.echo Wins since species won for ${1:-$nick}: $(join ", " (map (fn (x) (join ": " (list $x (!gameswonsince ${1:-.} $* playable:sp crace=$x won)))) (map (fn (r) (replace "??" (!ftw $r))) (split ", " (!lg ${1:-.} $* playable:sp won s=crace x=max(end) o=-max(end) fmt:"${.}" stub:"")))))
|
!winssincespecieswon
|
!winssinceracewon $*
|
!wizlabdeaths
|
!lm ${1:-.} br.enter=wizlab $* o=% s=regexp_replace(milestone, "entered ((the_hall_of_|the_chambers_of_)([_a-z]+(?=the_)))?(.*)\.", "\2\4") milestone!~~ering?ya|cekugob|mortuary|a_wizard|upun's_lair|cloud_mage's_chambers title:"WizLab deaths for $(name_fixup ${1:-.})$(argst $*)" stub:"No WizLab entries for $(name_fixup ${1:-.})$(argst $*)" / lg:br=wizlab
|
!wizlabkills
|
!lm * $* br.enter=wizlab s=regexp_replace(milestone, "entered ((the_hall_of_|the_chambers_of_)([_a-z]+(?=the_)))?(.*)\.", "\2\4") milestone!~~ering?ya|cekugob|mortuary|a_wizard|upun's_lair|cloud_mage's_chambers title:"WizLab deaths ($*)" / lg:br=wizlab o=%
|
!wizlabs
|
!lm ${1:-.} $* br.enter=wizlab s=regexp_replace(milestone, "entered ((the_hall_of_|the_chambers_of_)([_a-z]+(?=the_)))?(.*)\.", "\2\4") milestone!~~ering?ya|cekugob|mortuary|a_wizard|upun's_lair|cloud_mage's_chambers title:"WizLabs seen by ${1:-$nick}$(argst $*)"
|
!wizstr
|
.echo in $1 encumbrance with $2 str and $3 armour, next str is worth $(* (/ (* 3.8 (* $1 $1)) (* (+ 3 $2) (+ 4 $2))) (/ (- 45.0 $3) 45.0)) int for spell success
|
!wonfirstgo
|
!charwononfirsttry
|
!wonifextended
|
!lg ${*:-.} gid=$(!lm ${*:-.} br.enter=pan|geh|coc|dis|tar|tomb s=gid fmt:"${.}" join:"|") / won title:"% games won after going extended for $name:"
|
!woniflair
|
.echo $(let (x (!lg ${1:-.} $* won fmt:"${n}" stub:"0") y (!lm ${1:-.} $* br.enter=lair ktyp!= x=cdist(gid) fmt:"${x}" stub:"0") player (name_fixup $1)) "${player}$(if "${*}" " (${*})" "") has won after reaching lair $x out of $y times: $(int (+ 0.5 (/ (* 100.0 $x) $y)))%")
|
!woniflairratio
|
.echo $(let (x (!lg ${1:-.} $* won fmt:"$n" stub:"0") y (!lm ${1:-.} $* br.enter=lair ktype!= x=cdist(gid) fmt:"$x" stub:"0") z (!lg ${1:-.} $* fmt:"$n" stub:"0") player (name_fixup $1)) "${player}$(if "${*}" " (${*})" "") has a win to lair ratio of $(/ (float (* $z $x)) (* $y $y)) (lairratio: $y / $z = $(int (+ 0.5 (/ (* 100.0 $y) $z)))%, woniflair: $x / $y = $(int (+ 0.5 (/ (* 100.0 $x) $y)))%)")
|
!wonifrune
|
!won $* urune>0
|
!wonnoabyss
|
!lg ${1:-.} $* won gid!=$(!lm ${1:-.} $* abyss.enter won s=gid fmt:"${.}" join:"|" stub:"") s=char title:"$(!lg ${1:-.} won $* gid!=$(!lm ${1:-.} abyss.enter won s=gid fmt:"${.}" join:"|" stub:"") x=cdist(gid) fmt:"$x[0]" stub:"0") games won without going to abyss for $(name_fixup ${1:-.})" stub:"No games won for $(name_fixup ${1:-.}) without going to the abyss."
|
!wonnobranch
|
!lg ${2:-.} won gid=$(=wonnobranchgid $1 ${2:-.}) s=char title:"$(!lg ${2:-.} won x=cdist(gid) gid=$(=wonnobranchgid $1 ${2:-.}) fmt:"${x[0]}" stub:"0") games won without going to $1 for $(name_fixup ${2:-.})" stub:"No games won for $(name_fixup ${2:-.}) without going to $1"
|
!wonnocrypt
|
!lg ${*:-.} won gid!=$(!lm ${*:-.} br.enter=crypt won s=gid fmt:"${.}" join:"|" stub:"") s=char title:"Games won without going to crypt for $(name_fixup $*)" stub:"No games won for $(name_fixup $*) without going to crypt."
|
!wonnoelf
|
!wonnobranch elf $*
|
!wonnolair
|
!lg ${*:-.} won gid!=$(!lm ${*:-.} br.enter=lair won s=gid fmt:"${.}" join:"|" stub:"") s=char title:"Games won without going to lair for $(name_fixup $*)" stub:"No games won for $(name_fixup $*) without going to lair."
|
!wonnovaults
|
!wonnobranch vaults $*
|
!wonorder
|
.echo $(let (player (name_fixup ${1:-.})) (!lg ${1:-.} $* won s=end,char title:"Wins by $player $(argst $*) in order" pfmt:"${child}" stub:"No wins for $player $(argst $*)."))
|
!wordnerd
|
.echo $(do ${1:-.} "")$(greathelper2 char ${1:-.} words "wordnerd 🤓" char=$(!lg * playable s=char words notitle join:"|" fmt:"${.}") $*)
|
!wordprogress
|
!wordnerd $*
|
!wordsprogress
|
!wordnerd $*
|
!worstunwonchar
|
!lg * !boring char=$(!lg * $(ignore $1)$* playable won s=char notitle fmt:'${.}' join:'|' / @${1:-.} ?: N=0) s=char title:"Worst unwon chars for $(name_fixup ${1:-.})$(argst $*)" o=-% / won
|
!worthyraces
|
.echo $(let (T (!lg * t won fmt:"${n}")) (join " | " (map (fn (x) (nth 1 (split "x " $x))": "(/ (* 2 (+ 52 $T)) (+ 2 (nth 0 (split "/" $x))))) (sub 0 ${1:-10} (split "|" (!lg * t s=crace / won o=-n join:"|" fmt:"${n_x}${.}"))))))
|
!worthyroles
|
.echo $(let (T (!lg * t won fmt:"${n}")) (join " | " (map (fn (x) (nth 1 (split "x " $x))": "(/ (+ 48 $T) (+ 2 (nth 0 (split "/" $x))))) (sub 0 ${1:-10} (split "|" (!lg * t s=role / won o=-n join:"|" fmt:"${n_x}${.}"))))))
|
!xxom
|
.echo $(let* (a $(nick-aliases xom)) $(randelem $a)) $(randelem "thinks this is hilarious!"|"roars with laughter!!!")
|
!zap
|
.echo (∩ ͡° ͜ʖ ͡°)⊃━☆゚. o ・ 。゚ $*
|
!zermako
|
.echo $(let (entry (nth (rand 2) (list "zermako" "~zermako_log"))) (nth 1 $(split ']: ' $(ldb $entry $(rand 1 (entrylength $entry))))))
|
!zermakorobin
|
!lg zermakorobin gid=$(replace ", " "|" $(!lm zermakorobin br.end noun=lair s=gid))
|
!zermakorobintv
|
!zermakorobin min=ntv -tv
|
!zigzaggers
|
!lm * $* newzig (( zigscompleted>0 || zig )) alive s=gid x=max(name),max(char),max(god),max(zigscompleted) o=max(zigscompleted) title:"Current Ziggurat Clearers$(if $* " ("$*")")" fmt:'${x[0]} (${x[1]}^$(=godshortname ${x[2]}, zigs:${x[3]}))'
|
!zotgamesuntilwin
|
!lm ${*:-.} br.enter=zot rstart<=$(!lg ${*:-.} won 1 fmt:"$start" stub:"0") fmt:'$target had $(- $n 1) games that reached zot before their first win.' stub:"No wins for $(name_fixup $*)."
|
!|rc
|
.echo https://CRAWL.XTAHUA.COM/crawl/rcfiles/crawl-$(replace trunk git ${2:-git})/$(!lm ${1:-.} cxc x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc
|
#rc
|
.echo https://crawl.project357.org/rc-files/$(replace git trunk ${2:-trunk})/$(!lm ${1:-.} cpo x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc
|
#watch
|
.echo https://crawl.project357.org/watch/$(if $1 $1 $nick)
|
$rc
|
.echo https://underhound.eu/crawl/rcfiles/crawl-$(replace trunk git ${2:-git})/$(!lm ${1:-.} cue x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc
|
%rc
|
.echo https://cbro.berotato.org/rcfiles/crawl-$(replace trunk git ${2:-git})/$(!lm ${1:-.} cbr2 x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc
|
&locate
|
!locate $*
|
¯o
|
.echo $(replace .rc .macro (&rc $*))
|
&spectate
|
&watch
|
&trunk.versions
|
.echo $(join ", " (map (fn (src) (concat $src ": " (=version.query $src $*))) $(list CAO CDO CPO CSZO CUE CWZ CXC LLD))) $(join ", " (map (fn (src) (concat $src ": " (=version.query.trunk $src $*))) $(list CBRO)))
|
&version
|
.echo ${*:-*}: $(=version.query $*)
|
&versions
|
.echo $(join ", " (map (fn (src) (concat $src ": " (=version.query $src $*))) (serverlist)))
|
&watch
|
!lm ${1:-.} fmt:"\$(lookup ${2:-${src}} (watchhash))${name}" stub:"No milestones for $(name_fixup ${1:-${user}})."
|
&watchlink
|
!lm ${1:-.} fmt:"\$(=watch_link ${2:-${src}} \$(if \$(match -a ${3:-${cv}}) trunk ${3:-${cv}}))${name}" stub:"No milestones for $(name_fixup ${1:-${user}})."
|
&whereis
|
.echo $(no_pm $(=whereis.helper $*))
|
.27
|
!lg * xl=27 recent !won !boring ntv=0 -tv
|
.27dec
|
.echo $(ldb-set! ~tvcounter 1 'n='$(+ $(nth 1 $(split '=' $(ldb ~tvcounter))) -1))
|
.27inc
|
.echo $(ldb-set! ~tvcounter 1 'n='$(+ $(nth 1 $(split '=' $(ldb ~tvcounter))) 1))
|
.27next
|
!lg * xl=27 recent !won !boring $(do $(.27inc) -$(nth 1 $(split '=' $(ldb ~tvcounter)))) -tv
|
.27replay
|
!lg * xl=27 recent !won !boring -$(nth 1 $(split '=' $(ldb ~tvcounter))) -tv
|
.27reset
|
!learn set ~tvcounter n=0
|
.acceptable_species
|
!rng HO Mf Gr Dr Ha Gh Hu Ko Ds Te DE Og Gn VS Dg Fo Na Op Mu
|
.almostowned
|
!lg ${1:-.} $(if (or (str-find? s= $*) (str-find? o= $*)) $(.echo $*) $(.echo x=tdam,mhp $*)) tdam>=${mhp*0.75} tdam<${mhp} tdam>70 !((ak place=abyss xl<5)) stub:"$name hasn't been almost owned by Crawl yet. $name should play some more ;)"
|
.banisheddd
|
!lm * abyss.enter br=Abyss lvl>=3 x=place
|
.boris
|
!lg * killer=boris ((tiles || !@hugeterm)) ntv=0 -tv:x2.0
|
.cobbed
|
!lg * hungrycobs place=zot|crypt ((ktype=starvation || ikiller=death_cob)) $*
|
.crushed
|
!lg * cv>0.14 ikiller=octopode_crusher
|
.csdcnuke
|
!lg csdc -tv:channel=csdc:nuke
|
.deadselrobin
|
!lg dieselrobin !won ((br!=D||lvl>12)) s=name
|
.dj
|
!lm !neil $* ktyp= crace=djinni s=name,char x=max(xl) o=max(xl) title:"Djinn" format:"${.}:${x}" pfmt:"${.} (${child})" stub:"Djustice is done."
|
.donald
|
!lg * killer=donald ((tiles || !@hugeterm)) ntv=0 -tv
|
.doomed
|
!lg * ikiller=doom_hound $*
|
.doydevkills
|
!lg @devteam (( (( cikiller=the_serpent_of_hell newserpent )) || (( cikiller=~lich randliches )) )) s=name,ckiller
|
.doynext
|
.echo $(let (chars $(split " " $(replace "greaterplayer: " $(ldbent-text $(ldb doy 5))))) $(nth $(rand $(length $chars)) $chars))
|
.dr
|
!tv dieselrobin !won start>=2015-01-24 xl>8 max=rend ntv=$(!lg dieselrobin !won start>=2015-01-24 xl>8 min=ntv fmt:"$ntv")
|
.e
|
.s place=elf
|
.earthzig
|
!lg * vlong>=0.17-a0-2003-gd348506 br=zig ikiller=caustic_shrike|juggernaut|octopode_crusher|entropy_weaver|iron_giant $*
|
.f
|
!lg * ((tiles || !@hugeterm)) ntv=0 max=tdam -tv hp=$(mhp-tdam)
|
.g
|
!lg * !boring !won (( map=~grunt || kmap=~grunt )) $*
|
.gfbg
|
!winssinceclasswon gammafunk !ck !be
|
.gfdevkills
|
.gfkill @devteamnp $* s=name,cikiller,vault(kmap) title:'gammafunk dev kills' stub:'No gammafunk dev kills'
|
.gfgk
|
!lg ${1:-.} gf-good-mons|gf-good-branch|gf-good-dungeon|gf-good-abyss|moonbase|gf-wizard-prison|gf-cloud-mage-hellbinder|gf-elemental-lab $* title:"gammafunk good kills for $(name_fixup ${1:-.})$(argst $*)" stub:"No gammafunk good kills for $(name_fixup ${1:-.})$(argst $*)"
|
.gfkill
|
!lg ${1:-.} $* gfmap|gf-mons-kill|thrown|harpooned title:"Kills by gammafunk maps/monsters for $(name_fixup $1)$(argst $*)" stub:"No kills by gammafunk maps/monsters for $(name_fixup $1)$(argst $*)"
|
.gfmap
|
!lg ${1:-.} $* gfmap title:"gammafunk map kills for $(name_fixup $1)$(argst $*)" stub:"No gammafunk map kills for $(name_fixup $1)$(argst $*)"
|
.gfmapallkills
|
!echo Gammafunk vault kills$(argst $*): $(vaultallkills gfkmap gfmap "$*")
|
.gfrace
|
!winssinceracewon gammafunk !felid !minotaur
|
.gfwk
|
!lg ${1:-*} $* gf-watch title:"gammafunk watched kills for $(name_fixup ${1:-*})$(argst $*)" stub:"No gammafunk watched kills for $(name_fixup ${1:-*})$(argst $*)"
|
.greatsheep
|
!lg greatplayers killer=sheep $(do $(.sheepinc) -$(nth 1 $(split '=' $(ldb ~sheepcounter)))) -tv
|
.grid
|
!tv * ((tiles || nothuge)) kmap~~the_grid src!=cwz ntv=0
|
.harpoon
|
!lg * harpoon cikiller=swamp_worm|iron_giant
|
.hothelled
|
!newhell $*
|
.hubristv
|
!lg * hubris ((tiles || nothuge)) !cwz !ckr !cjr ((!cdo || cv>=0.14)) $* recent max=rend ntv=$(!lg * hubris min=ntv fmt:"$ntv") -tv:<2
|
.iood
|
!lg * ((tiles || !@hugeterm)) !cln !csn ktyp=disintegration kaux~~orb_of_destruction ntv=0 max=xl -tv
|
.j
|
!lm * $* ktyp= class=jester s=name,char x=max(xl) o=max(xl) title:"Jesters" format:"${.}:${x}" pfmt:"${.} (${child})" stub:"Jestice is done."
|
.jory
|
!tv * ((tiles || !@hugeterm)) ikiller=jory ntv=0
|
.jsmap
|
!lg * ((map~~johnstein||kmap~~johnstein)) $*
|
.jugged
|
!lg * killer~~juggernaut killer!~~ghost x=dam,tdam $*
|
.k
|
!lg * ((tiles || !@hugeterm)) !cln !csn map=minmay_klotski ntv=0 max=xl -tv
|
.klowned
|
!lg ${1:-*} cv>=0.23 (( cikiller=killer_klown || zot status~~bat-form|wisp|pig-form|fire_vuln|vertiginous|fragile || !ru status~~no_potions )) x=status $* title:"Deaths from pie-throwing killer klowns$(argst $) for $(name_fixup ${1:-*})" stub:"No deaths from pie-throwing killer klowns$(argst $*) for $(name_fixup ${1:-*})"
|
.lo
|
!lm * $* alive crace=lava_orc s=name,char x=max(xl) o=max(xl) title:"Lava Orcs" format:"${.}:${x}" pfmt:"${.} (${child})" stub:"Orcstice is done."
|
.m
|
.s status=marked
|
.mara
|
!lg * !won ikiller=~mara ((tiles || !@hugeterm)) ntv=0 -tv
|
.markedtv
|
!lg * ((tiles || nothuge)) !cwz !cpo !ckr !cjr ((!cdo || cv>=0.14)) xl>17 !won status=marked $* -random -tv
|
.mdevkills
|
!lg @devteam kmap=~minmay kmap!~~misc_feat kmap!~~arrival s=name
|
.mennas
|
!lg * !won killer=mennas ((tiles || !@hugeterm)) ntv=0 -tv
|
.mikeecrabs
|
!lg * kmap|map=gammafunk_mikee_crab_dinner $* title:"Crab vault deaths$(argst $*)" stub:"No crab vault deaths$(argst $*)"
|
.mikeecrabyss
|
!lm * cv>=0.21-a abyss.enter~~apocalypse_crab oplace~~lair|swamp|depths $* title:"Possible gammafunk_mikee_crab_dinner banishments"
|
.n
|
!lg * !won !boring nostalgia ntv=0 max=xl -tv
|
.newlich
|
!lg * cikiller~~lich polypsyche
|
.o
|
!lg * ((tiles || !@hugeterm)) kmap=minmay_octagon_city ntv=0 -tv
|
.ocs
|
!lg * ikiller=orange_crystal_statue $*
|
.oneshot
|
!lg ${1:-.} $* xl>10 sdam>=${mhp} hp=${mhp-sdam} x=sdam,mhp
|
.orbrunboris
|
!lg * $(!lm * orb killer=Boris x=gid fmt:"$x" stub:"gid=0") stub:"No orb run kills for Boris yet."
|
.owned2
|
!lg ${1:-.} $* x=tdam,mhp tdam>=${mhp} !((ak place=abyss xl<5)) stub:"$name hasn't been owned by Crawl yet. $name should play some more ;)"
|
.owned2tv
|
.owned2 ${1:-*} $* ((tiles || nothuge)) !cwz !ckr !cjr ((!cdo || cv>=0.14)) -random -tv
|
.ownedtv
|
.owned ${1:-*} $* ((tiles || nothuge)) !cwz !ckr !cjr ((!cdo || cv>=0.14)) -random -tv
|
.paralysistv
|
!lg * ((tiles || nothuge)) !cwz !cpo !ckr !cjr ((!cdo || cv>=0.14)) xl>17 !won status~~(paralysed|petrified) !starved $* -random -tv
|
.phyte
|
!lg * (( map~~phyte_club || kmap~~phyte_club )) $*
|
.polypsyche
|
!lg * ckiller=Psyche polypsyche
|
.randomtv
|
.echo $(let* (tvs (list ".ownedtv *" "!shafttv" "!orbsplattv" ".paralysistv") cur_tv $(elt $(rand $(+ $(length tvs) 1)) $tvs) cmdline $(if $* "$*" "-tv:channel=randomtv")) $(exec "$cur_tv $cmdline"))
|
.reaved
|
!lg * cikiller~~reaver polypsyche
|
.s13
|
!lg * !won !boring ((tiles || !@hugeterm)) ((cln end>=20130626 || !cln)) !csn cv=0.13-a max=sc ntv=0 -tv ${*:-xl>15}
|
.shardshriketv
|
!lg * killer=~shard_shrike max=rend ntv=$(!lg * killer=~shard_shrike min=ntv fmt:"$ntv") -tv:<2:channel=shriketv
|
.sheepinc
|
.echo $(ldb-set! ~sheepcounter 1 'n='$(+ $(nth 1 $(split '=' $(ldb ~sheepcounter))) 1))
|
.shriketv
|
!lg * killer=~caustic max=rend ntv=$(!lg * killer=~caustic min=ntv fmt:"$ntv") -tv:<2:channel=shriketv
|
.slime
|
!lg * oktv ((tiles || !@hugeterm)) slime ntv=0 -tv:x2
|
.slimetv
|
!tv * slime ((tiles || nothuge)) !cwz !ckr !cjr ((!cdo || cv>=0.14)) $* ntv=0
|
.sniped
|
!tv * kaux=~magic_dart ntv=0
|
.starcursed
|
!lg * abyss status=~para ntv=0 -tv
|
.t
|
.s t
|
.td
|
!lg * oktv ((tiles || !@hugeterm)) map=minmay_three_doors ntv=0 -tv:<0.5:x3
|
.tree
|
!lg * status~~tree !won !boring ((tiles || !@hugeterm)) max=xl ntv=0 -tv ${*:-xl>15}
|
.trogsanc
|
!lg * kmap=emtedronai_trogs_sanctum $*
|
.tt
|
!lg * !won !boring t ((tiles || !@hugeterm)) max=xl ntv=0 -tv ${*:-xl>15}
|
.versions
|
.echo $(join ", " (map (fn (src) (concat $src ": " (=version.query $src $*))) $(list CAO CDO CPO CSZO CUE CWZ CXC LLD)) HI)
|
.wpal
|
!lg * kmap=gammafunk_depths_water_palace $*
|
.xom
|
.echo $(let* (a $(nick-aliases xom)) $(randelem $a)) thinks this is hilarious!
|
0.27
|
!lg * xl=27 recent !won !boring ntv=0 -tv
|
=0won.list
|
!lg * playable s=char / won o=-char stub:"x" fmt:"${.}" join:"|" ?:N=0
|
=0woncomborobin.list
|
!lg comborobin playable s=char / won o=-char stub:"x" fmt:"${.}" join:"|" ?:N=0
|
=0woncomborobinold.list
|
!lg * cv>=0.10 !experimental crace!=LO|Dj|El|MD|Yak cls!=Jr char!=GrDK|GrPr s=char / name=comborobin won o=-char stub:"x" fmt:"${.}" join:"|" ?:N=0
|
=a-classlist
|
.echo Fi&Pa&Ra&Th&As&Wz&Pr&Bd&Mo&He&Wp&Ar&Me&Fa&Mi&Ba&Dr&Ne&El&Be&Du&Ck
|
=a-racelist
|
.echo Hu&Tr&He&Ge&De&Dw&Gn&Ht&Or&Dr&Ra&Me
|
=a-signlist
|
.echo Raven&Book&Wand&Unicorn&Salamander&Dragon&Sword&Falcon&Cup&Candle&Wolf&Tree
|
=abyssturns.deaths
|
.echo $(!lg $* abyss !ak s=end,rstart o=end join:" " title:"" pfmt:"${child}" stub:"-1")
|
=abyssturns.entertimes
|
.echo $(!lm $* abyss.enter !ak ktype!= s=time,rstart o=time join:" " title:"" pfmt:"${child}")
|
=abyssturns.enterturns
|
.echo $(!lm $* abyss.enter !ak ktype!= s=time,turn o=time join:" " title:"" pfmt:"${child}")
|
=abyssturns.exitturns
|
.echo $(!lm $* abyss.exit !ak ktype!= s=time,turn o=time join:" " title:"" pfmt:"${child}")
|
=abyssturns.tripturns
|
.echo $(let (d (split ' ' (=abyssturns.deaths $*)) entm (split ' ' (=abyssturns.entertimes $*)) entn (split ' ' (=abyssturns.enterturns $*)) extn (split ' ' (=abyssturns.exitturns $*))) (do (if (/= -1 (int (car $d))) (set! entn (abyssturnsremover $d $entm $entn))) (listsubtract $extn $entn)))
|
=addtest
|
!cmd =test $(=cmd =test) \$($*)
|
=aevp
|
.echo $(/ (* (/ (* (/ 2 5.0) (** $1 2)) (+ $2 3)) (- 45 $3)) 45.0)
|
=allhellrunes
|
!lm ${*:-.} s=gid rune place=geh|coc|dis|tar x=cdist(place) fmt:"${.}" join:"|" stub:"" ?:cdist(place)=4
|
=apostrophe
|
.echo '
|
=armourdodgepenalty
|
.echo $(let (size (- 1 (/ (=evbonus.sizefactor $(lower $1)) -8.0)) er $2 str $3) $(max 0 (* (- (* $er $size) 3) (/ 10.0 $str))))
|
=badchar
|
!rg * $* playable badchar fmt:"The RNG chooses: $char" stub:"Couldn't find a bad enough char for $*"
|
=badplace
|
.echo $(replace "_" " " $(weighted-rand 100:the_Abyss Hell beam.cc 1:ray.cc 1:stuff.cc 5:#crawl 5:4chan 5:4.1 1:the_Tower_of_Lemuel))
|
=beerlist
|
.echo lager&ale&bitter&stout&India pale ale&cask ale&imperial stout&pilsner&Schwarzbier&root beer&ginger beer
|
=beervessel
|
.echo pint&stein&mug&pitcher&bottle&can
|
=bot_prefix
|
.echo $(if (= $1 cbr2) % (if (= $1 cao) !cao (if (= $1 cdo) @ (if (= $1 cdi) !cdi (if (= $1 cue) \$ (if (= $1 cxc) !| (if (= $1 cpo) # (if (= $1 lld) !lld (if (= $1 cnc) !cnc ?)))))))))
|
=branchletter
|
.echo $(let (name (elt $* (branchletterhash))) (if (bound? name) $name $*))
|
=cardpower
|
.echo $(+ (* $1 9) (/ (* (+ $1 25) $2) 27))
|
=charsum
|
!lm * id=${1} x=name,xl,char,god fmt:'${x[0]}: L${x[1]} ${x[2]}^$(=godshortname ${x[3]})'
|
=cheers.containers
|
.echo glass&pint&flagon&stein&shot glass&cask&boot full&briefcase full
|
=cheers.drinklist
|
.echo whiskey&beer&mead&lager&vodka&cider&tequila&gin&bourbon&scotch&rum&brandy&cognac&vermouth&saké&sangria&goldschläger&absinthe&cabernet sauvignon&moonshine&Romulan ale
|
=cmd
|
.echo $(join ' => ' $(sub 1 $(split ' => ' $(!cmd $1))))
|
=coffee.coffeelist
|
.echo black coffee&cappuccino&Irish coffee&café au lait&soy latte&caffè macchiato&latte macchiato&caffè breve&café mocha
|
=coffee.containers
|
.echo cup&mug&pot
|
=commitby.counter
|
.echo $(if (= $channel ##crawl-dev) (ldb-set ~commitby 1 (+ 1 (int (ldb-entry ~commitby 1)))) (ldb-entry ~commitby 1))
|
=cp
|
!cmd $2 $(=cmd $1)
|
=csdcgid
|
.echo $(let (lggid (nth 1 (split '=' (!lg ${1:-.} xl>4 $* 1 x=gid fmt:"${x}"))) lmgid (nth 1 (split '=' (!lm ${1:-.} $* alive x=gid 1 fmt:"${x}")))) (if (bound? lggid) $lggid $lmgid))
|
=csdcwk
|
.echo $(if (re-find 'wk\d' $1) $1 "$(=kw csdcwk)$(if $1 " $1" "")")
|
=currentgames
|
.echo $(if (= $1 x) x (foldr annotate_combo (replace '|' ' ' $1) (split ' ' (replace '),' ') ' (=currentgames.inprogress $1 $2 $*)))))
|
=currentgames.inprogress
|
!lm * $1 alive rtime>$(=time.monthago) $(ignore $2) $* s=char,name o=-char x=max(xl) format:"${.}" pfmt:"${.}(${child})" join:"," stub:"" title:"" ?: max(xl)>=$2
|
=currentgames.unplayed
|
.echo $(if (= $1 x) '' (foldr remove_combo (replace '|' ' ' $1) (split ' ' (replace '),' ') ' (=currentgames.inprogress $1 $2)))))
|
=dodgebonus
|
.echo $(let (size (=evbonus.sizefactor $(lower $1)) dex (min $2 (+ 14 (log2 (** (+ 1 (/ (- $2 14) 10.0)) 10)))) dodge $3) $(/ (+ 7 (* $dodge $dex)) (- 20.0 $size)))
|
=dur
|
.echo $(!lm ${1:-.} $* x=dur stub:"0" fmt:"${x[0]}")
|
=empty
|
.echo $(replace a '' a)
|
=enterturn
|
.echo $(nth 1 (split '=' (!lm ${1:-.} br.enter=$2 $* x=turn fmt:"${x}" stub:"")))
|
=eval
|
.echo $(try (exec $*) $*)
|
=eval_rand_entry
|
.echo $(let (n (rand ${2:-1} (entrylength $1))) (concat "($n) " (apply evalf $(entry $1 $n))))
|
=evbonus.sizefactor
|
.echo $(let (x (car (split | (nth 1 (split $1: tr:-2|og:-2|ce:-2|na:-2|ha:2|ko:2|sp:4|fe:4|dragon:-6|spider:4|ice:-2))))) (nvl ${x:-0}))
|
=faze.greatbarricade
|
!lg * playable:sp s=crace o=-crace / won @${1:-.} sk=shields sklev=27 format:"${.}" title:"Unbarricaded species for $name" stub:"$name is very crazy!" ?:N=0
|
=fn
|
.echo $(join ' ' $(sub 2 $(split ' ' $(!fn $1))))
|
=games
|
!lm ${1:-.} $* alive s=gid x=max(id),max(xl) o=max(xl) title:"" stub:"No current games" join:" | " fmt:'$(=charsum ${x[0]})'
|
=gdeathcount
|
!lg ${1:-.} $* ikiller~~$(=apostrophe)s_ghost fmt:"$n" stub:"0"
|
=gkillcount
|
!lg * ikiller~~^($(join '|' (nick-aliases (name_fixup ${1:-.}))))$(=apostrophe)s?_ghost $* fmt:"$n" stub:"0"
|
=gkillratio.helper
|
.echo $(=killratio.calc $(!lg $2 $* ikiller~~^$1.[s]?_ghost fmt:"${n}" stub:"0") $(!lm $2 $* ghost=$1 fmt:"${n}" stub:"0"))
|
=gkillratio.helper2
|
.echo $(let (x $1 target ${2}$(replace " ()" '' " ($*)") ratio $(=gkillratio.helper $1 $2 $*)) $(if $(= $ratio NaN) "No battles for $x's ghost"$(if $(/= $target *) " and $target"). "$x's ghost wins $ratio% of battles"$(if $(/= $target *) " against $target").))
|
=gkillratio2.helper2
|
.echo $(let (x $1 target ${2}$(replace " ()" '' " ($*)") ratio $(=gkillratio.helper $(join '|' (nick-aliases $1)) $(join '|' (nick-aliases $2)) $*)) $(if $(= $ratio NaN) "No battles for $x's ghost"$(if $(/= $target *) " and $target"). "$x's ghost wins $ratio% of battles"$(if $(/= $target *) " against $target").))
|
=godshortname
|
.echo $(let (name (elt $* (godshortnamehash))) (if (bound? name) $name $*))
|
=godshortname.list
|
.echo None|Trog:Trog|Okawaru:Oka|Lugonu:Lucy|Vehumet:Veh|Xom:Xom|Sif Muna:Sif|Makhleb:Makh|Yredelemnul:Yred|The Shining One:TSO|Nemelex Xobeh:Nem|Kikubaaqudgha:Kiku|Beogh:Beogh|Ashenzari:Ash|Elyvilon:Ely|Cheibriados:Chei|Zin:Zin|Dithmenos:Dith|Fedhas:Fedhas|Qazlal:Qaz|Jiyva:Jiyva|Gozag:Gozag|:None|
|
=godshortname3
|
.echo $(lookup $* (godshortnamehash))
|
=greatprogress.role
|
.echo $(sort $(fn (a b) $(<=> $(list $(int $(sub 3 $a)) $(sub 0 2 $a)) $(list $(int $(sub 3 $b)) $(sub 0 2 $b)))) $(map $(fn (x) $(let (y $(split / $(car $(split " (" $x)))) $(role_abbrev (nth 0 $y)):$(- $(nth 2 $y) $(nth 1 $y)))) $(split ", " $(!lg * playable2 won s=cls x=cdist(crace) / @${*:-.} fmt:"${.}/${x}" o=-cls))))
|
=greatprogress.species
|
.echo $(sort $(fn (a b) $(<=> $(list $(int $(sub 3 $a)) $(sub 0 2 $a)) $(list $(int $(sub 3 $b)) $(sub 0 2 $b)))) $(map $(fn (x) $(let (y $(split / $(car $(split " (" $x)))) $(species_abbrev (nth 0 $y)):$(- $(nth 2 $y) $(nth 1 $y)))) $(split ", " $(!lg * playable2 won s=crace x=cdist(char) / @${*:-.} fmt:"${.}/${x}" o=-crace))))
|
=hd6polylist
|
.echo basilisk&black bear&blink frog&bog body&chaos spawn&deep elf fighter&deep elf mage&demonspawn&fire drake&&formicid&golden eye&hog&human&kobold demonologist&neqoxec&raven&soldier ant&spatial vortex&two-headed ogre&&ynoxinul
|
=hd7polylist
|
.echo baby alligator&black mamba&blue devil&deep elf priest&efreet&eye of draining&flying skull&guardian mummy&harpy&hellion&hellwing&hell beast&hippogriff&naga mage&orb spider&phantom&polar bear&queen bee&raiju&red devil&shapeshifter&sixfirhy&smoke demon&spiny frog&spriggan&tengu conjurer&tormentor&troll&unseen horror&yak
|
=hd8polylist
|
.echo apocalypse crab&boring beetle&draconian&dryad&elf&fire crab&fungus&guardian serpent&jumping spider&komodo dragon&naga ritualist&octopode&orange demon&red wasp&rust devil&salamander&tarantella&trapdoor spider&vault sentinel&vine stalker&wandering mushroom&wind drake&yaktaur
|
=helluniques
|
!lm ${*:-.} s=gid unique~~asmodeus|antaeus|ereshkigal|dispater|serpent_of_hell fmt:"${.}" join:"|" stub:"" ?:N=5
|
=hours_since_milestone
|
.echo $(hourssince (stamptime (!lm * x=time $* fmt:"$x[0]")))
|
=ioodgesture
|
.echo conjures a glowing orb&conjures an orb of pure magic&launches a ball of destructive magic
|
=killratio.calc
|
.echo $(sub 0 5 $(* 100.0 $1 $(/ 1.0 $(+ $1 $2))))
|
=kw
|
.echo $(join ' => ' $(sub 1 $(split ' => ' $(!kw $1))))
|
=lastnchoice.combostatus
|
!lm * alive t-milestones $* s=gid x=max(xl) o=max(xl) join:" || " fmt:"\$(!lm * gid=${.} fmt:'$name: $(upper $src), L$xl $title of ${god:-No God}')" title:"" stub:""
|
=lastnchoice.combostatus2
|
!lm * alive t $* s=gid x=max(nrune),max(xl),max(time) o=max(nrune),max(xl),max(time) join:" || " fmt:"\$(!lm * gid=${.} fmt:'$name: $(upper $src), L$xl $title of ${god:-No God} ($place$(runeformat $nrune))')" title:"" stub:""
|
=lastrunes
|
.echo $(join ', ' (sub 0 3 (split | (!lm ${1:-.} $* rune s=noun x=+max(time) join:"|" fmt:"${.}"))))
|
=legendary.card.lvl1
|
.echo $(let (c (=cardpower $1 $2)) $(if (>= (+ $c 300) 500) 1 $(- 1 (* (/ (- 700 (+ $c 300) ) 700.0) (/ (- 500 (+ $c 300) ) 700.0)))))
|
=legendary.card.lvl2
|
.echo $(let (c (=cardpower $1 $2)) $(if (>= (+ $c 300) 700) 1 $(* (/ (+ $c 300) 700.0) (/ (+ $c 300) 700.0))))
|
=lmtimediff
|
.echo $(sprintf "%014d" (- (ftime (utc (time)) "%Y%m%d%H%M%S") (+ 100000000 (replace S $(!lm * $* x=time fmt:"$x[0]")))))
|
=locateall.raw
|
!lm ${*:-.} alive s=name,gid o=-name join:" | " pfmt:"^${.}: ${child}" fmt:"\$(!lm ${*:-.} gid=${.} fmt:'$(upper $src) $explbr $cv, L$xl $char of ${god:-No God}')" stub:"^"
|
=locateall.rawall
|
!lm ${*:-.} alive_all s=name,gid o=-name join:" | " pfmt:"^${.}: ${child}" fmt:"\$(!lm ${*:-.} gid=${.} fmt:'$(upper $src) $explbr $cv, L$xl $char of ${god:-No God}')" stub:"^"
|
=locateallall.raw
|
!lm ${*:-.} ktyp= type!=crash s=name,gid o=-name join:" | " pfmt:"^${.}: ${child}" fmt:"\$(!lm ${*:-.} gid=${.} fmt:'$(upper $src) $explbr $cv, L$xl $char of ${god:-No God}')" stub:"^"
|
=makefn
|
!fn $*
|
=maxdam
|
.echo $(- (* 18 (** 2 (- $* 1))) 1)
|
=mfcwc.chars
|
.echo MfSk|HuWn|VpIE|NaWz|FoEE|GrAr|DDBe|HEWr|OpVM|TeCj|VSMo|CeHu|VpNe|OgSk|HODK|FeSu|OgWz|SpEn|OpBe|HEAE|DsMo|MfTm|KoAs|DeWz|MiFi|HuWn|GhEE
|
=morgue_link
|
.echo $(let (base (car (split | (nth 1 (split ${1}> (=morgue_link.list ${2:-trunk})))))) (if (bound? base) $base unknown))
|
=morgue_link.list
|
.echo >unknown|cao>https://crawl.akrasiac.org/rawdata|cdo>http://crawl.develz.org/morgues/${1:-trunk}|clan>https://www.underhound.eu/crawl/morgue|cpo>https://crawl.project357.org/morgue|cdi>https://crawl.dcss.io/crawl/morgue|cue>https://www.underhound.eu/crawl/morgue|cnc>https://archive.nemelex.cards/morgue|cxc>https://crawl.xtahua.com/crawl/morgue|cbr2>https://cbro.berotato.org/morgue|lld>http://lazy-life.ddo.jp:8000/morgue
|
=morgue_link_old
|
.echo $(if (= $1 cao) http://crawl.akrasiac.org/rawdata (if (= $1 cszo) http://dobrazupa.org/morgue (if (= $1 clan) http://crawl.lantea.net/crawl/morgue (if (= $1 rhf) http://rl.heh.fi/morgue (if (= $1 cdo) http://crawl.develz.org/morgues/${2:-trunk} (if (= $1 cbro) http://crawl.berotato.org/crawl/morgue (if (= $1 ckr) http://kr.dobrazupa.org/morgue/${2:-trunk} unknown)))))))
|
=mute
|
.echo $(if (= $channel ##crawl-sequell) $(let (x $1) $(!learn add :beh: \{\{nick:${x}\}\} \$*text :::::: last)))
|
=mv
|
.echo $(=cp $1 $2), $(=rm $1)
|
=nchoice
|
=nemelex
|
=nchoice.new
|
.echo Time for a new nchoice! It will appear shortly on the tournament website (if it hasn't yet). Type "=nemelex XXXX" to update !nchoice with the new combo, where XXXX should be replaced by the new combo.
|
=nemelex
|
!kw nchoice $(if (= XXXX (=kw nchoice)) $1 (=kw nchoice)(if (not (= "0" (!lg * t won char=$(nth -1 (split | (=kw nchoice))) fmt:"$n" stub:"0"))) (concat | (apply (fn (. args) (!ftw $args)) (split ' ' (!wtf $1)))) (ignore $1)))
|
=newnext
|
.echo $(let* (p ${1:-${user}} c (rand_unwon $p (try (entry ~${p}_pref 1)))) (do (ldb-set ~${p}_next 1 $c) $c))
|
=next
|
.echo $(let (p ${1:-${user}}) (concat (if (has_won $p (entry ~${p}_next 1)) $(ignore $(ldb-set! ~${p}_next 1 $(rand_unwon $p (try (entry ~${p}_pref 1) "")))) "") "The RNG decrees that $p shall win $(entry ~${p}_next 1) next."))
|
=nwon.list
|
!lg * won playable !experimental !dj !lo $(ignore $1) $* s=char o=-char format:"${.}" join:"|" stub:"x" ?:N<=${1:-$(=nwon.n)}
|
=nwon.n
|
.echo 9
|
=nwon.nodefs
|
.echo $(ignore $1)$(ignore $2)$(let (x (=currentgames $(=nwon.list $1 $*) $2 $*)) $(if (= $x x) "All combos $(if $* '('$*') ')have been won at least $(int (+ 1 $1)) $(plural time (int (+ 1 $1)))!" "$(length (split ' ' $x)) $(plural combo (length (split ' ' $x))) $(if $* '('$*') ')won at most $1 times: $x"))
|
=oldgames
|
!lm ${1:-.} $* alive s=gid x=max(name),max(xl),max(char),max(god) o=max(xl) title:"" stub:"No current games" join:" | " fmt:'${x[0]}: L${x[1]} ${x[2]}^$(=godshortname ${x[3]})'
|
=oldwon.list
|
!lg * playable s=char o=-char / won cv>=${1:-$(=oldwon.v)} format:"${.}" join:"|" stub:"x" ?:N=0
|
=oldwon.nodefs
|
.echo $(let (x (=currentgames $(=oldwon.list $1) $2)) $(if (= $x x) "All combos have been won in v>=${1}!" "$(length (split ' ' $x)) $(plural combo (length (split ' ' $x))) not won in v>=$1: $x"))
|
=oldwon.v
|
.echo 0.12
|
=oneandwongids
|
!lg ${*:-.} rstart=$(!lg ${*:-.} s=char x=min(rstart) fmt:"${x[0]}" join:"|" stub:"") won s=gid fmt:"${.}" join:"|" stub:""
|
=orbruntomb.helper
|
.echo $(let (name $1 tomb_array $(orb_run_tombs_array_for $1 $2)) $(let (chars (map $(fn (x) $(nth 3 $x)) $tomb_array)) $(if $(> (length $tomb_array) 0) $(if $(= (length $tomb_array) 1) "$name orb-ran tomb once with a ${chars}! Fantastic!" "$name orb-ran tomb $(length $tomb_array) times (${chars})! Amazing!") "$name hasn't orb-run tomb yet... :(")))
|
=ornate.card.lvl1
|
.echo $(let (c (=cardpower $1 $2)) $(if (>= (+ $c 150) 700) 1 $(/ (+ $c 150) 700.0)))
|
=percentcalc
|
!calc (100.0 * $(float $1) / $(float $2))
|
=pizzalist
|
.echo Hawaiian&pepperoni&cheese&anchovy&margherita&Neapolitan&olive&falafel&mushroom&deep-dish&pepper&onion&Pandemonium&stuffed crust&Sicilian&Capricciosa&Bolognese&New York-style&thin crust
|
=pizzaquantity
|
.echo slice&pie&platter&box&stack&personal pan
|
=poly1
|
.echo adder|alligator|basilisk|bat|big kobold|blink frog|black mamba|boggart|boring beetle|boulder beetle|catoblepas|centaur|centaur warrior|death drake|death yak|deep elf annihilator|deep troll|dire elephant|draconian|emperor scorpion|ettin|faun|fire crab|fire dragon|fire giant|frost giant|giant eyeball|ghost moth|gnoll|golden dragon|goliath beetle|harpy|hobgoblin|ice dragon
|
=poly2
|
.echo jackal|killer bee|kraken|lindwurm|manticore|minotaur|naga|naga sharpshooter|ogre|orb spider|orc priest|quokka|rat|red wasp|salamander|sea snake|sheep|siren|snapping turtle|spiny frog|sphinx|spriggan air mage|stone giant|tarantella|tengu reaver|titan|torpor snail|troll|vault sentinel|warg|wind drake|wolf spider|yak|yaktaur
|
=qw
|
.echo $(=qw0 $*) $(=qw1 $*) $(=qw2 $*) $(=qw3 $*) $(=qw4 $*) $(=qw5 $*) $(=qw6 $*) $(=qw7 $*) $(=qw8 $*) $(=qw9 $*)
|
=qw0
|
.echo $(!lg $* fmt:"$n" stub:"0")
|
=qw1
|
.echo $(!lm $* br.enter=lair fmt:"$n" stub:"0")
|
=qw2
|
.echo $(!lm $* br.exit=lair fmt:"$n" stub:"0")
|
=qw3
|
.echo $(!lm $* rune urune=1 fmt:"$n" stub:"0")
|
=qw4
|
.echo $(!lm $* br.enter=depths fmt:"$n" stub:"0")
|
=qw5
|
.echo $(!lm $* br.exit=depths fmt:"$n" stub:"0")
|
=qw6
|
.echo $(!lm $* br.enter=zot fmt:"$n" stub:"0")
|
=qw7
|
.echo $(!lm $* br.end=zot fmt:"$n" stub:"0")
|
=qw8
|
.echo $(!lm $* orb fmt:"$n" stub:"0")
|
=qw9
|
.echo $(!lg $* won fmt:"$n" stub:"0")
|
=racialmr
|
.echo Will: Sp: 7!, Dr[purple]: 6, Fe: 6, Mu: 5, Na: 5, VS: 5, DE: 4, Dg: 4, Dj: 4, Fo: 4, MD: 4, On: 4, Vp: 4, everyone else: 3*
|
=racialwill
|
.echo Will: Sp: 7!, DD: 6, Dr[purple]: 6, Fe: 6, Mu: 5, Na: 5, VS: 5, Dg: 4, DE: 4, Dj: 4, Fo: 4, Og: 4, Vp: 4, Ba: 3*, Dr: 3*, Ds: 3*, Gh: 3*, Gr: 3*, Ha: 3*, HO: 3*, Hu: 3*, Ko: 3*, Mi: 3*, Mf: 3*, Op: 3*, Pa: 3*, Te: 3*, Tr: 3*
|
=randhat.list
|
.echo hat of the alchemist&hat of the bear spirit&hat of the high council&hat of pondering&crown of dyrovepreva&mask of the dragon&maxwell's etheric cage
|
=randomuniq
|
!lm * uniq week xl>$(rand 27) fmt:"$noun" -random
|
=randwraith
|
.echo $(sub 0 1 $(sub $(rand $(length $(split & $(=wraith)))) $(split & $(=wraith))))
|
=rc
|
.echo http://crawl.jorgrun.rocks/rcfiles/crawl-$(replace trunk git ${2:-git})/$(!lm ${1:-.} cjr x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc
|
=rc.helper
|
!lm ${1:-.} fmt:"\$(concat (ignore ${2}) (=bot_prefix ${*:-${src}}))rc ${name} \$(version_fixup ${2:-${v}})" stub:"No milestones for $(name_fixup ${1:-${user}})."
|
=replacecmd
|
!cmd $1 $(replace $2 $3 $(=cmd $1))
|
=replacecmd2
|
!cmd $1 $(replace $2 $* $(=cmd $1))
|
=replacefn
|
!fn $1 $(replace $2 $3 $(=fn $1))
|
=replacekw
|
!kw $1 $(replace $2 $3 $(=kw $1))
|
=resist_message
|
.echo resists with almost no effort&easily resists&resists&resists with significant effort&struggles to resist&barely resists
|
=rip.br
|
.echo $(!lm ${1:-.} $* fmt:"${br}")
|
=rip.char
|
.echo $(!lm ${1:-.} $* fmt:"${char}")
|
=rip.format
|
.echo the $2 (L$3 $1)$(if $4 ", worshipper of $4"), $5 on $6, with $7 points after $8 turns and $9.
|
=rip.god
|
.echo $(!lm ${1:-.} $* fmt:"${god}")
|
=rip.lm
|
.echo $(!lm ${1:-.} alive $* fmt:"$char|$title|$xl|$god|$br|$lvl|$absdepth")
|
=rip.opts
|
.echo recent !won !boring
|
=rip.place
|
.echo $(!rg * $(=rip.opts) xl=$1 $* fmt:"${place}")
|
=rip.points
|
.echo $(!rg * $(=rip.opts) xl=$1 $* fmt:"${sc}")
|
=rip.time
|
.echo $(!rg * $(=rip.opts) xl=$1 $* fmt:"${dur}")
|
=rip.title
|
.echo $(!lm ${1:-.} $* fmt:"${title}")
|
=rip.turns
|
.echo $(!rg * $(=rip.opts) xl=$1 $* fmt:"${turn}")
|
=rip.vmsg
|
.echo $(!rg * $(=rip.opts) xl=$1 $* fmt:"${vmsg}")
|
=rip.xl
|
.echo $(!lm ${1:-.} $* fmt:"${xl}")
|
=rm
|
!cmd -$(.echo rm) $1
|
=rndioodgesture
|
.echo $(sub 0 1 $(sub $(rand $(length $(split & $(=ioodgesture)))) $(split & $(=ioodgesture))))
|
=rndspellgesture
|
.echo $(sub 0 1 $(sub $(rand $(length $(split & $(=spellgesture)))) $(split & $(=spellgesture))))
|
=rndspelltarget
|
.echo $(sub 0 1 $(sub $(rand $(length $(split & $(=spelltarget $*)))) $(split & $(=spelltarget $*))))
|
=runeturn
|
.echo $(nth 1 (split '=' (!lm ${1:-.} $* rune x=turn fmt:"${x}" stub:"")))
|
=runtest
|
.echo $(length $(=test))
|
=speedsplits
|
.echo $(let (cur (=speedsplits.curgid ${1:-.}) pr (=speedsplits.prgid ${1:-.} $*) wr (=speedsplits.wrgid $(ignore $1)$*)) (join ', ' (map (fn (x) "$x[0]($(car $x[1]),$(nth 1 $x[1]))") (zip (=speedsplits.labels) (zip (=speedsplits.diffgid $cur $pr) (=speedsplits.diffgid $cur $wr))))))
|
=speedsplits.curgid
|
.echo $(!lm ${1:-.} alive x=gid stub:"None" fmt:"${x[0]}")
|
=speedsplits.diffgid
|
.echo $(let (a (=speedsplits.splitgid $1) b (=speedsplits.splitgid $2)) (map sec2minsec (listsubtract (=speedsplits.splittimes $a) (=speedsplits.splittimes $b))))
|
=speedsplits.labels
|
.echo L R1 R2 R3 Z O
|
=speedsplits.prgid
|
.echo $(!lg ${1:-.} $* won min=dur x=gid fmt:"${x[0]}")
|
=speedsplits.splitgid
|
.echo $(join | (map (fn (x) "$x[0]="(=dur * gid=$1 $x[1])) (map (fn (x) (split : $x)) (split | $(=speedsplits.stones)))))
|
=speedsplits.splittimes
|
.echo $(map pduration (map (fn (x) (nth 1 (split = $x))) (split | $*)))
|
=speedsplits.stones
|
.echo L:br.enter=lair|R1:rune urune=1|R2:rune urune=2|R3:rune urune=3|Z:br.enter=zot|O:orb
|
=speedsplits.wrgid
|
.echo $(!lg * $* !@bot !@hybridbot won min=dur x=gid fmt:"${x[0]}")
|
=spellgesture
|
.echo gestures wildly while chanting&mumbles some strange words&casts a spell
|
=spelltarget
|
.echo gestures at ${*:-something} while chanting&points at ${*:-something} and mumbles some strange words&casts a spell at ${*:-something}
|
=suspensetv.lgopt
|
.echo * race!=felid recent !ckr urune>0 !won !@hugeterm
|
=suspensetv.lmopt
|
.echo * race!=felid recent !ckr urune>0 hp<30 (( !lugonu || type!=abyss.enter)) status!~~"death's door" !@hugeterm
|
=target
|
!lg $* fmt:"\${target}"
|
=tea.brewer
|
!lm * week type=god.worship \${1=$(rand 2)} stub:'$(=randomuniq)' fmt:"$noun" -random
|
=tea.tealist
|
.echo Earl Grey&English breakfast tea&lapsang souchong&Assam&Russian Caravan&chai&sencha&Darjeeling&oolong tea&Jasmine tea&Moroccan mint&chamomile
|
=test
|
.echo $(!bug) $(!calc 2*2)
|
=time
|
!lm * x=rtime fmt:"${x[0]}"
|
=time.day
|
.echo $(sub 0 8 (.echo $(=time)))
|
=time.monthago
|
.echo $(- (=time.day) 100)
|
=time_since_milestone
|
.echo $(let (lmstring (!lm * x=time $* fmt:"$x[0]" stub:"")) (if (= $lmstring "") "literally forever" (let* (t (stamptime $lmstring) d (dayssince $t) H (mod (hourssince $t) 24) M (mod (minutessince $t) 60) S (mod (secondssince $t) 60)) (if (> $d 0) $d" days, ")(if (> $H 0) $H" hours, ")(if (> $M 0) $M" minutes, ")$S" seconds")))
|
=title.range
|
.echo $(if $(= $1 $2) $1 ${1}-${2})
|
=title.skill.inv
|
!lm * $1 sk=invocations sk~~"${2:-blah}" $* s=title fmt:"${.}" stub:""
|
=title.skill.noinv
|
!lm * $1 sk~~"$*" sk!=invocations s=title x=min(sklev),max(sklev) o=-min(sklev) fmt:"${.} (\$(=title.range ${x[0]} ${x[1]}))" stub:""
|
=title.title
|
.echo $(join ', ' (concat (split ', ' (=title.title.noinv $*)) (split ', ' (=title.title.inv $*))))
|
=title.title.inv
|
!lm * $1 title~~"$*" sk=invocations s=god fmt:"Invocations (${.})" stub:""
|
=title.title.noinv
|
!lm * $1 title~~"$*" sk!=invocations s=sk x=min(sklev),max(sklev) fmt:"${.} \$(=title.range ${x[0]} ${x[1]})" stub:""
|
=totaldur.lg
|
!lg $* x=${1.0*sum(dur)} fmt:"${x[0]}" stub:"0"
|
=totaldur.lm
|
.echo $(apply ${+} (split " " $(!lm $* alive s=gid x=${1.0*max(dur)} fmt:"$x" join:" " stub:"0")))
|
=tourneychar.topraces
|
.echo $(join | (sub 0 10 (split | (!lg * $* t won s=crace x=max(char) o=-n join:"|" fmt:'$(combo_to_race ${x[0]})'))))
|
=tourneychar.toproles
|
.echo $(join | (sub 0 10 (split | (!lg * $* t won s=role x=max(char) o=-n join:"|" fmt:'$(combo_to_class ${x[0]})'))))
|
=tstats.games
|
.echo $(!lg * $* !boring fmt:"$n" stub: "0") games
|
=tstats.players
|
.echo $(!lg * $* !boring x=cdist(name) fmt:"$x" stub: "0") players
|
=tstats.playertime
|
.echo total player time $(!lg * $* !boring x=sum(dur) fmt:"$x" stub: "0")
|
=tstats.runers
|
.echo $(!lg * $* urune>0 x=cdist(name) fmt:"$x" stub: "0") runers
|
=tstats.winners
|
.echo $(!lg * $* won x=cdist(name) fmt:"$x" stub: "0") winners
|
=tstats.winrate
|
.echo winrate $(!lg * $* !boring s=year(end) / won fmt:"$n_ratio" stub: "NaN")
|
=tstats.wins
|
.echo $(!lg * $* won fmt:"$n" stub:"0") wins
|
=turns_to_rune
|
.echo $(listsubtract (split | (=turns_to_rune.rune ${1:-.} $2 $*)) (split | (=turns_to_rune.enter ${1:-.} $2 $*)))
|
=turns_to_rune.branches
|
.echo coc|geh|tar|dis|spider|snake|shoals|swamp|slime|vaults|tomb
|
=turns_to_rune.enter
|
!lm ${1:-.} br.enter=$2 $(replace "recent" "" $*) gid=$(!lm ${1:-.} $2 $* rune s=gid o=gid title:"" join:"|" fmt:"${.}") s=gid,turn o=gid title:"" join:"|" pfmt:"${child}"
|
=turns_to_rune.format
|
.echo $(let (t (map int (split ' ' (=turns_to_rune $1 $2 $*)))) $(name_fixup $1)"'s fastest "$2" rune retrieval"$(if $* " ("$*")")": "(foldr min (car $t) (cdr $t))" turns")
|
=turns_to_rune.rune
|
!lm ${1:-.} $2 $* rune s=gid x=min(turn) o=gid title:"" join:"|" fmt:"${x}"
|
=updatebadchar
|
!kw badchar $(!lg greatplayers char=$(!lg * playable won s=char join:"|" fmt:"${.}" ?: N<15) playable s=char !boring / won title:"" join:"|" fmt:"${.}" ?: %<0.07)
|
=version
|
.echo $(sprintf "%1.2f" (+ 0.01 (re-replace ".+cv>=" "" (!kw current))))
|
=version.query
|
!lm * thisweek current $* max=vlong fmt:"$vlong" stub:"none"
|
=version.query.trunk
|
!lm * trunk explbr= $* max=vlong fmt:"$vlong" stub:"none"
|
=watch.helper
|
!lm ${1:-.} fmt:"\$(replace !| | (=bot_prefix ${2:-${src}}))watch ${name}" stub:"No milestones for $(name_fixup ${1:-${user}})."
|
=watch_link
|
.echo $(if (= $1 cao) http://crawl.akrasiac.org:8080/#watch- (if (= $1 cszo) https://crawl.s-z.org/#watch- (if (= $1 clan) https://crawl.s-z.org/#watch- (if (= $1 rhf) http://rl.heh.fi:8080/#watch- (if (= $1 cdo) http://crawl.develz.org/#watch- (if (= $1 cbro) http://crawl.berotato.org:8080/#watch- (if (= $1 ckr) http://kr.dobrazupa.org:8080/#watch- (if (= $1 cxc) http://crawl.xtahua.com:8080/#watch- unknown))))))))
|
=whereis.helper
|
!lm ${1:-.} fmt:"\$(=bot_prefix ${2:-${src}})whereis ${name}" stub:"No milestones for $(name_fixup ${1:-${user}})."
|
=winpercentagejoin
|
!lg * junk:"$1 $2" $* join:"|" fmt:'${.}' / won s=name ?:%$1 N>=${2:-0}
|
=wins
|
!lg $* won s=name title:"${n} wins for $*" fmt:"${.}" stub:"No wins for $*"
|
=wonnobranchgid
|
!lg ${2:-.} $(cdr (cdr (split " " $*))) won gid!=$(!lm ${2:-.} br.enter=$1 won s=gid fmt:"${.}" join:"|" stub:"") s=gid join:"|" fmt:"${.}" stub:"" title:""
|
=wonraces
|
!lg ${1:-.} $* won s=crace x=max(char) fmt:'$(combo_to_race ${x[0]})' join:"|"
|
=wonroles
|
!lg ${1:-.} $* won s=role x=max(char) fmt:'$(combo_to_class ${x[0]})' join:"|"
|
=wraith
|
.echo phantom&hungry ghost&shadow wraith&wraith&wraith&wraith&wraith&wraith&freezing wraith&freezing wraith&phantasmal warrior&phantasmal warrior
|
?.
|
!learn q $user$(if (= $1 "") "" "["$1"]")
|
@rc
|
.echo http://crawl.develz.org/configs/$(replace git trunk ${2:-trunk})/$(!lm ${1:-.} cdo x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc
|
^rc
|
.echo http://crawl.berotato.org/crawl/rcfiles/crawl-$(replace trunk git ${2:-git})/$(!lm ${1:-.} cbro x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc
|