Join GitHub today
Text-based front-end to Kirok
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Type||Name||Latest commit message||Commit time|
|Failed to load latest commit information.|
bigchair Command line interface to kirok. Object Manipulation Objects have named properties and attributes. Properties are data, attributes denote behavior (implies interface) that can also have data to further define the behavior. e.g., explosive has damage and type (fire, energy, etc.) Object.name - refers to an Object property Object:name - refers to an Object attribute Prefix Shortcuts: . - 'with' context (default root) # - scratchpad context $ - Catalog : - attribute operator % - alias expansion objectref = [.][object. ...]object propref = objectref.name attributeref = objectref:attribute attributedata = attributeref.objectref Commands: Creating Objects mk [from] prototype [as] [bag. ...]name [[bag. ...]name] mk from #.Phaser1 as Enterprise.PrimaryHull.ForwardSection.Phaser1-1 mk from #.Phaser2 as Enterprise.PrimaryHull.ForwardSection.Phaser2-1 mk from #.Phaser2 as Enterprise.PrimaryHull.ForwardSection.Phaser2-2 mk #.Phaser3 Enterprise.PrimaryHull.ForwardSection.Phaser3-1 mk #.Phaser3 Enterprise.PrimaryHull.ForwardSection.Phaser3-2 mk #.Phaser3 Enterprise.PrimaryHull.ForwardSection.Phaser3-3 mk #.Phaser3 Enterprise.PrimaryHull.ForwardSection.Phaser3-4 Create a prototype Object and copy it multiple times mktmp Catalog.Phaser1 #.Phaser1 with #.Phaser1 .facing = ABCDEF .range = 20 : chargable : buildable with Enterprise.PrimaryHull.ForwardSection cp #.phaser1 .phaser1-1 cp #.phaser2 .phaser2-1 .phaser2-2 cp #.phaser3 .phaser3-1 .phaser3-2 .phaser3-3 Set the focus to a particular bag: with Enterprise.PrimaryHull.ForwardSection mk Catalog.Phaser1 as .Phaser1-1 mk Catalog.Phaser2 as .Phaser2-1 .Phaser2-2 mk Catalog.Phaser3 as .Phaser3-1 .Phaser3-2 .Phaser3-3 Linking Objects - Objects with unique names can be referenced directly with Enterprise ln .Battery1-1 .phaser1-1 ln .BAT1-1 .PH1-1 Items can be linked quickly if a route exists between the two: route|rt component1 component2 If a route exists between the two components, then they are linked including any required intermediate components. Component classes can be used: rt Battery Phaser1 - route any available battery to any Phaser1 A route is only created if there are available components to satisfy the route. The forcert command creates the route if at all possible: rt force Battery Phaser1 To see if a route exists: rt trace component1 component2 Example: rt trace Battery Phaser1 1/85 : BAT1-1/50 -> COND3-2/100 -> COND2-1/100 -> COND1-5/74 -> PHA1-3/100 2/85 : +- COND2-2/100 -> COND1-3/100 -> PHA1-1/78 3/96*: BAT2-2/100 -> COND3-3/100 -> COND2-2/100 -> COND1-3/100 -> PHA1-1/78 Remove a component from a connection un .BAT1-1 Deleteing Objects rm Object [Object ..] Attributes: set object:attribute - sets attribute on object unset object:attribute - unsets attribute on object + attribute - sets attribute on 'with' object - attribute - removes attribute from 'with' object can be chained: with Enterprise +movable-destructable set Enterprise+movable-destructable Listing Objects ls # - list what's in the scratchpad ls $ - list what's in the catalog ls - list everything ls : - lists all possible attributes ls object: - lists all attributes on Object object Referencing Objects - If Object is a bag, support dot notation - Object.Object.Object.Object Create alias: alias name=value unalias name alias lhs=Enterprise.PrimaryHull.ForwardSection alias rhs=Enterprise.SecondayHull.EngineeringSection rt %lhs %rhs A system is a collection of components for a collective function. For example, a phaser bank not only requires power, but also a targeting computer and targeting control. mksys is used to create a system from the required list of components, if they are available: mksys template name [component ...] The -force flag may be used to pull resources if not all required components are free: mksys -force Phaser-1 PHA-1 If a specific component(s) is desired it may be specified: mksys Phaser-1 PHA-1 .PHA1-1 .BAT3-2 Systems may disbanded with unsys: unsys PHA-1 ================================================================================= DEVELOPER COMMANDS inflict system_name damage