ShipProxy.ttslua
shows as "unused" inGlobal.ttslua
, but in reality it definesMarkShip()
andUnMarkShip()
in Global namespace.TTS_lib/Vector
: Many of theseVector
functions are now TTS standard and could be replaced.- Add either a
Math
orVector
distance()
function AOE_SensorBuoy
has anonLoad()
but noonSave()
. It also uses the wrong name in theonLoad()
- Delete:
TTS_lib/Util/Util.ttslua
- Add a
nearest ship
utility function for dropping/assigning tokens - Finish other AI-modes.
- Flee AI - on Flee token drop, once health drops
- Create HyperDrive Token for jumping to Hyperspace
- Escape AI - targets a region of the board to leave from
- possibly scale an objective token or something to represent the region
- Escort AI - like Attack AI, but when in Range-1 of its 'Escort' Ship performs a Protect action (assigns it an Evade token)
- Strike AI Target Token (perhaps something like a bullseye/target image)
- Add the Barrel Roll to AI Swerve mechanics. If after movement, the ship is within Range-1 in Bullseye arc it should barrel roll to avoid hitting next turn.
- Add the AI avoid the edge at any cost mechanic.
- Initiative moving all AI Ships with 1-button.
- Flee AI - on Flee token drop, once health drops
- Random Obstacle Setup
Reference:
https://api.tabletopsimulator.com/events/#object-event-handlers
onObjectNumberTyped
https://api.tabletopsimulator.com/events/#onobjectnumbertyped - Make
DataPad
buttons and actions pluggable/extensible by other mods.- Possibly to help with mission setup or external Mods
- Perhaps have the mission spawn "data disks" for each later turn with squad's approach vector, which can spawn the ships on that approach vector.
- Double check these Global.call() functions
- 'DeleteShipProxies'
- 'DialAPI_AssignSet'
- 'DialDropped'
- 'DialPickedUp'
- Review my old repo directories for refactoring attempts. Delete em or try again.
- Consider a
PrototypesBag
for storing objects to contain scripts for use when spawning objects. - Learn the XML UI:
- rotate the Imperial Deck Holder in HotAC mode
- externalize all the XML files to the repo, use
<include>
to bring em into the game.
- Re-fix the StarForge's Layout issue. Remove the layout value.
- Remove all the extra turrets and see what breaks.
- Try using an external unit testing framework, the IDE and
require
to attempt to run tests within TTS. - See whether separating domain logic from TTS UI logic is useful. May be further validated by the XML UI.
- Create videos for X-Wing Standard/HotAC/TTS Development
- Turn-Phase Observer Event Model. For Planning through End phase.
- Things like Tracking Torpedo which move during the System Phase.
- Explode during the Engagement Phase, and
- Target Lock during the End phase
- Object might be registered for the Events then be polled to get input (or skip).
- The
showMe()
function might be useful for finding each object which needs to act.
- Things like Tracking Torpedo which move during the System Phase.
- Perhaps a Game console to help run HotAC and which can delineate the phase each turn.
- Tags system for interaction:
- 'Targetable' = shows up in Range checks
- 'Ship' = implicitly has targetable, range finding, arc checking, moveable, etc.
- 'Remote' = obeys rules for Remotes
- 'AttackAI' = obeys Attack AI for movement and activation
- 'StrikeAI' = etc
- Use PMD to find and refactor duplicate Lua code
- This will require renaming all
.ttslua
files to.lua
- Verify that
git
sees it as arename
to preserve history.
- This will require renaming all
- Add damage tokens to HotAC mode.
- Remove the base on the Star Forge.
- Finish externalizing the scripts for the following objects: DataPad
- Put "Probe" [Reversi Token] into Extra Asset Bag for dispensing from the Star Forge.
- Give the Remotes better drop direction icons and movement icons (borrow from Dial)
- Migrate the Initiative Token to a single object with a key press script and the initiative displayed with XML UI. (Notes from Flipster)
- Store the current initiative value as a variable.
- Set its name (setName) and the ui
self.UI.getAttribute("InitiativeLabel", "text")
. - Then on the keystroke event implementation, overwrite the current initiative and call the setInitiative function which resets the name and UI attribute.
- Generalize 'disappear on flip' and 'assign on drop' to Global event handlers and tag all objects which should get that behavior
- 'remove on flip' - tag all tokens you want to be removed when flipped
- 'assign on drop' - use the 'closest ship' logic to assign the token a ship
- Aid to migrate HotAC-type games. Perhaps a Memory Bag type "Rebel Transport" (or "Bulk Freighter") to collect all player artifacts and transport them to a new release of the Unified Mod.
- Create a baseline of all default in-game objects - these don't have to be moved.
- Save player's objects and store in Transport Memory Bag.
- Save transport as an external object
- Load new version of the Unified Mod
- Redeploy transported game objects
- TargetLocks have an owner and an assigned ship. Perhaps we can handle these behaviors with tags?
- Create a HotAC & FGA Ship Builder based on Pilot level and available XP
- Would be cool to have the buttons be the images of the upgrade icons
- If I was looking for making a Hotac builder.
- I would start from scratch mostly. Building it with XML gui.
- Taking inspiration from parts of the DataPad.
- It could be the first step to rewriting that thing.
- The one advantage of the old ways is that its dynamic. And you can add another button whenever you need it.
- In the xml gui all elements must be defined initially. But you can turn elements on and off.
- But, this also forces you to reuse elements, and you need to think slightly different.
- The gui could be moved away from the Control and Builder logic.
- Building gui controllers, that accept generic content (list of ships + lambda functions).
- And Control functions that alter these controllers.
- When something is selected it modifies some data. And calls another control (view) function.
- Something like this.
- The gui controllers can this way be maintained for all needs. And the builder logic is maintained somewhere else.
- And the builder does some very similar things over and over. It wouldn’t need that many controllers.
- TrackingTorpedo.ttslua: 93: spawnedRuler.lock()
- 'No Stats Dice' has a lua script in it's .xml file
- Verify AI Swerve for obstacles. Give chat messages to let players
know what was considered so they know it's working when it runs over
an obstacle.
- Check if board edge detection and avoidance works.
- Add barrel roll if obstacle is withing Range-1 and in Bullseye Arc.
- Attachable Turrets don't attach.
- Check AI control of Medium or Large base ships.
- Does the game support ground assault and movement of the AT-AT.