Headshot!
Jump to navigation
Jump to search
Headshot! is a language being developed by User:CrazySqueak. It was designed with the goal of looking like a log of actions taken in a shooter game.
Basics
Memory is represented by targets. These targets can store integer values (up to 2147483647), represented by the amount of bullets in them. Guns are used to modify the value of targets by shooting at them, but have to be reloaded. Every action takes time. Commands are input in the usual line-based system languages like Python use, and each command is separated by a newline.
Commands
Command | Description |
---|---|
inventory | Starts an inventory block. The inventory block is used to define what guns are available at the start, without taking time. Any commands other than has a and end inside an inventory block will be ignored. |
has a <gun name>, <gun speed>, clip size <clip size> of <bullet type> | Only able to be used in an inventory block. Defines a gun that is currently available. gun speed may be any of slow, steady, and fast. Any other speed makes the gun impossible to fire. Clip size defines how many bullets can fit in, and bullet type is the name of the bullet type used in the gun (i.e. LONG, or PELLET). The bullet type can be anything, and has no effect other than when retrieving bullets. |
end | Ends the inventory block. |
sees <target name> | Allocates a new target called target name. They will start with 0 bullets in them. Takes 0.1 seconds. |
grabs a <gun name>, <gun speed>, clip size <clip size> of <bullet type> | Adds a new gun. gun speed may be any of slow, steady, and fast. Any other speed makes the gun impossible to fire. Clip size defines how many bullets can fit in, and bullet type is the name of the bullet type used in the gun (i.e. LONG, or PELLET). The bullet type can be anything, and has no effect other than when retrieving bullets. Takes 1 second to execute. |
aims at <target> | Aim at an existing target, meaning any shots fired will hit them. Takes 1 second. |
pulls out <gun> | Switch to a gun in possession. Any shots fired will be using this gun. Takes 0.5 seconds. |
BANG! | Shoot at the target if you are holding a slow gun. Fires 1 bullet, and takes 1 second. |
Rat-tat-tat-tat | You may use as many -tats as you like. Each tat fires 1 bullet, and takes 0.25 seconds. Only usable with steady guns. |
Ratatatatatatata | Like Rat-tat above, but for fast guns. Each ta fires 3 bullets. Takes 0.05 seconds per bullet. |
reload | Reloads a gun back to full ammo. Takes 1.5 seconds. |
kills <target> | Kills a target, clearing their value from memory, and making them unusable. Before they die, prints the character at the unicode code-point corresponding to their value. Takes 0.2 seconds. |
waits for <target> | Takes input from the user and stores the codepoint of the first letter in target. Should only be used if target doesn't already exist. |
drop <gun> | Drops gun, removing it from existence. Takes 0.25 seconds |
retrieve <target> | Retrieves bullets that were shot into target, as long as they are the same type as the bullets the gun currently held fires. Lowers the target's value by 1, and increases the currently held gun's ammo by 1. Takes 0.5 seconds. |
label <name> | Sets the line as a label that may be gone to in the program using the "goto" command. Label commands are run before any other commands, meaning you can use a goto before a label. |
goto <label> | Goes to the line set as the label passed. |
cgoto <opt 1> is <operator> compared to <opt 2> then goto <label> | If the conditional opt 1 operator opt 2 is True, goto the line labelled as label. Opt 1/Opt 2 may be a number, or a target. If they are a target, the amount of bullets in them is used. |
The current iteration/conditional commands are planned to be replaced with less useful ones.
Examples
Hello World
inventory has an ASSAULT RIFLE, steady, clip size 15 of REGULAR has a MACHINE GUN, fast, clip size 100 of PELLET end sees MR H sees MR E sees MR L sees MISS L sees MR O sees MR SPACE sees MR W sees MISS O sees MR R sees DR L sees MR D sees MR EXCLAMATION aims at MR H pulls out MACHINE GUN Ratatatatatatatatatatatatatatatatatatatatatatatata reload aims at MR E pulls out ASSAULT RIFLE Rat-tat-tat reload pulls out MACHINE GUN Ratatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatata reload aims at MR L pulls out ASSAULT RIFLE Rat-tat-tat-tat-tat-tat-tat-tat-tat-tat reload pulls out MACHINE GUN Ratatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatata reload aims at MISS L pulls out ASSAULT RIFLE Rat-tat-tat-tat-tat-tat-tat-tat-tat-tat reload pulls out MACHINE GUN Ratatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatata reload aims at MR O pulls out ASSAULT RIFLE Rat-tat-tat-tat-tat-tat-tat-tat-tat-tat-tat-tat-tat reload pulls out MACHINE GUN Ratatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatata reload aims at MR SPACE pulls out MACHINE GUN Ratatatatatatatatatata reload pulls out ASSAULT RIFLE Rat-tat-tat aims at MR W pulls out MACHINE GUN Ratatatatatatatatatatatatatatatatatatatatatatatatatatatatata reload aims at MISS O pulls out ASSAULT RIFLE Rat-tat-tat-tat-tat-tat-tat-tat-tat-tat-tat-tat-tat reload pulls out MACHINE GUN Ratatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatata reload aims at MR R pulls out ASSAULT RIFLE Rat-tat-tat-tat-tat-tat-tat-tat-tat-tat-tat-tat-tat-tat-tat-tat reload pulls out MACHINE GUN Ratatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatata reload aims at DR L pulls out ASSAULT RIFLE Rat-tat-tat-tat-tat-tat-tat-tat-tat-tat reload pulls out MACHINE GUN Ratatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatata reload aims at MR D pulls out ASSAULT RIFLE Rat-tat reload pulls out MACHINE GUN Ratatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatata reload aims at MR EXCLAMATION pulls out MACHINE GUN Ratatatatatatatatatata reload pulls out ASSAULT RIFLE Rat-tat-tat-tat kills MR H kills MR E kills MR L kills MISS L kills MR O kills MR SPACE kills MR W kills MISS O kills MR R kills DR L kills MR D kills MR EXCLAMATION
Truth Machine
inventory has a BASTION, fast, clip size 300 of PELLET has an ASHE, steady, clip size 12 of REGULAR end waits for ALI-A cgoto ALI-A is != compared to 48 then goto OUT1 goto OUT0 label OUT1 sees OUTPUT aims at OUTPUT pulls out BASTION Ratatatatatatatatatatatatatatatata reload pulls out ASHE Rat-tat reload kills OUTPUT goto OUT1 label OUT0 kills ALI-A
External Resources
The official interpreter isn't publicly released yet.