Commit Graph

1341 Commits

Author SHA1 Message Date
Buhallin
a2fb1058c6
Create a unified panel for groups of player cards.
The will replace the investigator boxes, class card spread tokens, and weakness container.  It will (in the future) replace the bonded and upgrade sheet bags.

This is a code-only submit while we wait on final images for the new panel.
2022-12-17 01:24:19 -08:00
Chr1Z93
7a60c318ca addition of fan made accessorie options 2022-12-17 02:49:34 +01:00
Buhallin
83ff3eb65b
Merge pull request #103 from argonui/remove-chaosbag-shuffle
Chaos Bag: Stop shuffling onLoad()
2022-12-15 20:35:46 -08:00
Buhallin
baaf6f158b
Merge branch 'main' into scenario-event 2022-12-15 20:31:49 -08:00
Chr1Z93
54f825a417 removed chaos bag shuffling onload 2022-12-16 03:27:38 +01:00
Chr1Z
67c9cf2643
Merge pull request #94 from argonui/optionpanel-2
Optionpanel: Part 2
2022-12-16 03:20:01 +01:00
Buhallin
45a5870121
Stop event from firing multiple times for the same scenario
A card can collide with the area more than once; many of the campaign memory bags caused a double collision on placement, and it would happen if the user picked up or flipped the card.

This would cause any behavior that triggered from the event to each time, so suppress further events which don't actually change the scenario.
2022-12-15 13:08:32 -08:00
Buhallin
7339646ae7
Clean up previous commit 2022-12-15 00:34:01 -08:00
Buhallin
bf8f9bd12b
Add an event generator for scenario name changes
Based in the newly-named Mythos Area, when a Scenario card lands the name will be extracted and sent to interested objects.

Playarea will use this for special location handling, and there will be other cases in the future.
2022-12-15 00:29:56 -08:00
Buhallin
0e3a66bfaa
Merge branch 'main' into tour 2022-12-14 23:19:56 -08:00
Buhallin
bdadfdcc9f
Fix visibility handling for Tour cards
Panel visibility isn't inhered by the children, so each element in the panel has to have the visibility set directly.
2022-12-14 23:18:58 -08:00
Chr1Z93
bbd9151227 moving clue handling to playermatapi 2022-12-15 02:26:38 +01:00
Chr1Z93
d47bc0845a resolving comments 2022-12-15 00:18:10 +01:00
Chr1Z
f1bdf1f7a0
Merge pull request #98 from argonui/loader-refactor
Major refactoring of ArkhamDB deck importer
2022-12-14 12:02:15 +01:00
Chr1Z
31a471d648
Merge pull request #96 from argonui/tour
SCED Intro Tour, Part 2
2022-12-14 12:02:06 +01:00
Buhallin
da9c32b95c
Major refactoring of ArkhamDB deck importer
- Splits all ArkhamDB interactions to a module
- Removes undeveloped code for Command Manager
- Removes bespoke logging in favor of standard SCED approach
- Removes mass load test functions
- Function documentation cleanup
2022-12-14 00:54:26 -08:00
Chr1Z93
c9afcdb5cc Merge branch 'main' into optionpanel-2 2022-12-13 20:14:36 +01:00
Chr1Z
608ff4ec4f
Merge pull request #97 from argonui/playarea-api
Add PlayArea API
2022-12-13 20:03:36 +01:00
Chr1Z
2c7a05db80
Merge pull request #93 from argonui/optionpanel
Optionpanel: Part 1
2022-12-13 20:01:26 +01:00
Buhallin
c8cec71109
Handle review comments 2022-12-13 02:15:16 -08:00
Buhallin
db65f3c8e3
Add PlayArea API
Creates an API object for the PlayArea, and moves most references to the PlayArea to use the API instead.

Image swapper is excluded on this, as I'm not completely sure how TTS will handle having an object rebuild itself.
2022-12-12 18:56:04 -08:00
Buhallin
1c3260edf3
SCED Intro Tour, Part 2
This updates the Tour to work for each player independently.  There is still some refinement to be done, but the basic implementation is there.
2022-12-12 14:52:04 -08:00
Buhallin
586ba5bef9
Merge branch 'main' into tour 2022-12-12 14:45:39 -08:00
Chr1Z93
c908719245 gave variables better names 2022-12-12 22:42:12 +01:00
Chr1Z93
62ae162179 future-proofed with data for 11 uses 2022-12-12 21:00:59 +01:00
Chr1Z93
2e99d57e46 Merge branch 'main' into optionpanel-2 2022-12-12 13:25:43 +01:00
Chr1Z93
5ab71c56c0 Merge branch 'optionpanel' into optionpanel-2 2022-12-12 13:25:34 +01:00
Chr1Z93
4086365b38 data for 10 tokens (akachi + brand lvl 4) 2022-12-12 12:23:36 +01:00
Chr1Z93
24e8f3d8a6 resolving review comments 2022-12-12 12:18:45 +01:00
Buhallin
9d8beeaedc
Merge pull request #89 from argonui/tour
SCED Intro Tour, Part 1
2022-12-12 01:42:18 -08:00
Chr1Z
6d11bf56fb
Merge pull request #81 from argonui/doom-and-clue-counters
Doom Counter Option UI // Clue Counter clean up
2022-12-12 10:17:10 +01:00
Chr1Z93
5325f511db Merge branch 'main' into optionpanel-2 2022-12-12 10:02:05 +01:00
Chr1Z
2f83df87d8
removed empty line 2022-12-12 09:55:20 +01:00
Chr1Z
ef7502fbe8
resolving merge conflict 2022-12-12 09:54:02 +01:00
Chr1Z
c4552b4021
Merge branch 'main' into optionpanel 2022-12-12 09:51:15 +01:00
Chr1Z93
a312ede891 repairing save function, XML animation added 2022-12-12 09:38:29 +01:00
Buhallin
054e2cb721
Merge pull request #90 from argonui/chaos-lock
Block chaos bag changes while the bag is being searched
2022-12-11 13:56:54 -08:00
Buhallin
1bf7e6de57
Merge pull request #92 from argonui/playermat-tags
Dynamic playmat snap point tagging
2022-12-11 13:56:37 -08:00
Buhallin
4e500a8cc5
Remove GUID comparison in favor of direct object comparison 2022-12-11 13:37:40 -08:00
Buhallin
63b781075c
Merge branch 'main' into require-refactor 2022-12-11 00:10:45 -08:00
Buhallin
cb9c4d2d44
Block chaos bag changes while the bag is being searched
A TTS bug can cause tokens to be lost or possibly duplicated if they are added to a container while that container is being searched.  This uses event listeners to block bag changes while it is being searched.

Steps to reproduce:
1. Search the bag
2. Add a token to the bag (bless/curse is easiest)
3. Remove a token from the bag using the search window
4. Close the search

The token supposedly added in #2 will be gone.
2022-12-11 00:06:21 -08:00
Buhallin
485c961660
Update a few comments 2022-12-10 23:29:09 -08:00
Buhallin
5d1c7b9c17
Add multiplayer handling to TourManager
Each player will now be tracked independently, and can watch their own tour.
2022-12-10 18:08:24 -08:00
Buhallin
a1684b30f0
SCED Intro Tour, Part 1
Creates the basic framework for the SCED introduction/training tour.  As this will be a large feature, this is intended to checkpoint
progress and work.

What's here:
- Basic tour script definition
- Script UI creation, camera handling, and flow

What's not here:
- Multiplayer support.  Everything is currently locked to white.
- Final UI.  Most UI is placeholder and will be updated later.
- Extra script capability such as higlighting objects, explicit positioning, etc.
2022-12-10 17:06:27 -08:00
BootleggerFinn
a43b295833
Merge pull request #58 from argonui/datahelper-tsk
TSK: clue data
2022-12-08 12:54:11 -08:00
Chr1Z93
cb0a3d4256 removing orphaned file 2022-12-08 14:39:49 +01:00
Chr1Z93
251bf93dd4 implementing clue counting method swap 2022-12-08 14:27:55 +01:00
Chr1Z93
f69f426248 Merge branch 'doom-and-clue-counters' of https://github.com/argonui/SCED into optionpanel-2 2022-12-08 12:55:26 +01:00
Chr1Z93
19e538fbd9 WIP clue counting method swapping 2022-12-08 12:46:22 +01:00
Chr1Z93
d53302c9e0 WIP commit to split PR into parts 2022-12-08 12:01:10 +01:00
Chr1Z93
d4beeeb95d UI done for now 2022-12-07 16:40:55 +01:00
Chr1Z
477074cc20
Merge pull request #83 from argonui/servitor-bugfix
DeckImporter: Summoned Servitor (Dominance) - BUGFIX
2022-12-06 22:42:33 +01:00
Chr1Z93
d4a41b7b02 option for playermat snap tags added 2022-12-06 21:26:08 +01:00
Buhallin
5231609f44 Add some cleanup for playmat snap type setting, as well as a get() method to return the current state 2022-12-06 21:00:56 +01:00
Buhallin
bd89174377 Expanded documentation and remove old log messages 2022-12-06 21:00:45 +01:00
Buhallin
43315aefcc Add method to enable or disable card type snap point tagging on a playmat
This uses the new object API concept to provide a layer of indirection between
an object and others which might call() to methods on it.  Example usage:

local playmatApi = require("playermat/PlaymatApi")
playmatApi.setLimitSnapsByType(tag, "All")
2022-12-06 21:00:23 +01:00
Chr1Z93
ce8e6815a5 xml cleanup 2022-12-06 20:57:33 +01:00
Chr1Z93
12a71894d8 moved xml to dedicated folder, save function added 2022-12-06 20:10:09 +01:00
Chr1Z93
5b0cdf942d resolve merge conflict (again!!) 2022-12-06 11:34:49 +01:00
Chr1Z93
c84e8a2101 resolve merge conflict (again) 2022-12-06 11:34:00 +01:00
Chr1Z93
cd83347c72 resolve merge conflict 2022-12-06 11:32:57 +01:00
Chr1Z93
33a33ebbe1 Revert "use require, optimize"
This reverts commit 97b3dd4ce5.
2022-12-06 11:16:00 +01:00
Chr1Z93
b03aee593d bugfix for 'dominance' 2022-12-06 11:09:47 +01:00
Buhallin
1af38ee3ae
Handle connections for double-sided and locked locations 2022-12-04 23:54:34 -08:00
Buhallin
666d9f073b
Add some cleanup for playmat snap type setting, as well as a get() method to return the current state 2022-12-04 14:49:34 -08:00
Buhallin
6ed61c9174
Expanded documentation and remove old log messages 2022-12-04 01:29:02 -08:00
Buhallin
8478003860
Add method to enable or disable card type snap point tagging on a playmat
This uses the new object API concept to provide a layer of indirection between
an object and others which might call() to methods on it.  Example usage:

local playmatApi = require("playermat/PlaymatApi")
playmatApi.setLimitSnapsByType(tag, "All")
2022-12-04 01:21:53 -08:00
Buhallin
5d1e23a91b
Finalize location connections
Includes some bugfixes and further optimizations
2022-12-02 17:42:19 -08:00
Buhallin
c05238cbce
Automatic location connections, Phase 1 2022-12-02 11:45:59 -08:00
Chr1Z93
5a71eda9a7 initial commit optionpanel (WORK IN PROGRESS) 2022-12-02 01:17:19 +01:00
Chr1Z93
1edf2c084e added tooltip for mastercluecounter 2022-12-01 14:47:54 +01:00
Chr1Z93
c9c6d2b122 please dont hate me 2022-12-01 14:39:22 +01:00
Chr1Z93
2bbcab33fa removed autoformatting 2022-11-29 22:25:15 +01:00
Chr1Z93
c9ce7df533 addition of final scenario 2022-11-29 17:54:24 +01:00
Buhallin
12f7ed0e3e
Merge pull request #76 from argonui/diana
Add startsInHand handling for the deck loader
2022-11-28 10:35:58 -08:00
Chr1Z93
a31a55c046 fixing formatting 2022-11-28 01:43:40 +01:00
Chr1Z93
a4fbca90b2 adding data for more scenarios 2022-11-28 01:26:09 +01:00
Chr1Z93
b168af0cdb added a "hidden" location 2022-11-25 00:48:32 +01:00
Buhallin
695ad9fd14
Add handling for cards to start in a player's hand
Currently for Diana's Dark Insight, this add generalized handling to move a card to the player's hand on deck creation.
2022-11-24 14:25:15 -08:00
Buhallin
34ddd85675
Move investigator counter object to on-demand retrieval 2022-11-24 13:38:29 -08:00
Buhallin
d4a29c3229
Minor formatting fix 2022-11-24 12:04:04 -08:00
Buhallin
0df51128e0
Handle On the Mend when loading from ArkhamDB
Vincent Lee gets one copy of On the Mend per investigator, and they should start set aside.
2022-11-24 11:58:57 -08:00
Buhallin
b2819c7953
Fix typo in method doc 2022-11-24 11:01:03 -08:00
Chr1Z93
97b3dd4ce5 use require, optimize 2022-11-24 16:44:04 +01:00
Buhallin
2ec1bae42a
Fix multiple bugs with uses
- Saved old cards have a different structure for uses (single vs. array) making the change breaking.  Code was assuming an array, breaking any loaded objects with the old structure
- Uses spawn loop was setting the values only, resulting in only the last item being spawned
- Upkeep checks were embedded incorrectly, leading to logic errors in certain circumstances
- If uses had multiple entries, tokens were spawning on top of each other and exploding, probably due to the yPos shift in playmats.  Added an offset to spawn the groups in different places to avoid this, which is prettier anyway
2022-11-24 00:00:25 -08:00
Chr1Z93
a1d10432d2 correction of typo 2022-11-23 22:37:28 +01:00
Buhallin
4e054b2c22
Clean up testing log statements 2022-11-22 14:49:21 -08:00
Buhallin
2da0899b37
Refactor SpawnBag to be required as a module
This enables data hiding and improves modularity
2022-11-22 14:48:46 -08:00
Buhallin
70b2cf420b
Refactor Zones to be used as an included module
This enables data hiding and enforces a functional interface.
2022-11-22 14:44:46 -08:00
Chr1Z93
9f9410a3aa Merge branch 'main' of https://github.com/argonui/SCED into datahelper-tsk 2022-11-21 21:42:13 +01:00
Chr1Z93
5ee6a9e196 clue data for five scenarios 2022-11-21 21:40:37 +01:00
Chr1Z93
c54afed3ff resolving comments 2022-11-19 01:56:50 +01:00
Chr1Z93
270c731246 raising tokens, combining sourcescript 2022-11-19 00:33:21 +01:00
Chr1Z
86c8bac295
Merge pull request #54 from argonui/living-ink-circles
Add skill selection capability to Living Ink
2022-11-18 19:22:04 +01:00
Buhallin
d2b498a3ba
Fix bug with deck loader since trait removal
Since traits are now an optional field in the metadata, add nil checks when using them
2022-11-17 18:51:31 -08:00
Buhallin
b5ff337266
Add skill selection capability to Living Ink
Skill icons can now be clicked on the sheet to circle them
2022-11-17 18:26:30 -08:00
Buhallin
90278297db
Merge pull request #50 from argonui/loader-cust-refactor
Refactor upgrade sheet handling in the deck loader
2022-11-17 01:55:18 -08:00
Buhallin
6abaaa7e00
Move Minicard spawn zone so they're not on top of the new stat trackers 2022-11-17 01:48:59 -08:00
Buhallin
d830314598
Merge pull request #48 from argonui/spawn_bag
Create SpawnBag to replace card memory bags
2022-11-17 01:44:01 -08:00
Buhallin
7c9d728820
Handle review comments, and add some documentation that got lost 2022-11-17 01:39:49 -08:00
Buhallin
c04c7df9f1
Handle review comments 2022-11-17 01:27:59 -08:00
Buhallin
d19d35a310
Refactor upgrade sheet handling in the deck loader
- Split upgrade sheets to follow the slots/data pattern
- Factor out methods to set selections on upgrade sheets
- Factor out method to add Summoned Servitor minicard
- Add type 'UpgradeSheet' to appropriate cards
- Remove handleStartsInPlay() method and detect it as a default zone
2022-11-17 01:03:58 -08:00
Buhallin
2eba59d971
Create SpawnBag to replace card memory bags
This adds a new SpawnBag capability which will replace the various small memory bags around the table.

Initial implementation is for the Bonded container, which is no longer a bag.
2022-11-16 17:49:31 -08:00
Chr1Z
90ed79ee96
Merge pull request #21 from argonui/playermats
updated playermats and added InvestigatorSkillTracker
2022-11-17 00:22:46 +01:00
Chr1Z93
752d9a8b43 clean up of skill tracker 2022-11-16 19:08:19 +01:00
Chr1Z93
9f1415901e adding requested changes 2022-11-16 18:58:59 +01:00
Buhallin
990871646e
Merge pull request #38 from argonui/fortuneandfolly_fix
adding missing information for FaF
2022-11-15 16:25:54 -08:00
Chr1Z93
e35dfd5c48 using require for the official standalones 2022-11-16 00:23:27 +01:00
Chr1Z93
4d976d69a6 reverted autoformatting 2022-11-15 23:51:32 +01:00
Chr1Z93
6df443e56d adding missing information for FaF 2022-11-15 23:46:35 +01:00
Chr1Z
c88c185950
Merge pull request #25 from argonui/globalscript
updated global script
2022-11-15 12:15:53 +01:00
Chr1Z93
68d49aca98 added documentation for difficulty selector code 2022-11-15 11:57:28 +01:00
Chr1Z93
1b2f70b59b resolving requested changes 2022-11-14 11:03:06 +01:00
Buhallin
fa4d1f428d
Finish some missed cleanup and fix a bug with deck size 2022-11-14 02:02:18 -08:00
Buhallin
a516175177
Remove investigator card rotation handling from deck loader, since the spawner handles it now 2022-11-13 23:56:29 -08:00
Buhallin
258e8aec79
Rotate investigator cards 90 degrees when spawning, so they match the orientation of other cards 2022-11-13 23:51:52 -08:00
Buhallin
98469664a2
Update Search a Card to use the new CardSpawner module
This required enhancing the CardSpawner to handle mixed card sizes (investigator, standard, mini).
2022-11-13 23:42:44 -08:00
Chr1Z
fafaa874f5
Merge pull request #20 from argonui/playarea
updated playarea
2022-11-14 00:30:04 +01:00
Chr1Z93
510588c74c fixing onLoad bug 2022-11-14 00:29:18 +01:00
Chr1Z
a751259b28
Merge pull request #26 from argonui/blursemanager
updated bless/curse manager
2022-11-13 23:46:37 +01:00
Chr1Z
a6396eabb3
Merge pull request #23 from argonui/search-a-card
updated Search-A-Card
2022-11-13 23:43:23 +01:00
Chr1Z93
92522dcd63 better integration of Token Arranger 2022-11-13 12:11:21 +01:00
Buhallin
7b5467e5dc
Merge pull request #18 from argonui/extract-card-spawn
Extract card spawning methods from the loader
2022-11-12 16:43:58 -08:00
Buhallin
dea999e0a6
Add comment to spawn method for argument clarity 2022-11-12 16:43:07 -08:00
Chr1Z93
7f9d70aa56 implementation of requested changes 2022-11-13 01:12:01 +01:00
Chr1Z93
6cc7efb9a4 use require() 2022-11-13 00:43:32 +01:00
Chr1Z
35633f8de2
Merge pull request #17 from argonui/chr1z-1
updated doom counters
2022-11-12 21:04:26 +01:00
Chr1Z93
61e8e0d2e0 renaming tracker to "Investigator Skill Tracker" 2022-11-12 15:50:28 +01:00
Chr1Z93
9d508882ee global script update 2022-11-12 14:42:06 +01:00
Chr1Z93
d5c2749a1f updated Search-A-Card 2022-11-12 14:24:02 +01:00
Chr1Z93
6b7eba56a5 changes from code review 2022-11-12 13:51:43 +01:00
Chr1Z93
c8462f664d updated playermats and stattracker 2022-11-12 12:43:35 +01:00
Chr1Z93
d0fdaefe42 updated playarea 2022-11-12 11:46:05 +01:00
Chr1Z93
b9fe8a21c9 updated playmat image swapper 2022-11-12 11:41:37 +01:00
Buhallin
959a11e3d7
Update comment on changed method 2022-11-12 02:37:36 -08:00
Buhallin
d23aa2c2e4
Extract card spawning methods from the loader
This refactors the current ArkhamDB loader by moving the card spawning operations to a standalone file which can be included in other objects.

Card list build methods are appropriately updated as well.
2022-11-12 02:31:12 -08:00
Chr1Z93
d22c4d5806 updated doom counters 2022-11-12 11:27:59 +01:00
Buhallin
495f3a1d8a [Cleanup] Move Zones to a basic require structure
I was trying to use a scoped require, which the tooling didn't like and 
TTS doesn't respect anyway.  Removed the extra structure and changed the 
require() to a simple one.
2022-11-04 11:55:42 -07:00
Kevin
3072723d9e [Cleanup] Move default zone selection to DeckImporterMain
The current way of tracking bonded cards to spawn them in the right zone 
didn't play well with the default zone method being in Zones.  Since 
it's really a deck loader-only functionality anyway, moved it to the 
loader.
2022-10-26 13:07:30 -07:00
Kevin
3d216f1dab Update source repository to SCED v2.3.1 2022-10-25 00:36:45 -07:00
Kevin
83f75c2318 Initial code extraction and commit
Initialize the SCED repository by moving most scripts from TTS objects 
to separate files which are included via require().
2021-10-06 20:37:31 -07:00