Compare commits

...
850 Commits
Author SHA1 Message Date
Ross 56786e7a07 rename debug terminal to console 2025-08-19 13:49:04 +01:00
justin e7b66b4fa4 Continue work on terminals 2025-08-18 20:38:01 +01:00
justin 1c9d58c716 Reinstate damagecode terminal commands 2025-08-18 14:39:30 +01:00
justin 33b90d637a Tweak terminal tab completion 2025-08-17 09:46:41 +01:00
justin 24027367dc Implement "tab" button in terminal 2025-08-17 00:12:05 +01:00
justin 76b6cda19b Move towards implementing terminal autocomplete 2025-08-16 23:13:24 +01:00
justin f7759b1f31 Add external Trie library before using Tries for terminal commands 2025-08-16 01:58:21 +01:00
justin 73cdf42e4a Simplify terminals, move towards using tries for commands 2025-08-16 01:11:29 +01:00
justin e04d4fea31 Remove terminal line code 2025-08-15 12:01:17 +01:00
justin 09bd5f1029 Add file 2025-08-15 11:56:24 +01:00
justin 56f4670493 Move towards simplifying terminal lines/effects 2025-08-15 11:55:56 +01:00
justin 91d19e7c42 Partial rethink of terminal text input 2025-08-14 21:48:02 +01:00
justin 5b720cb82c Simplify terminal boot program 2025-08-14 19:46:07 +01:00
justin 198b7acc78 Start work simplifying terminals, aim towards respawn terminals 2025-08-14 19:26:52 +01:00
justin 04c60151e1 Constinue work on respawn 2025-08-14 19:22:26 +01:00
justin dd1f3b2ef5 Start to add respawn points, re-fix semi-auto triggers 2025-08-11 00:00:32 +01:00
justin 38e8f91346 Remove Machine Pistol update when fail firing 2025-08-10 19:17:38 +01:00
justin 71c269667d Cleanup item muzzle loading/usage
Have introduced quite a few unsafe functions
2025-08-10 09:05:23 +01:00
justin aa412f1911 Allow for no-ammo muzzles 2025-08-10 08:09:03 +01:00
justin 9d973b2570 Cleanup 2025-08-09 10:09:20 +01:00
justin 7f9d837bf0 Add quaternions to body positions 2025-08-09 10:07:55 +01:00
justin 1063a2314d Start simplifying creature body parts/attachment positioning 2025-08-09 09:47:05 +01:00
justin 9fb7440776 Tweak creature update 2025-08-06 13:10:37 +01:00
justin af5bdf59b9 Pitted creatures lose all items 2025-08-05 21:47:32 +01:00
justin f69956750a Work on what happens when creatures fall down chasms 2025-08-05 21:39:44 +01:00
justin df443744db Use stencil test to not draw floors where there are chasms 2025-08-05 19:57:49 +01:00
justin 83124703c5 Tweak explosion flamelets 2025-08-05 09:38:04 +01:00
justin d64e785818 Tweak cloud zvel 2025-08-05 09:23:45 +01:00
justin b433c1de43 Simplify projectile wall bounce 2025-08-05 09:15:10 +01:00
justin 298238d594 Simplify flamelet balls 2025-08-05 08:47:47 +01:00
justin 22dafda9bd Add z levels to shockwaves 2025-08-05 08:30:57 +01:00
justin 09428f2707 Add z level to energy balls 2025-08-04 22:49:36 +01:00
justin bde0fa2a5c Cleanup, move towards explosions at different z positions 2025-08-04 22:13:45 +01:00
justin 7714e2e298 Make projectile use 3d position/velocity records 2025-08-04 12:15:42 +01:00
justin 80d6133fd6 Continue work on projectiles 2025-08-04 11:54:07 +01:00
justin a68013b934 Partially implement grenades down chasms 2025-08-04 09:39:04 +01:00
justin 2a93b7f733 Start implementing wider grenade movement 2025-08-03 23:23:55 +01:00
justin ea2e67c9ab Remove list of projectile updates 2025-08-03 14:05:34 +01:00
justin c3b2bb30f5 Start simplifying projectile update 2025-08-03 13:46:20 +01:00
justin 5f158cc87a Cleanup 2025-08-02 22:53:39 +01:00
justin ae24720762 Allow chunk debris to fall down chasms 2025-08-02 22:49:10 +01:00
justin 5722ca8204 Work on bouncing debris 2025-08-02 22:14:25 +01:00
justin eeb7c8ac88 Work on gibs and chasms 2025-08-01 09:39:13 +01:00
justin 7110ddb7a6 Add sound queue when on chasm edge 2025-07-30 14:01:56 +01:00
justin d1346b855f Cleanup 2025-07-30 09:25:29 +01:00
justin 18770480e7 Cleanup 2025-07-30 09:20:41 +01:00
justin 210171fbc9 Move toward implementing chasms 2025-07-30 00:01:07 +01:00
justin fa377171a4 Reinstate HammerTrigger (no weapons use it currently) 2025-07-29 10:47:09 +01:00
justin 3ced7e4034 Change hammer trigger behaviour to make it easier to repeat fire 2025-07-29 10:19:57 +01:00
justin 15077be769 Cleanup 2025-07-29 10:10:25 +01:00
justin 81f88c32e9 Unify key press and mouse button press timings
Both now use Ints for presses.
Still no release timer for keyboard events.
2025-07-28 23:16:05 +01:00
justin ea35753744 Fix various attachment issues involving pulse laser 2025-07-28 18:30:02 +01:00
justin fc9596e0a1 Add sounds 2025-07-27 17:22:08 +01:00
justin 82678a6afe Allow multiple pulseBalls to be destroyed by one pulse laser shot 2025-07-27 17:21:37 +01:00
justin f1fb0ee768 Implement pulse rifle with explodable pulse balls 2025-07-27 11:10:30 +01:00
justin 68a4bc7aab Partially refactor ammo extraction, work on pulse rifle 2025-07-26 23:17:14 +01:00
justin 190068737d Move towards adding in pulse laser "rifle" (like UT shock rifle) 2025-07-25 09:12:04 +01:00
justin ff3699e6cb First implementation of pulse lasers 2025-07-23 23:22:26 +01:00
justin 8b17ec56ad Start adding pulseLasers 2025-07-19 22:05:46 +01:00
justin 27ce087e33 Cleanup, split itemToBreakLists 2025-07-13 22:24:54 +01:00
justin d861be8acf Cleanup 2025-07-13 21:13:31 +01:00
justin f1d4f530d9 Cleanup 2025-07-12 22:04:50 +01:00
justin 6df7f657bc Cleanup 2025-07-12 22:03:21 +01:00
justin a054d433b3 Cleanup 2025-07-12 21:52:12 +01:00
justin 026dbf9d15 Cleanup 2025-07-12 21:47:08 +01:00
justin 06cf55aa73 Hlint pass 2025-07-12 21:45:51 +01:00
justin cab125a1e9 Remove ItemLink 2025-07-12 21:41:49 +01:00
justin dc631263da Cleanup, hlints 2025-07-12 21:35:35 +01:00
justin 5544e891c5 Remove LDTs from item attachment 2025-07-12 21:21:37 +01:00
justin 264d83971f Tweak checks of item attachment to not use ItemLinks 2025-07-12 21:11:41 +01:00
justin 3dc70c483a Continue LDT -> DT 2025-07-12 14:08:17 +01:00
justin f47f99eac4 Continue removing LDTs 2025-07-12 14:01:44 +01:00
justin 8ff607675b Remove more LDTs 2025-07-11 00:49:36 +01:00
justin 05ff4651bd Remove most instances of LDTs from item use 2025-07-11 00:45:51 +01:00
justin e5eff32ce3 Continue removal of LDTs 2025-07-11 00:24:38 +01:00
justin 8597f2bcc0 Remove more LDTs 2025-07-11 00:02:26 +01:00
justin ba352e7191 Remove external duplicated ItemLinks 2025-07-10 23:57:27 +01:00
justin 918f970ca8 Move towards removing functionality associated with ItemLinks 2025-07-10 23:08:59 +01:00
justin f8595d353b Remove LDTs from orientations + item shapes 2025-07-10 22:24:09 +01:00
justin cd46f34787 Migrate LDTs to DTs 2025-07-10 22:13:47 +01:00
justin 9543c2c789 Start adding DT versions of LDT functions 2025-07-10 21:36:52 +01:00
justin fd5f5105aa Remove ItemLink from item orientation code 2025-07-10 21:17:01 +01:00
justin a9d730a5c1 DoubleTree -> DTree 2025-07-10 11:28:55 +01:00
justin e013bd57f7 Commit before attempting to remove ItemLinks, move LDT -> DT 2025-07-10 11:20:27 +01:00
justin 8a8623d30b Tweak laser weapon orientation 2025-07-10 10:52:04 +01:00
justin e3c6ef1398 Allow for laser to be attached to transformer to create weapon 2025-07-10 10:31:04 +01:00
justin f557d5b954 Eta reduction 2025-07-10 00:13:57 +01:00
justin 15db129633 Cleanup 2025-07-08 23:47:13 +01:00
justin 57be90fea2 Cleanup, remove chainLinkOrientation/updateItemWithOrientation etc 2025-07-08 23:22:33 +01:00
justin 15187db999 Unify some item updates 2025-07-08 23:20:25 +01:00
justin c2f234b842 Cleanup 2025-07-08 09:59:12 +01:00
justin b6cd988c82 Cleanup, remove old item orientation code 2025-07-06 13:08:13 +01:00
justin 76cb03b07b Cleanup 2025-07-05 23:41:28 +01:00
justin d6bdd0098b Fix angled recoil 2025-07-05 23:18:37 +01:00
justin 7b9c1678f1 Cleanup, move bullet spawn random offset to muzzle 2025-07-05 20:55:24 +01:00
justin 164499fe4e Move towards unifying some orientation code 2025-07-05 18:35:18 +01:00
justin 07c6298743 Hand/handle position refactor 2025-07-05 15:01:21 +01:00
justin 5ddfc83f09 Start refactoring hand/item handle orientation 2025-07-05 11:50:25 +01:00
justin d8e811c050 Extend trigger type to apply to full item location 2025-07-03 23:08:28 +01:00
justin 978823c87c Cleanup 2025-07-03 22:36:57 +01:00
justin a207073846 Fold together useDelay and itemTriggerType 2025-07-03 22:25:32 +01:00
justin 8a00450e3f Tweak use location 2025-06-30 01:02:27 +01:00
justin d88aed10c7 Hack together correct positioning of grenades from attached items 2025-06-28 22:32:12 +01:00
justin 6af2a8cc36 Add code for determining item orientation 2025-06-28 21:21:50 +01:00
justin 4f0dc64e72 Hack together general held item orientation 2025-06-27 21:29:57 +01:00
justin be6ea59d1e Use function on location to determine laser orientation 2025-06-27 10:42:23 +01:00
justin dd5a747559 Cleanup LabelDoubleTree -> LDTree 2025-06-27 08:55:00 +01:00
justin 73c708a325 Implement break list attachments without internal item updates 2025-06-26 23:42:54 +01:00
justin 4710dd7631 Move towards externalizing item attachment updates 2025-06-26 23:36:59 +01:00
justin 377900662a Simplify item composition structure 2025-06-26 21:07:11 +01:00
justin 758c0aeec8 Globally assign attachment orientations 2025-06-26 20:59:38 +01:00
justin 494c7a4f89 Commit before messing with item tree orientation etc 2025-06-26 20:29:48 +01:00
justin ab82bcbe20 Cleanup 2025-06-26 12:17:08 +01:00
justin d0f20da9f1 Randomise volleyGun bursts 2025-06-26 12:04:05 +01:00
justin 2f0e039d39 Fix volleyGun 2025-06-26 11:41:24 +01:00
justin cccb4f38db Reset warmup/cooldown when dropping machine pistol
Ideally items should be updateable when not equipped,
then this reset would not be necessary.
2025-06-26 09:34:51 +01:00
justin 731bd5276a Hack machine pistol whir down when no ammo 2025-06-26 09:31:40 +01:00
justin 193bc481d2 Add whirdown for machine pistol 2025-06-26 02:09:22 +01:00
justin 7830b0e2c1 Work on machine pistol 2025-06-26 01:09:09 +01:00
justin 5b35b4c6c8 Fix burst rifle rate delay bug, various cleanups 2025-06-25 23:47:41 +01:00
justin 1bdf426c42 Cleanup 2025-06-25 22:13:24 +01:00
justin a25fa34461 Cleanup buttons 2025-06-25 22:10:38 +01:00
justin 2f130c5bed Fix switch detection, cleanup 2025-06-25 21:49:11 +01:00
justin a9cae4d409 Simplify buttons 2025-06-25 21:37:32 +01:00
justin 6e9d4918a1 Simplify button drawing 2025-06-25 15:40:12 +01:00
justin bf0bc22720 Start simplifying buttons 2025-06-25 15:16:11 +01:00
justin ab1b939e3d Tweak dust 2025-06-25 15:01:20 +01:00
justin d4b2f23c9d Separate Clouds and Dust 2025-06-25 14:51:15 +01:00
justin d61ea304ad Tweak doc 2025-06-25 12:03:01 +01:00
justin b285e44dee Hack interaction between clouds and bloom 2025-06-25 12:01:46 +01:00
justin 04e046ea82 Tweak clouds + bloom 2025-06-24 16:55:08 +01:00
justin 35a3f005c4 Tweak clouds 2025-06-24 16:40:00 +01:00
justin 03bc733de9 Tweak clouds 2025-06-24 13:54:14 +01:00
justin 444be7b49c Refactor clouds 2025-06-24 13:28:17 +01:00
justin b1041d1eb0 Simplify clouds 2025-06-24 09:42:51 +01:00
justin 366b998989 Cleanup 2025-06-24 08:48:08 +01:00
justin 5537efe584 Increase explosive damage to walls (still problems with hitboxes) 2025-06-24 08:28:22 +01:00
justin 18470d700d Add sounds 2025-06-23 18:15:47 +01:00
justin 54eab6dd9e Simplify shockwave damages 2025-06-23 18:15:28 +01:00
justin 4e008366f4 Work on damage sounds 2025-06-22 16:00:53 +01:00
justin 291f77e13d Add sounds 2025-06-22 14:33:21 +01:00
justin 2553239882 Continue tweaking sounds 2025-06-22 14:32:53 +01:00
justin a109d54d96 Shorten sounds 2025-06-22 09:27:42 +01:00
justin 91b30ecdbf Add sounds 2025-06-22 09:19:58 +01:00
justin 2db3342532 Add sound on creature piercing damage 2025-06-22 09:19:37 +01:00
justin 4e9739afa5 Add sounds 2025-06-22 08:31:38 +01:00
justin 9fa3e060d7 Refactor damages to materials 2025-06-22 08:31:18 +01:00
justin df3fde5d3e Cleanup 2025-06-20 23:11:40 +01:00
justin b45d6817f5 Cleanup 2025-06-20 22:30:01 +01:00
justin 7e84dcf173 Unify some damage applications 2025-06-20 22:23:14 +01:00
justin 3019d95520 Fix crsHitRadial, unify some radial damages 2025-06-20 22:17:10 +01:00
justin 67d77fcb2b Add sound 2025-06-20 21:57:25 +01:00
justin 0dfae3e5a9 Cleanup 2025-06-20 21:57:07 +01:00
justin b2d64ce698 Refactor damages in circles 2025-06-20 21:52:42 +01:00
justin edcd947c90 Use external strict pair package (use strict-tuple-lens also?) 2025-06-20 19:54:56 +01:00
justin d7354f7bc9 Cleanup 2025-06-20 19:40:07 +01:00
justin 86b10d02c8 Cleanup 2025-06-20 18:02:33 +01:00
justin 4a84b70801 Cleanup 2025-06-20 17:50:49 +01:00
justin b920a2ec72 Unify item inventory effects somewhat 2025-06-20 17:41:32 +01:00
justin fe1ac8f5a4 Cleanup 2025-06-19 22:55:46 +01:00
justin 4f0fa95e13 Further simplify walk cycle 2025-06-19 14:01:59 +01:00
justin c035f82b0e Cleanup (remove momentum code) 2025-06-19 13:51:57 +01:00
justin add192741c Simplify walk cycle (may decrease frame rate?) 2025-06-19 13:48:53 +01:00
justin e6bb6fb1f3 Simplify walk cycle 2025-06-19 12:46:54 +01:00
justin f84ae98aa9 Cleanup creature drawing 2025-06-19 12:29:21 +01:00
justin 5a6144dbbd Simplify creature drawing positioning 2025-06-19 12:15:24 +01:00
justin 3f9b76b8d0 Draw barrels properly 2025-06-14 23:38:46 +01:00
justin 078a3cc7ea Cleanup 2025-06-14 23:16:29 +01:00
justin 02498e5abb Cleanup barrels 2025-06-14 23:08:11 +01:00
justin 5286485d62 Separate incendiary ebs and flamelets 2025-06-09 11:41:11 +01:00
justin 5d8b493636 Tweak energyballs 2025-06-09 08:40:47 +01:00
justin 3dce133f30 Work on energy balls 2025-06-08 23:31:44 +01:00
justin 7e8eaaa34e Randomize spark movement 2025-06-08 21:15:05 +01:00
justin feb9ce08cc Add file 2025-06-08 20:57:19 +01:00
justin 1b769ad504 Redo maxDamageType 2025-06-08 20:56:56 +01:00
justin 70c78824f3 Cleanup, redo damage direction 2025-06-08 20:40:58 +01:00
justin 5b1e4fba4e Fix bug in flame wall damages, cleanup 2025-06-08 14:16:59 +01:00
justin 4c3a3d83da Add file 2025-06-08 12:13:13 +01:00
justin 54937fd159 Simplify flames 2025-06-08 12:12:58 +01:00
justin ba9e9278c4 Remove record 2025-06-07 19:21:49 +01:00
justin faa3c4cde4 Get rid of warnings 2025-06-07 19:14:56 +01:00
justin 81a7dcd962 Refactor damages 2025-06-07 14:26:00 +01:00
justin 7a192e7631 Add file (non-compiling commit) 2025-06-07 12:22:31 +01:00
justin e914555728 Partial (not working) refactor of damages, energyballs 2025-06-07 12:22:06 +01:00
justin 2b39152060 Remove DamageEffect 2025-06-07 10:28:17 +01:00
justin 500772f2f9 Add exports 2025-06-07 10:08:20 +01:00
justin 7d90db6c4c Add file 2025-06-07 10:07:31 +01:00
justin b4bdfbf2c3 Simplify sparks 2025-06-07 10:07:16 +01:00
justin 7bee1549bf Start work on clouds, damage, sensors 2025-06-06 22:53:41 +01:00
justin d2d4642380 Cleanup, remove records, stop unecessary Aeson compile 2025-06-06 20:43:49 +01:00
justin d3de40d432 Add file 2025-06-06 15:32:36 +01:00
justin 7292bc9012 Remove creature move type record 2025-06-06 15:32:19 +01:00
justin e9b69be7de Remove some creature vocalization records 2025-06-06 15:01:20 +01:00
justin 467f241d7a Remove creature records 2025-06-06 14:52:52 +01:00
justin 05f250f928 Add file 2025-06-06 13:36:38 +01:00
justin 0f55257bff Remove creature records 2025-06-06 13:36:18 +01:00
justin 73c79f2f4d Move creature mass out of record 2025-06-06 09:10:03 +01:00
justin aa219acf8d Add file 2025-06-06 08:46:52 +01:00
justin 4ae7c6ebd6 Start moving creature properties out of records 2025-06-06 08:46:27 +01:00
justin bae75a1e60 Cleanup 2025-06-05 22:19:20 +01:00
justin 9a699e70ed Move background item effects out of records 2025-06-05 22:08:39 +01:00
justin 10ca82c4d5 Remove consumable records 2025-06-05 21:15:20 +01:00
justin 816ab4222f Move UseCondition out of record 2025-06-05 19:41:33 +01:00
justin 16f5c05f19 Vleanup 2025-06-05 16:21:30 +01:00
justin 4b326433ab Remove equipment records 2025-06-05 15:54:33 +01:00
justin 5f3b932338 Add file 2025-06-05 15:39:55 +01:00
justin 0710427aa2 Remove record concerning removing equipment effects 2025-06-05 15:39:33 +01:00
justin 6300a90257 Move equip effect on remove out of record 2025-06-05 15:35:11 +01:00
justin 924f236b94 Cleanup 2025-06-05 15:19:42 +01:00
justin 619ad4edc8 Remove equipment records 2025-06-05 15:18:59 +01:00
justin 482ed6514c Remove eeAttachPos record 2025-06-05 14:03:14 +01:00
justin cf7a5b2362 Add file 2025-06-05 13:52:59 +01:00
justin c8d44fea79 Move equipType out of record 2025-06-05 13:52:36 +01:00
justin 1293aa0fdf Remove some Aeson processing 2025-06-05 13:24:43 +01:00
justin 7f1b790688 Move AmmoType, going towards no need for Aeson 2025-06-05 13:16:57 +01:00
justin cff32e50f3 Add file 2025-06-05 11:11:34 +01:00
justin 1a0e115c7d Cleanup UseDelay 2025-06-05 11:11:14 +01:00
justin c8a04b8b1e Move UseDelay out of records 2025-06-05 11:00:17 +01:00
justin 289bbcc8a9 Add file 2025-06-05 10:34:02 +01:00
justin f3c56a6b5f Start removing heldDelay records 2025-06-05 10:33:41 +01:00
justin 324a64814e Move muzzles out of records 2025-06-05 10:04:35 +01:00
justin 83a41e0204 Move nozzle walk into item params, cleanup 2025-06-05 08:23:11 +01:00
justin b2a971d8c3 Move towards moving muzzles out of records 2025-06-05 08:16:20 +01:00
justin e05061a268 Continue work on burst fire 2025-06-04 22:08:05 +01:00
justin 37fafa9123 Cleanup 2025-06-04 21:53:50 +01:00
justin 62cac29a59 Rethink weapon repetitions 2025-06-04 21:03:25 +01:00
justin 9797f610aa Remove heldParams record 2025-06-04 13:33:44 +01:00
justin 0cb7b54180 Move weapon repetitions into trigger type 2025-06-04 13:23:40 +01:00
justin e77721fe7d Move sidepush out of records 2025-06-04 11:43:35 +01:00
justin a8aab75739 Move randomOffset out of records 2025-06-04 11:33:14 +01:00
justin 636a13b678 Move weapon torque out of records 2025-06-04 11:21:15 +01:00
justin 9f884b5aa7 Continue record refactor 2025-06-04 09:50:18 +01:00
justin e1ec4e1a89 Move weapon muzzles up a record 2025-06-04 09:29:09 +01:00
justin a71e237789 Remove aimParam records 2025-06-04 09:22:01 +01:00
justin a1a35745d6 Move TriggerType out of item record 2025-06-04 08:18:05 +01:00
justin e6bb7ac753 Add file 2025-06-03 22:21:01 +01:00
justin 33ebdcb0de Continue reorganising records into functions 2025-06-03 22:20:42 +01:00
justin a5554f24e4 Make item handle position slightly more sensible 2025-06-03 15:52:55 +01:00
justin a17961eac7 Make aimStance record into function 2025-06-03 15:19:35 +01:00
justin 589603e474 Start moving item records out into functions 2025-06-03 11:46:56 +01:00
justin 6e187c7548 Add sounds 2025-06-03 10:23:40 +01:00
justin 560694c644 Cleanup 2025-06-03 10:23:24 +01:00
justin f4cce1cb38 Set mouse position on unpause 2025-06-03 10:07:56 +01:00
justin 77f2517f2c Warp mouse after unpausing, with (undesired) one frame gap 2025-06-03 10:00:53 +01:00
justin a73db304d0 Record aim position in LWorld 2025-06-03 09:34:18 +01:00
justin 1de90a97f0 Move towards recording aim position in LWorld 2025-06-03 09:18:46 +01:00
justin 8da3e75ac5 Cleanup (remove) _soundData, _musicData 2025-06-03 09:08:13 +01:00
justin e952f2abea Enable sounds in menus 2025-06-03 08:51:34 +01:00
justin 695cf3c5fd Stop camera movement when pausing 2025-06-02 12:55:27 +01:00
justin 1851dcc5d6 Pause and resume sounds when pausing game 2025-06-02 12:43:37 +01:00
justin 6706ac494a Reduce positional effect on sounds 2025-06-02 11:13:19 +01:00
justin b442001246 Move laser sound to where it is created 2025-06-01 21:07:56 +01:00
justin c291c7e3da Cleanup 2025-06-01 10:23:14 +01:00
justin 61e85ffd5c Improve rotate drag mouse context 2025-06-01 10:06:51 +01:00
justin 59e1207b46 Improve jump to hotkey 2025-06-01 09:44:03 +01:00
justin 39753755af Cleanup 2025-06-01 09:31:29 +01:00
justin b7cd91b56e Cleanup, add unpause clock 2025-06-01 09:12:18 +01:00
justin c56e3e96ee Fix aim sweep 2025-05-31 22:11:26 +01:00
justin 8b07fffa7c Cleanup, improve aiming code 2025-05-31 15:28:30 +01:00
justin 3553ee5bbf Cleanup 2025-05-31 13:34:41 +01:00
justin b1c3cf5045 Cleanup 2025-05-31 08:56:20 +01:00
justin ceb7a4f04c Cleanup 2025-05-31 08:17:26 +01:00
justin cdf300b824 Stop tracking aim twist amount, use fixed number 2025-05-30 10:31:21 +01:00
justin 0bcf263db7 Remove _crTwist 2025-05-30 10:23:37 +01:00
justin 3efa01bf09 Cleanup 2025-05-21 22:48:18 +01:00
justin 612ae236df Add exports 2025-04-30 21:13:38 +01:00
justin c43aa91f1c Fix winding of corner points for line blocks 2025-04-02 18:13:45 +01:00
justin 836a3d9dd3 Commit on return after gap 2025-03-27 18:22:57 +00:00
justin 4932952ed4 Cleanup 2025-01-16 12:38:56 +00:00
justin 6eacce30fe Fix camera rotation double click bug 2025-01-16 12:26:52 +00:00
justin 881b866ed2 Play around with tesla arcs 2025-01-16 12:18:25 +00:00
justin 5fb71cec39 Start simplifying tesla arcs 2025-01-09 11:01:17 +00:00
justin c355fe4f5f Tweak shell spin 2025-01-08 22:07:04 +00:00
justin d952bd48cc Cleanup 2025-01-08 20:30:21 +00:00
justin 01ed3ce045 Cleanup 2025-01-08 20:28:26 +00:00
justin 97317a621b Simplify bullet movement code 2025-01-08 20:27:04 +00:00
justin bd42f44278 Simplify bullet movement 2025-01-08 19:05:48 +00:00
justin ef751cbd21 Implement/improve null/un/binary logic gates 2025-01-08 18:13:20 +00:00
justin d436db2847 Fix bug updating wrong item on drop 2025-01-08 16:24:49 +00:00
justin 91f11e43c8 Handle warmdown of minigun with inventory effect 2025-01-08 16:18:44 +00:00
justin a843a1c9c0 Add file 2025-01-08 14:30:02 +00:00
justin 21b7b863c7 Implement copier, an item that copies the value displayed by other items 2025-01-08 14:29:25 +00:00
justin 47aa8655b1 Slightly tweak number displays 2025-01-08 00:21:17 +00:00
justin 5fa5bdf21e Tweak display, scrolling of item values 2025-01-07 21:10:29 +00:00
justin b3cf10bd26 Simplify lasers 2025-01-07 01:36:23 +00:00
justin 4a9c1cd6b3 Simplify menu screens (no choice of display parameters) 2025-01-07 01:03:12 +00:00
justin fe3e0b1373 Simplify menu display 2025-01-07 00:58:23 +00:00
justin 1e7611ab81 Cleanup 2025-01-07 00:39:59 +00:00
justin beaf65f3f7 Allow sticky grenades to move after killing creature stuck to 2025-01-06 13:22:46 +00:00
justin 04ba9fcce2 Tweak ordering of projectile movement 2025-01-06 12:57:20 +00:00
justin 6ba16b06fb Cleanup 2025-01-06 12:23:59 +00:00
justin ffe5198e46 Cleanup 2025-01-06 12:21:34 +00:00
justin f9cf3c2ea6 Refactor 2025-01-06 12:10:25 +00:00
justin faded4a3c5 Cleanup 2025-01-06 12:06:51 +00:00
justin f3f365bbe9 Refactor 2025-01-06 12:06:37 +00:00
justin bcc36901aa Improve inventory display
Extant bugs: can get to INVENTORY heading section when deleting nearby
filter if inventory is empty
2025-01-06 11:08:09 +00:00
justin b59ebaf57d Reuse combine inventory code 2025-01-06 10:54:24 +00:00
justin ecc9171bb6 Cleanup 2025-01-06 01:32:00 +00:00
justin ab448770dd Cleanup 2025-01-06 01:17:59 +00:00
justin c20486fc34 Cleanup 2025-01-06 01:05:56 +00:00
justin e5cbac480e Display equipment as well, may want to move this into number display 2025-01-06 00:58:38 +00:00
justin 76fc8d968d Fix space leak in inventory display.
This is done by wrapping values in what seems to be an unnecessary list.
I do not know exactly why this works, lazyness/compiler optimisations?
2025-01-06 00:30:31 +00:00
justin 2dd0d14b8c Move item display around.
Changing these functions can cause space leaks for what are probably
unknowable reasons.
2025-01-05 22:45:42 +00:00
justin 2837f0d0af Stop displaying hotkeys and equip positions, fixes space leak 2025-01-05 22:33:05 +00:00
justin 9769480d0b Work towards fixing inventory space leak 2025-01-05 20:54:07 +00:00
justin 7175a96249 Simplify inventory display 2025-01-05 17:40:50 +00:00
justin 57d36855d8 Replace length . _siPictures with _siHeight 2025-01-05 17:31:37 +00:00
justin 27ffeb3a5a Remove one use of ssItems 2025-01-05 16:05:49 +00:00
justin 12e5cba62b Start trying to remove _ssItems as much as possible 2025-01-05 16:00:23 +00:00
justin ba5c6178c6 Tweak inventory display 2025-01-05 15:55:34 +00:00
justin 2f30163c2f Tweak main inventory display, have not solved space leak 2025-01-05 15:48:30 +00:00
justin 51297d0cb2 Cleanup 2025-01-04 21:25:11 +00:00
justin 02f5bdae31 Remove non-existent import 2025-01-04 21:12:15 +00:00
justin 86173f9f6a Cleanup 2025-01-04 21:08:46 +00:00
justin 698bb081dd Change weapon fixed rate delay not to require update every tick 2025-01-04 21:06:07 +00:00
justin 39e3e4ae00 Refactor in lens direction 2025-01-04 19:14:18 +00:00
justin 31a74b9ac0 Add strict tuples 2025-01-04 15:56:40 +00:00
justin b5ffeae538 Cleanup 2025-01-04 15:43:35 +00:00
justin da641e0f47 Cleanup 2025-01-04 15:37:17 +00:00
justin ad8052bc5c Cleanup 2025-01-04 15:31:06 +00:00
justin f9eca28b80 Cleanup 2025-01-04 15:11:37 +00:00
justin 649fc35e32 Cleanup 2025-01-04 15:09:20 +00:00
justin 89eed0d059 Commit before trying to deal with leak in main inventory display 2025-01-04 12:58:36 +00:00
justin 3b452b9002 Add clicker items that use other items with a one frame delay 2025-01-03 14:50:09 +00:00
justin 386d6f47b0 Mapper, ARHUD, radar sweeps update. Add dropper items 2025-01-03 10:43:06 +00:00
justin e9f5a39ed7 Start implementing mapper item 2025-01-02 16:26:26 +00:00
justin 8bfaa12ea7 Add files 2025-01-02 11:16:57 +00:00
justin 9a8645c2be Add sounds 2025-01-02 11:16:48 +00:00
justin 725a59b9d0 Work on mapper item, simpler generation of items from console 2025-01-02 11:16:04 +00:00
justin 03b25565f1 Allow mouse click interaction for nearby objects 2025-01-02 00:32:45 +00:00
justin 3b60ad6023 Cleanup. Probable leak when inventory is large enough for scrolling 2025-01-01 23:35:36 +00:00
justin adc0878a28 Allow use of items while examine subinventory shows
Still not sure what to do with right click scrolling, item swapping
2025-01-01 21:58:07 +00:00
justin ff5c4db3ae Cleanup 2025-01-01 21:16:47 +00:00
justin 5b978d9f1c Make examine inventory controlled by item, perhaps still buggy 2025-01-01 21:14:38 +00:00
justin 86aba6d115 Improve sticky grenades 2025-01-01 18:03:29 +00:00
justin 511e765e3a Allow grenades to stick to creatures 2025-01-01 17:44:00 +00:00
justin e8fe4c2d72 Start implementing sticky grenades 2025-01-01 17:03:10 +00:00
justin 356301fb61 Remove separate status from selection list 2025-01-01 15:33:59 +00:00
justin dda6cb2ad6 Make display colour for introscan white 2025-01-01 15:28:19 +00:00
justin 08685909be Implement introspection items 2025-01-01 15:20:46 +00:00
justin dae0e0591c Fix bugs in equipment allocation using hotkeys
The behaviour is still not perfect, should be able to cycle through all
options by pressing one key. There is unnecessary memory of past state
going on here
2025-01-01 14:48:17 +00:00
justin 7dd379d4bc Cleanup, delete hotkeys when deleting item from inventory 2025-01-01 14:04:25 +00:00
justin 0915e04b56 Allow jumping to hotkey selection 2025-01-01 12:04:39 +00:00
justin 91111fc89c Add attached/aiming checks on item usage 2025-01-01 11:36:33 +00:00
justin 99114c7351 Refactor hotkey assignation 2024-12-31 13:24:10 +00:00
justin 17da9e00f8 Remove data Hammers 2024-12-31 12:42:03 +00:00
justin 9e2dc995e9 Continue item use refactor 2024-12-31 11:25:56 +00:00
justin 6aa3c701bc Move towards removing item hammers, unifying item use 2024-12-31 11:15:03 +00:00
justin 2fc960321e Remove creature hammer, may have broken equipment/combining 2024-12-31 10:17:31 +00:00
justin ede08ff1db Tweak camera movement 2024-12-31 09:54:57 +00:00
justin e12e4777b2 Make hotkeys assignable to any item, use item id 2024-12-31 09:20:53 +00:00
justin 1e7dcbfded Commit before making hotkeys attach to item ids, not inv ids 2024-12-31 00:34:47 +00:00
justin 87f068f01a Add gimbal and gyroscope, allowing more fine tuned projectile control 2024-12-30 11:41:20 +00:00
justin 4c9632b3f3 Allow to determine new substructural function based on ldt 2024-12-29 21:21:54 +00:00
justin 48ddb94623 Allow item structure to determine if subtree is attachable 2024-12-29 11:52:15 +00:00
justin 2037891cc9 Commit before perhaps rethinking item structure 2024-12-29 10:40:21 +00:00
justin ef7aee82e5 Allow grenades to bounce 2024-12-29 00:33:55 +00:00
justin ad7be9152a Cleanup projectile update 2024-12-28 22:07:05 +00:00
justin 30be7b0983 Continue projectile udpate refactor 2024-12-28 21:58:45 +00:00
justin 2fdc6ae557 Start making projectile update function rather than folded list 2024-12-28 21:31:33 +00:00
justin e028c54948 Cleanup 2024-12-28 10:31:58 +00:00
justin 39a76f758a Remove unnecessary projectile code 2024-12-28 10:20:17 +00:00
justin 2e67924339 Lint 2024-12-28 10:12:01 +00:00
justin 2abb70334f Tweak rockets, smoke 2024-12-28 10:08:14 +00:00
justin 1507b8d3ed Tweak explosions 2024-12-27 23:44:39 +00:00
justin ed5c5d7b8a Refactor projectiles, fix shell drawing 2024-12-27 23:27:53 +00:00
justin 233fe5995c Refactor shells 2024-12-27 23:04:59 +00:00
justin 9168acf12e Cleanup 2024-12-27 22:32:56 +00:00
justin 3b19e7e530 Commit before attempting to remove _prjAcc 2024-12-27 22:09:08 +00:00
justin b6ece953c8 Unify launcher projectile creation 2024-12-27 21:52:18 +00:00
justin 5c749bff63 Work on rocket/grenade launcher 2024-12-27 21:46:46 +00:00
justin 0ef28c132e Replace buggy circle seg intersection with a simpler test 2024-12-26 21:53:18 +00:00
justin 91ba6ee148 Typo fix 2024-12-26 10:17:26 +00:00
justin 53c981718c Start allowing for more granular control of remote projectiles, cleanup 2024-12-26 10:16:18 +00:00
justin ae557f3fd4 Add remote detonator, stop remote screen attaching to nonlauncher ammo 2024-12-25 21:52:09 +00:00
justin c788af47bd Allow more general detection of item use focus 2024-12-25 21:26:25 +00:00
justin aec56f4977 Fix more edge cases in circle collision 2024-12-25 10:14:13 +00:00
justin 1a3ccbaead Add file 2024-12-25 00:11:28 +00:00
justin 04a83ed031 Fix error in circle wall collision detection
The wall zoning did not take into account the radius of the circle
2024-12-25 00:10:26 +00:00
justin 18b569ac89 Cleanup 2024-12-24 21:25:23 +00:00
justin 81fd2131e0 Implement modules changing shell payloads 2024-12-24 21:13:58 +00:00
justin e82ef26b3e Tweak explosions 2024-12-24 15:25:39 +00:00
justin 957f233629 Simplify energyBalls (no z component) 2024-12-24 15:05:36 +00:00
justin c4b9142d0f Tweak explosions 2024-12-24 14:54:32 +00:00
justin a79dfa1bb3 Allow bullets to spawn bullets 2024-12-24 14:17:36 +00:00
justin dc96424de9 Comment out bullet ammo targeting modules 2024-12-24 14:04:18 +00:00
justin d58fdb0b52 Comment out unused code 2024-12-24 14:01:40 +00:00
justin 37da73bf6d Simplify bullets 2024-12-24 13:59:06 +00:00
justin 15317882e6 Cleanup, allow more general magShield deflection 2024-12-24 12:54:28 +00:00
justin 75958c1e2c Remove instantBullets 2024-12-24 12:50:00 +00:00
justin a28ec07ffb Add more bullet deflection types 2024-12-24 12:32:09 +00:00
justin d739a95197 Allow turrets to fire bullets, only good for testing for now 2024-12-24 12:24:27 +00:00
justin fb1553bf3c Tweak "magnets" that affect bullet movement 2024-12-24 10:48:28 +00:00
justin 02b2f9831f Cleanup, fix bug in floating camera zoom 2024-12-23 16:59:55 +00:00
justin 90ec2a3738 Allow a spring and hardware to make weapons automatic 2024-12-23 16:29:10 +00:00
justin 205c0a5c19 Stop instant creature death, allow for more overkill 2024-12-23 15:54:01 +00:00
justin ca61ae0c64 Allow for scrolling alteRifle 2024-12-23 13:16:38 +00:00
justin cae02d8008 Move optic zoom scrolling to item scrolling function
Zoom scrolling behaviour has slightly changed, I'm not sure how I want
it to work yet though
2024-12-23 13:02:56 +00:00
justin a4e1fcf384 Add alteRifle 2024-12-23 10:53:35 +00:00
justin 34c7186aa1 Tweak flares 2024-12-23 10:28:46 +00:00
justin bb5ed215e4 Cleanup 2024-12-22 23:57:54 +00:00
justin e56a467111 Add muzzle flash to bangCone 2024-12-22 23:54:06 +00:00
justin 69458182d9 Add file 2024-12-22 15:36:45 +00:00
justin e2e1e23881 Cleanup tesla arcs 2024-12-22 15:36:28 +00:00
justin 632deb7486 Cleanup tesla arcs 2024-12-22 14:50:08 +00:00
justin acba8de359 Add more wall reflection/randomisation 2024-12-22 10:42:10 +00:00
justin 84821a1531 Randomise volleygun muzzle order 2024-12-21 19:10:34 +00:00
justin 17cb1d8ff8 Add shapes for craft items 2024-12-21 17:16:40 +00:00
justin 978bf864cc Cleanup, remove old cylinder cap poke code 2024-12-21 16:44:05 +00:00
justin 67fa50e2f8 Make cylinders have flat ends 2024-12-21 16:38:16 +00:00
justin 98d4276fd6 Commit before making large changes to cylinder shape 2024-12-21 16:10:22 +00:00
justin a79dbf3b0e Add shapes for some craft items 2024-12-21 13:30:28 +00:00
justin d3a74912d1 Always draw item in hand/equipped 2024-12-21 12:26:39 +00:00
justin 5b6699767a Cleanup 2024-12-21 12:10:21 +00:00
justin e35e056fcb Remove CreatureTargeting, start making shapes for crafts 2024-12-21 12:08:45 +00:00
justin 1e77b45230 Improve volleyGun 2024-12-21 11:47:29 +00:00
justin 8f65fa6bc5 Allow firing of different muzzles on different frames after use 2024-12-21 11:37:52 +00:00
justin e9006addd0 Cleanup 2024-12-20 18:14:27 +00:00
justin 92b190aba8 Cleanup 2024-12-20 18:06:54 +00:00
justin 1e23c9bd1e Add your speed to launched projectile, based on old position 2024-12-20 17:49:46 +00:00
justin 056b8be534 Cleanup 2024-12-20 17:35:02 +00:00
justin e34a17a027 Cleanup, use pattern guards 2024-12-20 17:28:42 +00:00
justin 58635466ae Cleanup 2024-12-20 17:09:17 +00:00
justin d9aaa8cc05 Allow for item use when not root 2024-12-20 16:07:58 +00:00
justin 3a72bd366f Commit before changing ItemUse into single product type 2024-12-20 14:49:18 +00:00
justin e1989eaa1e Cleanup 2024-12-19 23:40:04 +00:00
justin f3cfe8cb5f Fix imports 2024-12-19 22:57:53 +00:00
justin 0a0db28e6d Cleanup 2024-12-19 22:56:25 +00:00
justin 83e65fb1b0 Restrict hotkey firing to initialpress 2024-12-19 22:45:49 +00:00
justin 2b5a81fd11 Cleanup 2024-12-19 22:10:18 +00:00
justin 3da9490dd4 Remove left click/hotkey item data types 2024-12-19 21:55:18 +00:00
justin 910c683eac Move hotkeys out of Creature into LWorld 2024-12-19 15:29:20 +00:00
justin 4526119fcd Start moving hotkeys out from creatures into world 2024-12-19 15:16:47 +00:00
justin 11b5ef74c5 Remove _crInvEquipped 2024-12-19 12:44:34 +00:00
justin 80b03e6544 Move further towards removing _crInvEquipped 2024-12-19 12:29:17 +00:00
justin 7e0184a54d Remove _crCamouflage/wrist invisibility on equip/unequip
Invisibility no longer works
2024-12-19 12:12:54 +00:00
justin a669632226 Make equipment effects use item locations
Move towards removing on/off equipment effects
2024-12-19 11:15:21 +00:00
justin 3ffe61e6db Move equipment effects into "zipper" item update 2024-12-19 10:00:39 +00:00
justin 19e5927934 Move towards removing crInvEquipped 2024-12-19 01:49:13 +00:00
justin 8c04a3f968 Cleanup 2024-12-19 01:36:32 +00:00
justin b0f0f5577c Continue work on refactoring equipment position 2024-12-19 01:29:40 +00:00
justin 331a9a2f9b Start keeping track of item equip status internally (partially done) 2024-12-19 00:55:14 +00:00
justin 5600b29714 Split item consumables from item use 2024-12-18 19:35:39 +00:00
justin db8e26b99d Commit before rethinking item ammo containers 2024-12-18 19:20:37 +00:00
justin 9bc9dd2a08 Cleanup code, speed up radar sweeps 2024-12-18 15:57:37 +00:00
justin 86d884ba01 Cleanup 2024-12-18 15:50:22 +00:00
justin 694bc2b060 Allow triggering items using an ECG 2024-12-18 15:39:04 +00:00
justin c4e8046332 Improve click detectors
Introduce "gadgets" as a structural function, for items that can be used
when held and when not held. Click detectors are such an item. Make
click detectors correctly attach and use up batteries when used.
2024-12-18 13:34:05 +00:00
justin 4d6d255893 Add file 2024-12-18 11:39:52 +00:00
justin d405747bd5 Tweaks concerning item types 2024-12-18 11:39:12 +00:00
justin d0ef2628ce Start more sensibly separating avatar from ai creatures 2024-12-17 19:55:07 +00:00
justin 234b10df40 Remove bullet delay 2024-11-29 21:15:12 +00:00
justin d09e715653 Select item under mouse after releasing drag selection 2024-11-29 21:01:04 +00:00
justin 126f328198 Fix multiple left click explosions of remote rockets 2024-11-29 20:55:51 +00:00
justin 59c65b059a Remove invTrees function 2024-11-29 20:47:16 +00:00
justin de4a955206 Remove reduntant left click item use code 2024-11-29 20:40:14 +00:00
justin 1b99b73f44 Complete PartiallyComposedItem -> ComposedItem 2024-11-29 10:43:08 +00:00
justin 7148051b31 Remove ComposedItem, to be replaced with PartiallyComposedItem 2024-11-29 10:39:39 +00:00
justin a9edab0e31 Cleanup 2024-11-29 10:06:59 +00:00
justin 8d6b44e9f4 Cleanup 2024-11-29 01:37:45 +00:00
justin 61c0ba9251 Cleanup, remove spawngun 2024-11-28 21:48:25 +00:00
justin ba66008c65 Cleanup 2024-11-28 21:27:29 +00:00
justin 7db700042a Cleanup old muzzle position code 2024-11-28 21:26:55 +00:00
justin 3763ff2c8a Partial implementation of more sensible muzzle position determination 2024-11-28 21:15:22 +00:00
justin 0d5e578f07 Implement bullet synth 2024-11-27 20:37:40 +00:00
justin b21513c4dd Move item inv size and item dimensions from records to external function 2024-11-26 23:36:08 +00:00
justin 9534698a24 Cleanup 2024-11-26 23:01:17 +00:00
justin f64dc86a30 Cleanup 2024-11-26 22:55:55 +00:00
justin 2b969f6530 Make selection cursors use selection item width 2024-11-26 22:49:54 +00:00
justin f12c390778 Add selection item width 2024-11-26 21:53:49 +00:00
justin 9e0ef2ed1d Cleanup 2024-11-26 21:27:09 +00:00
justin 199cd73fa9 Make dragging items instantaneous (up to 30 items away, at least) 2024-11-26 21:18:28 +00:00
justin d4c50ede65 Cleanup 2024-11-26 17:47:35 +00:00
justin 3b8c12347d Size multi-item cursor better 2024-11-26 17:46:59 +00:00
justin 94acc5566c Unify backspace in regex code 2024-11-26 17:33:08 +00:00
justin dc5c62e8ff Simplify check if inventory selection exists 2024-11-26 17:20:07 +00:00
justin e1f5049e0f Correctly display held root item 2024-11-26 17:05:13 +00:00
justin 7d0f44a041 Remove default light sources 2024-11-26 13:27:58 +00:00
justin 029c61efc8 Cleanup 2024-11-26 13:19:03 +00:00
justin cc302a6846 Remove temporary light sources as separate entity 2024-11-26 13:12:55 +00:00
justin e93a804559 Allow for lights to be stored in a one-frame list 2024-11-26 12:50:39 +00:00
justin 851fdc2410 Commit before unifying light sources 2024-11-26 12:21:00 +00:00
justin e33fed2239 Click on combine filter jumps to combination 2024-11-26 12:05:19 +00:00
justin a4d95c5bd5 Change behaviour when clicking on filter 2024-11-26 11:59:26 +00:00
justin 145ab77859 Cleanup 2024-11-25 23:17:54 +00:00
justin f91a5cebb5 Cleanup 2024-11-25 23:13:54 +00:00
justin 6aea049b80 Unify terminal size determination 2024-11-25 22:59:54 +00:00
justin 21aae232fc Cleanup 2024-11-25 22:55:28 +00:00
justin d8d30e0192 Cleanup (somewhat) mouseClickOptionsList 2024-11-25 22:54:45 +00:00
justin 0fb6c3ec26 Improve mouse cursor on pickup 2024-11-25 22:41:39 +00:00
justin 6658aa7a0a Stop group selection on unsuitable sections 2024-11-25 22:26:28 +00:00
justin 9da80a0429 Partial fix on selecting unselectable items using mouse 2024-11-25 22:21:36 +00:00
justin bf6e02bd98 Cleanup 2024-11-25 22:16:54 +00:00
justin a4998716e9 Tweak mouse over alpha 2024-11-25 22:04:23 +00:00
justin f36f4b8536 Hide group selection in combine inventory, mempty on combine 2024-11-25 21:55:10 +00:00
justin 445ca84358 Fix bug when dragging items 2024-11-25 21:42:00 +00:00
justin 3ec6be2830 Git is not helpful, asking for a commit 2024-11-25 21:30:00 +00:00
justin 172429bc79 Cleanup 2024-11-25 20:43:27 +00:00
justin 00d8190ffc Fix bug not allowing dragging at extreme bottom edge 2024-11-25 20:41:30 +00:00
justin 3c75b78803 Fix bug when dragging filtered items 2024-11-25 20:04:03 +00:00
justin 8ad91c7bac Cleanup 2024-11-25 19:49:16 +00:00
justin 51caf936f4 Prevent bug on shift selecting from outside selection lists 2024-11-25 18:53:27 +00:00
justin 79bc3b2ddf Update single selection to be under mouse while dragging 2024-11-25 18:29:01 +00:00
justin 887ae2477c Allow selection of noncontiguous items using shift 2024-11-25 18:18:34 +00:00
justin 669f9667f1 Allow scrolling within a larger selection to not remove larger selection 2024-11-25 17:20:09 +00:00
justin 83bcf3c0f7 Cleanup 2024-11-25 16:30:38 +00:00
justin 32f0d287e8 Space only picks up filtered close items 2024-11-25 15:47:32 +00:00
justin bbf95c91d8 Tweak item dropping 2024-11-25 15:22:42 +00:00
justin 4e4cc92939 Improve item pickup by dragging 2024-11-25 15:01:16 +00:00
justin 951d1191cc Can pick up items by dragging 2024-11-25 14:03:42 +00:00
justin 691ed23eb4 Allow dragging after single click 2024-11-25 12:40:45 +00:00
justin 348da9e6b6 Cleanup 2024-11-25 11:23:01 +00:00
justin cd3efa9124 Make dragging behaviour consistent when dragging up and down
This causes a slight gap when dragging backwards and forwards over
large items
2024-11-25 11:19:51 +00:00
justin 2c6037d852 Fix dragging over items larger than the selection group
There is still a further choice/improvement to be made here,
but at least dragging shouldn't glitch out as it currently stands
2024-11-25 11:09:58 +00:00
justin 905be15a33 Tweak bounds for x over selection items 2024-11-25 10:06:13 +00:00
justin 2299ec374c Improve x position check over selection items 2024-11-25 10:03:19 +00:00
justin 9e0f0536e2 Readd space action on buttons 2024-11-24 23:34:03 +00:00
justin 7d2a4bf439 Cleanup 2024-11-24 22:36:00 +00:00
justin 82c53fc8e3 Continue inventory refactor 2024-11-24 22:08:36 +00:00
justin 81fcfea1be Refactor close objects hud display 2024-11-24 16:12:35 +00:00
justin e6c2b659fd Fix indentation display of indented sections 2024-11-24 14:07:54 +00:00
justin 5bea148556 Add section heads to selection sections 2024-11-24 13:24:46 +00:00
justin b2de834bb7 Move status to list on left of screen 2024-11-24 12:51:20 +00:00
justin 1427efedb2 Move towards removing some default display sections 2024-11-24 12:25:21 +00:00
justin 426b81abb9 Reintroduce section-wide indentation 2024-11-24 10:57:09 +00:00
justin 9529185319 Remove section-wide indentation 2024-11-24 10:52:20 +00:00
justin aca7ebd808 Cleanup 2024-11-24 09:47:32 +00:00
justin 896b452539 Refactor section sizing 2024-11-24 09:42:46 +00:00
justin 1e4fd1690f Commit before separating close objects/items 2024-11-23 09:50:30 +00:00
justin 13f5dd09c8 Separate selected item from extra selected items 2024-11-22 15:34:14 +00:00
justin bc2c9c9369 Continue mouse/inventory refactor 2024-11-22 10:33:49 +00:00
justin 1250e2442a Continue improving mouse|inventory interface 2024-11-21 21:04:07 +00:00
justin efef41c9e1 Inventory: allow selection and dropping by dragging while filtering 2024-11-20 19:58:24 +00:00
justin b750fe4186 Cleanup 2024-11-20 17:24:05 +00:00
justin a05511f6d8 Use IntSet for extra selection items 2024-11-20 16:52:03 +00:00
justin 1f5d034c5f Continue selection refactor 2024-11-20 16:15:51 +00:00
justin 3ecf137801 Incomplete work on mouse interaction with filtered inventory 2024-11-20 08:45:51 +00:00
justin 2dc5d35744 Allow dropping items by dragging off inventory 2024-11-19 22:24:03 +00:00
justin 13339c9a12 Tweak mouse over display 2024-11-19 12:51:50 +00:00
justin e31f6dfd4b Continue mouse refactor, add explicit release event/timer 2024-11-19 12:00:31 +00:00
justin 5b709cd7ba Continue mouse context refactor 2024-11-18 22:21:12 +00:00
justin 69fe28afe7 Cleanup 2024-11-18 11:02:12 +00:00
justin 3c5e5b92b1 Refactor code for initial mouse click in game 2024-11-18 11:00:41 +00:00
justin afddcae6d1 Add depth clear/check to fixed layer pictures 2024-11-17 20:01:17 +00:00
justin d5be125a3b Cleanup 2024-11-17 13:03:46 +00:00
justin 5b6c356bab Handle menu selection with mouse context, remove wheel scroll control 2024-11-17 12:32:05 +00:00
justin 53d8ca2861 Move towards moving menu selection list position to mouse context 2024-11-17 12:18:34 +00:00
justin e7ea5d7fa9 Allow for more changable terminal screen colors 2024-11-17 10:18:04 +00:00
justin a0431ff9a3 Remove possiblity of displayed but non-focussed terminal 2024-11-16 20:25:49 +00:00
justin 86f185c71e Determine mouse position over terminal display 2024-11-16 16:45:12 +00:00
justin 5efc9220e0 Continue hud/mouse refactor 2024-11-16 15:06:05 +00:00
justin 0621709f7b Tweak mouse context/cursors 2024-11-15 22:53:33 +00:00
justin 4434093d81 Cleanup 2024-11-10 23:20:48 +00:00
justin 713d3e3265 Centralise mouse context data 2024-11-10 18:26:30 +00:00
justin f35dfc66bd Commit before using central mouse context type 2024-11-10 17:56:50 +00:00
justin b48e949577 Allow use of esc and function keys when in terminal/other subinventories 2024-11-07 19:53:53 +00:00
justin 216d55865f Cleanup 2024-11-07 19:45:53 +00:00
justin efcd3bd84a Add terminal temporary screen light 2024-11-07 19:17:38 +00:00
justin cbc21dbca7 Add new sounds for combining/connecting items 2024-11-07 18:51:59 +00:00
justin ccc966d652 Improve terminal color possibilities 2024-11-07 18:51:18 +00:00
justin bfd4649e1b Refactor terminal prompt/maxlines into terminaltype 2024-11-06 11:16:35 +00:00
justin 6168bf282e Fix import 2024-11-05 21:15:44 +00:00
justin 7e1b5f0921 Start to refactor terminals 2024-11-05 21:14:53 +00:00
justin 79b03ef6ec Fix connecting sounds 2024-11-05 19:48:55 +00:00
justin ecbd51135b Add sounds when connecting/disconnecting items 2024-11-05 19:14:09 +00:00
justin 9b3518e4eb Correctly update root status of item in _ilIsRoot 2024-11-05 18:25:30 +00:00
justin 38ab6a35da Fix equipment equipping/moving with right click 2024-11-04 20:41:20 +00:00
justin 489ff21e12 Remove inventory selection on item drop/pickup 2024-11-04 19:45:12 +00:00
justin 3f9b31a838 Cleanup 2024-11-04 19:30:15 +00:00
justin 0237e655b5 Cleanup 2024-11-04 10:28:21 +00:00
justin 2a314d22e3 Fix combinations display 2024-11-04 10:19:53 +00:00
justin 0b43541080 Tweak combine inventory display/click events 2024-11-04 10:00:10 +00:00
justin df08dc8ab5 Tweak mouse pointer display 2024-11-04 09:32:36 +00:00
justin 1ed09fa8de Allow selecting using mouse click in combine inventory 2024-11-04 00:53:19 +00:00
justin c1b1611279 Record mouse over combination selections 2024-11-04 00:40:24 +00:00
justin fafef1275b Allow filtering of combinations with mouse click on inventory 2024-11-04 00:07:37 +00:00
justin adca54c1ef Tweak mouseover display to (partially) work during filtering 2024-11-03 20:52:00 +00:00
justin feec061aa6 Add separate function checking when inventory is filtered 2024-11-03 09:50:18 +00:00
justin 7bafb1e9e6 Add cursor at end of input filters 2024-11-02 21:56:28 +00:00
justin a25b62d77f Add more ascii characters
Will also add more characters from code page 437
2024-11-02 02:34:06 +00:00
justin 723dfafc18 Make inventory cursor change when dropping items sensible 2024-11-01 11:23:39 +00:00
justin de12f0ef34 Cleanup 2024-10-31 09:55:57 +00:00
justin a2dd10323c Remove _ssCursor 2024-10-31 09:55:12 +00:00
justin 79b0af228e Cleanup 2024-10-31 09:50:21 +00:00
justin 97c3f1262b Display root+tree selection when aiming 2024-10-28 14:26:09 +00:00
justin 53557965d0 Remove Either construct over invAdj 2024-10-26 15:03:45 +01:00
justin 6402ab11da Continue tweaking inventory display 2024-10-26 14:50:35 +01:00
justin e2f3d6a378 Improve inventory display 2024-10-26 10:53:36 +01:00
justin ae0f2fad0f Remove _decorations 2024-10-26 09:18:11 +01:00
justin f11dfe53db Cleanup 2024-10-26 09:15:56 +01:00
justin dc34172691 Unify regex/filtering code 2024-10-26 00:01:12 +01:00
justin 46ee29f646 Remove intmap over filters 2024-10-25 22:42:23 +01:00
justin d93c548d3c Remove SelectionSections 2024-10-25 22:19:04 +01:00
justin a20fc48eaa Move SSSExtra out of SelectionSections 2024-10-25 21:55:09 +01:00
justin 069392bd33 Commit before reorganising/removing SSSExtra 2024-10-25 21:35:43 +01:00
justin f6c136cfd6 Cleanup 2024-10-25 21:05:32 +01:00
justin 6424899afd Remove cursor type from ListDisplayParams 2024-10-25 17:41:37 +01:00
justin bd505b072a Make scrolling reduce selected items to 1 2024-10-25 12:50:36 +01:00
justin 90862b0c69 Cleanup 2024-10-25 12:43:18 +01:00
justin ec07e6b1a2 Prevent dragging items down from cycling to top 2024-10-25 12:31:05 +01:00
justin 4da5bfa497 Implement downwards inventory drag, buggy 2024-10-25 10:40:22 +01:00
justin 0c5a21765a Reimplement dragging upwards with mouse 2024-10-25 10:29:27 +01:00
justin 388064895f Decouple selection section inventory position 2024-10-24 14:55:51 +01:00
justin 81f4f38166 Move towards separating selection sections cursor position storage 2024-10-24 13:42:49 +01:00
justin 5ca440ca67 Start simplifying mouse inventory selection 2024-10-24 11:47:51 +01:00
justin 9e3d8ae6b0 Cleanup 2024-10-22 11:22:38 +01:00
justin 65f05b93f8 Cleanup compiler warnings 2024-10-22 10:48:44 +01:00
justin c0b1092fb6 Cleanup some compiler warnings 2024-10-22 10:33:14 +01:00
justin e2330618f2 Update stack lts 2024-10-22 10:07:13 +01:00
justin f6e32ff6ef Allow dragging of selected items in inventory 2024-10-20 11:32:37 +01:00
justin 8b6f5529ff Add 8-way cardinal/intercardinal datatype 2024-10-18 12:39:46 +01:00
justin d256bc0443 Highlight moused-over inventory items 2024-10-16 22:14:11 +01:00
justin cf0873d73b Start adding mouse control of inventory 2024-10-15 23:26:08 +01:00
justin e745238b8f Make weapon fail sound distinct 2024-10-08 20:55:59 +01:00
justin d1ee0f997a Fix attachment of augmented hud to laser 2024-10-08 17:36:00 +01:00
justin c0879393cd Remove non-laser item TARGETLASER 2024-10-08 17:07:31 +01:00
justin 72346093c7 Use item function in determining attachments 2024-10-08 16:46:09 +01:00
justin 685eaa3a04 Update inventory every tick (for close objects) 2024-10-08 16:05:37 +01:00
justin 9679f32618 Use constructed laser as targeting scope 2024-10-08 15:53:03 +01:00
justin da5a895f24 Cleanup 2024-10-08 10:47:31 +01:00
justin 30aa3aaaa1 Use fromDistinctAscList rather than fromAscList 2024-10-08 10:22:14 +01:00
justin 2d536a31c9 Cleanup 2024-10-08 10:17:50 +01:00
justin 7783108515 Make updateInventoryPositioning fire less often 2024-10-08 10:05:03 +01:00
justin 507c8e9819 Cleanup, remove inventory display update code on dropping item 2024-10-06 22:32:10 +01:00
justin 650854d13e Remove shrink gun 2024-10-06 22:09:55 +01:00
justin 597e8dd89d Rewrite of item color in inventory, runs slowly 2024-10-06 12:55:18 +01:00
justin 9860a88c0c Make lasGun have multiple functions when attached differently 2024-10-06 11:19:19 +01:00
justin 3b54f00cc7 Move towards using item structural function when using items 2024-10-05 20:53:50 +01:00
justin 7c324a03f6 Commit before using item structural function more prominently 2024-10-05 16:38:14 +01:00
justin 164beeea6d Implement zipper for attachment trees 2024-10-05 14:39:34 +01:00
justin 71d4802a4a Remove explicit muzzle flares for picture updated every frame 2024-10-04 01:31:04 +01:00
justin 075429088b Make anti-clockwise what were clockwise shapes, cleanup flash module-ing 2024-10-04 00:59:08 +01:00
justin ac550bc6a4 Add battery shape/picture 2024-10-04 00:25:44 +01:00
justin 127d85e7ce Cleanup constructors FooUse -> UseFoo 2024-10-03 20:39:41 +01:00
justin 6b4cf596b1 Cleanup triggertype 2024-10-03 11:43:14 +01:00
justin ce2f13ade3 Cleanup/remove trigger types code 2024-10-03 11:39:12 +01:00
justin 3c9941923d Fix bug in creature death drop/destruction ordering 2024-10-03 11:19:53 +01:00
justin 1953fb2d0c Cleanup, fix broken records in LeftUse 2024-10-03 10:34:17 +01:00
justin e88b3c7443 Cleanup 2024-10-03 10:25:08 +01:00
justin 91bf1bc62a Cleanup UseEquip constructor 2024-10-03 10:15:17 +01:00
justin 3b75ab73aa Cleanup code for your control 2024-10-03 10:08:13 +01:00
justin 844bb486e6 Make torch use battery power 2024-10-02 23:53:38 +01:00
justin 49ffbfafc2 Fix bug in attached item position orienting 2024-10-02 22:57:10 +01:00
justin 6bcd5bc591 Cleanup 2024-10-02 18:54:31 +01:00
justin effd89dc78 Cleanup, remove jetpack 2024-10-02 18:23:49 +01:00
justin bac57a702d Allow determination of attach item relative positions 2024-10-02 10:24:10 +01:00
justin 7ce5225491 Work on orienting positions for attachment items 2024-10-02 00:30:52 +01:00
justin 8df6b31062 Move towards being able to orient positions on attached items 2024-10-01 20:13:08 +01:00
justin fa4e117f93 Attempt to simplify attachment process 2024-10-01 15:34:53 +01:00
justin cb461963f0 Add file with function for making generic attachables 2024-10-01 14:29:53 +01:00
justin 15262c4817 Fix bug in remote screen 2024-10-01 14:29:39 +01:00
justin f90bbc1cd0 Work on AttachUse -> UseAttach 2024-10-01 14:21:40 +01:00
justin 36238669f5 Cleanup invLDT 2024-10-01 13:28:25 +01:00
justin ea353f8bcc Fully remove forcefieldgun 2024-10-01 13:20:55 +01:00
justin d357d5a03c Some cleanup of rendering/poking, remove forcefield gun 2024-10-01 13:19:34 +01:00
justin 6438da0037 Commit AFTER playing around with poking/vector sizing a little 2024-10-01 12:32:23 +01:00
justin 8348c1234c Cleanup 2024-10-01 10:33:15 +01:00
justin 87cbaf911f Cleanup combining code, flatten modules 2024-10-01 10:01:21 +01:00
justin f69d150e00 Cleanup 2024-10-01 02:46:18 +01:00
justin c4f3961672 Cleanup 2024-10-01 02:25:04 +01:00
justin dc44d20baf Cleanup 2024-10-01 01:50:15 +01:00
justin 5091709f70 Cleanup launcher code 2024-10-01 01:43:51 +01:00
justin 5a4f2711c8 Use strict tuples for SPics 2024-10-01 01:20:29 +01:00
justin a98ec80f59 Remove bottom and mid layer pictures 2024-10-01 00:37:31 +01:00
justin c3d112e52e Commit before attempting to remove bottom and mid picture layers 2024-10-01 00:16:46 +01:00
justin c2214dae60 Reenable mid layer rendering, may remove bottom layer rendering 2024-09-30 23:32:01 +01:00
justin 752b568a86 Work on orienting and drawing attachments 2024-09-30 23:02:22 +01:00
justin 48b8cfe7ef Cleanup 2024-09-30 21:32:51 +01:00
justin 74b518e10b Add file 2024-09-30 21:12:20 +01:00
justin b7d949c035 Draw cursor when targeting with HUD 2024-09-30 21:11:56 +01:00
justin d8d3a01f06 Allow for assigning attach items orientations 2024-09-30 16:09:56 +01:00
justin fd8adcea92 Cleanup, prepare ground to allow for drawing attached items 2024-09-30 15:09:21 +01:00
justin 18219d0bff Cleanup 2024-09-30 14:27:50 +01:00
justin 53e959e6cc Cleanup 2024-09-30 14:21:19 +01:00
justin 06cca549d9 Start removing tweakables 2024-09-30 14:07:20 +01:00
justin ad76359dcf Cleanup invSelectionItem 2024-09-30 13:17:10 +01:00
justin fc5539cb38 Cleanup 2024-09-30 12:54:31 +01:00
justin 65564c993b Cleanup 2024-09-30 12:03:23 +01:00
justin 9ad1b8cc5b Add file 2024-09-30 11:42:46 +01:00
justin 0701c4043e Remove (by commenting out) module item-type system 2024-09-30 11:42:10 +01:00
justin 4545caa7e6 Implement bullet trajectories using attachable items 2024-09-29 21:51:14 +01:00
justin 88c3e02459 Implement targeting launcher shells using separate item 2024-09-29 16:24:26 +01:00
justin 7d72fa3c5d Add newtype for item id int 2024-09-28 23:34:32 +01:00
justin 241191ee1b Move towards external targeting items 2024-09-28 23:01:50 +01:00
justin d1690ed3ac Cleanup 2024-09-27 23:10:01 +01:00
justin 6c3d0d5def Cleanup 2024-09-27 21:55:17 +01:00
justin dd6cbc0bfb Cleanup projectile creation 2024-09-27 14:14:58 +01:00
justin 21e49ddefc Unify launcher projectiles 2024-09-27 13:55:34 +01:00
justin 5f9fb183a9 Implement remote screen for launcher projectiles 2024-09-27 10:39:21 +01:00
justin fb6fcff61c Cleanup 2024-09-26 16:32:07 +01:00
justin 772886c8c6 Allow for more complex item composition 2024-09-26 00:00:46 +01:00
justin 61f07be08b Add prospective data types for more complex item attachments 2024-09-25 22:09:19 +01:00
justin 600b8cd309 Commit before changes to item grammar 2024-09-25 11:13:01 +01:00
justin f765b02f2c Fix bug in item item location 2024-09-24 22:29:25 +01:00
justin df80e87427 Cleanup, slight improvements to item location references 2024-09-24 22:05:20 +01:00
justin 25cec10313 Flatten values in creature manipulation data types 2024-09-24 21:50:21 +01:00
justin fe00af0e73 Extend inv item location information to include "attached" items 2024-09-24 21:26:26 +01:00
justin fbb60bf358 Delete redundant weapon chain effect code 2024-09-24 18:25:24 +01:00
justin 34c244a332 Fix bug in item loc when combining items, rethink centralizing item locs 2024-09-24 18:07:25 +01:00
justin a6eb5cf982 Commit before only putting item locations in single itemLocations intmap 2024-09-24 09:31:20 +01:00
justin 77e5f684aa Add file 2024-09-23 22:42:23 +01:00
justin 265da89791 Add newtype to floor item ids 2024-09-23 22:42:09 +01:00
justin 43b365185d Improve item location code, including some error detection 2024-09-23 14:33:14 +01:00
justin 3a08cf93f5 Add files 2024-09-23 13:12:25 +01:00
justin 5262355368 Fix bugs in item locations 2024-09-23 13:12:09 +01:00
justin 4f6431968c Improve item location code 2024-09-22 14:29:02 +01:00
justin 236f7c7750 Commit before tweaking item id/locations 2024-09-22 13:58:00 +01:00
justin efd3e17cbf Cleanup, think about removing creature "hammer" 2024-09-22 10:47:47 +01:00
justin 80e5c69489 Add file 2024-09-21 22:00:31 +01:00
justin 31b5db6e9e Distinguish between selected item and root-selected item 2024-09-21 21:59:53 +01:00
justin 2154abfb1d Add roots and parents to adjacency function from Double Trees 2024-09-21 20:30:29 +01:00
justin 86d8e3a98a (Re)Implement nozzle walking 2024-09-21 19:42:28 +01:00
justin 241f6fdf10 Cleanup 2024-09-21 19:06:43 +01:00
justin cb3288db45 Cleanup. Only update draw distance every 5 frames 2024-09-21 18:46:16 +01:00
justin 9df60d62ab Cleanup, only commented out char sequence scrolling code 2024-09-21 16:59:56 +01:00
justin 27e07a10c4 Make optical scope relative to camera rotation 2024-09-21 16:52:04 +01:00
justin 9dff2fcd7a Commit before partial cleanup, continue weapon effect refactor 2024-09-21 16:04:23 +01:00
justin bb18831393 Continue weapon refactor, gas combinations 2024-09-19 09:49:56 +01:00
justin 6f972bb316 Implement launcher using attachment weapon chain effects 2024-09-18 22:12:14 +01:00
justin 765e08117a Add more weapons to attachment chain effects 2024-09-18 19:06:57 +01:00
justin 2c96a514ea Continue weapon effect chain work
Start work on using muzzles to determine the effect of the ammo when
loaded
2024-09-18 00:36:28 +01:00
justin 791003ebb9 Implement burstRifle using attachment weapon chain 2024-09-17 11:05:34 +01:00
justin ecc63a70cc Fix bullet randomness (from eg bangCone) 2024-09-17 09:20:37 +01:00
justin e8c4c8eba4 Add file 2024-09-16 23:35:45 +01:00
justin e23c7a0154 Continue refactor of bullet gun effect chain 2024-09-16 23:34:54 +01:00
justin 40378d3de4 Add file 2024-09-16 19:27:49 +01:00
justin 1d1d1527e7 Continue weapon effect chain refactor 2024-09-16 19:27:21 +01:00
justin abc0dd1106 Partial refactor of bullet weapon effect chain 2024-09-16 13:05:59 +01:00
justin 6f372109d9 Start unifying heldUse and heldMods 2024-09-15 10:54:24 +01:00
justin cde7bc9aef Move towards working implementation of attachment tree ammo 2024-09-14 10:44:35 +01:00
justin 51e133ebc1 Commit before changes to item usage using attachment tree 2024-09-13 22:50:00 +01:00
justin 338d9e8422 Auto create tree structure for held item ammo, add derive instances 2024-09-13 17:34:29 +01:00
justin fb104a1719 Display basic tree of attachments in inventory 2024-09-13 16:19:17 +01:00
justin bd681a577c Move towards displaying tree links in inventory 2024-09-13 12:02:28 +01:00
justin c81fd5490d Cleanup 2024-09-13 09:43:56 +01:00
justin d2e1b054d0 Cleanup 2024-09-12 18:30:38 +01:00
justin e69abf1715 Implement simple indenting in selection menu 2024-09-12 18:14:52 +01:00
justin 4dedba8d30 Add file 2024-09-12 10:21:56 +01:00
justin 891fd0079c Allow for indentation of individual selection items 2024-09-12 10:21:35 +01:00
justin eddb313ea1 Simplify selection menu, remove overlapping 2024-09-11 16:39:56 +01:00
justin c72278f728 Commit before working on displaying composed items in inventory 2024-09-11 16:04:33 +01:00
justin 60c399935e Add link types to attachment tree 2024-09-11 11:33:08 +01:00
justin c80217a970 Child items set to be above xor below 2024-09-10 16:52:44 +01:00
justin 26f3610f82 Continue tree based inventory update 2024-09-10 16:35:44 +01:00
justin 854fc96ac7 Work on converting inventory list to tree 2024-09-10 14:31:36 +01:00
justin 52d0008441 Add files, move towards joining items in inventory 2024-09-09 23:13:00 +01:00
justin db4a6a10de Only display combinations for first items in list 2024-09-08 21:00:16 +01:00
justin 4de15d2c21 Allow item combination to use non-stacking items 2024-09-08 20:33:18 +01:00
justin 3dcf8de3c3 Move towards a non-stacking inventory 2024-09-08 20:13:43 +01:00
justin 86795f1a10 Commit before removing stackable items 2024-09-08 15:17:59 +01:00
justin 1006bb5529 Continue reload removal 2024-09-08 10:33:16 +01:00
justin e03c8dd830 Partial removal of reloading 2024-09-08 10:21:35 +01:00
justin 581d2494dc Commit before removing reloading
Reloading as a concept should be handled by positioning
magazines/tanks/ammo-stores next to items that consume ammo. Magazines
themselves could have various methods for refilling or recreating:
crafting, auto-refill over time (synthesis explanation), refill based on
external world objects, and perhaps other ideas.
2024-09-07 10:13:18 +01:00
justin 32cb2b2e80 Make launcherX use multiple ammo sources 2024-06-28 22:40:24 +01:00
justin 009a6cd30f Pass ammo magazine items to held item use chain 2024-06-25 15:50:22 +01:00
justin c723d1b1e1 Move around ammo source checks 2024-06-22 16:23:34 +01:00
justin 25cecb8ea6 Move shells to external magazines 2024-06-22 15:36:58 +01:00
justin e977673aa2 Remove old datatypes, change ammomag inv text colour 2024-06-22 12:15:10 +01:00
justin 8e127f0603 Make ammo magazines into own item type 2024-06-22 12:03:32 +01:00
justin 35a56eef56 Fix minigun inter-frame bullet speed 2024-06-22 11:42:33 +01:00
justin a9ac974a2c Move bullet modifications from weapons to magazines 2024-06-22 10:40:11 +01:00
justin a3eca3a674 Start moving bullet ammo parameters to more sensible places 2024-06-22 00:08:42 +01:00
justin 944b40cb56 Remove old ammo code, add magazines to some test loadouts 2024-06-21 23:24:26 +01:00
justin ecefba21d6 Implement reloading of single external magazines 2024-06-21 14:50:08 +01:00
justin 872e60438e Add loading cycles to magazines 2024-06-21 13:37:51 +01:00
justin 0a1b0386b9 Remove internal ammo 2024-06-21 12:48:41 +01:00
justin d41604fcde Mid implementation of external ammo sources 2024-06-20 22:58:52 +01:00
justin 7162893c4f Tweak lighting shaders, add commented versions without normal mapping 2024-06-20 16:33:23 +01:00
justin 935f09f08e Fix console item creation, fix tank object clockwise orientation 2024-06-11 14:19:31 +01:00
justin c862c862df Return to project, unsure about changes 2024-05-25 13:10:50 +01:00
justin 08716e8ade Add rotate to scope for (hopefully) all torque functions 2023-12-26 23:39:22 +00:00
justin 105de0d120 Add rotation to scope in two torque functions 2023-12-26 23:34:55 +00:00
justin 6ee1249b6d Add comment 2023-12-26 23:11:12 +00:00
justin 12c509a8b0 Split up your control functions 2023-12-26 23:08:44 +00:00
justin 9dafdb99f0 Make movement always directly responsive to WASD 2023-12-26 21:51:23 +00:00
justin 26c55ee7f5 Fix aiming with scope 2023-12-26 21:45:59 +00:00
justin 3b4bef944d Cleanup 2023-12-24 14:20:30 +00:00
justin 494db47945 Partially working attachable scope 2023-12-24 13:16:43 +00:00
justin 210787d2dc Broken commit 2023-12-23 15:14:02 +00:00
justin f26d380c1b Start implementing attachable scroll items 2023-11-08 18:39:38 +00:00
justin 8f0dd8cd1b Add files 2023-09-25 13:39:06 +01:00
justin 0a7f5079ad Work on weapon attachments 2023-09-25 13:38:47 +01:00
justin f9c6769262 Remove _itInvColor 2023-09-25 10:51:24 +01:00
justin 9ee925f13a Commit on returning to work 2023-09-21 09:17:49 +01:00
justin b8f03f7d8c Commit before moving to external weapon magazines 2023-05-30 11:07:30 +01:00
justin 02c34f99f1 Fix muzzle flare 2023-05-29 16:52:29 +01:00
justin 9283ae187f Fix scope rotation after torque 2023-05-28 16:22:54 +01:00
justin 24939094c6 Cleanup 2023-05-28 15:09:42 +01:00
justin 29017e6b06 Move handle positions 2023-05-28 15:02:23 +01:00
justin 7fc36ab028 Improve weapon handle offsets 2023-05-28 13:59:58 +01:00
justin 4b35a683af Tweak muzzle flare 2023-05-28 11:14:05 +01:00
justin 10c9e2261f Held item rclick use, tweak reload on lclick 2023-05-28 10:17:32 +01:00
justin ec8317c14e Work on held item usage 2023-05-27 12:32:09 +01:00
justin 4cfb7d431a Explicitly store list of barrels for weapons 2023-05-20 17:48:51 +01:00
justin 03611c6b95 Move towards unifying weapon barrels 2023-05-20 15:29:46 +01:00
justin f2183e9954 Cleanup 2023-05-20 15:06:05 +01:00
justin 6c71e1d5bb Cleanup 2023-05-20 00:44:54 +01:00
justin 938809a3a1 Continue to work on targeting inventory items 2023-05-20 00:34:23 +01:00
justin 6053bb059b Move targeting strings, broke targeting usage 2023-05-20 00:02:50 +01:00
justin 2d3b76dfd4 Move towards positional item targeting 2023-05-19 23:03:52 +01:00
justin 7cb17034f8 Add weapon fail fire sound 2023-05-19 21:18:50 +01:00
justin 297b4e0b3c Simplify and correct hammer check for held weapons 2023-05-19 20:00:11 +01:00
justin 17c79e7cee Cleanup and fix selection section cursor position bug 2023-05-19 19:29:37 +01:00
justin 03b793802f Cleanup, stop drawing space characters 2023-05-19 18:24:53 +01:00
justin 448669cd83 Fix cursor positioning in selection sections 2023-05-19 16:07:11 +01:00
justin 5604d7f1e3 Enable overlapping text in selection sections 2023-05-19 13:47:36 +01:00
justin ac87621640 Commit before extending selection sections: overlapping elements 2023-05-19 13:38:21 +01:00
justin 2f0bb5115b Commit before implementing positional inventory 2023-05-18 09:52:46 +01:00
justin 7df81559d9 Work towards adding external ammo sources 2023-05-17 11:01:52 +01:00
justin 63c71c852d Refresh mouse over in menu instantly 2023-05-15 15:08:25 +01:00
justin 05bc7c6655 Allow for equip/unequip with single left click 2023-05-15 12:11:15 +01:00
justin ddb72690b1 Cleanup 2023-05-15 11:57:54 +01:00
justin c4ec84c0f9 Further simplify right button options 2023-05-15 11:39:43 +01:00
justin 0e450f7bc7 Add file 2023-05-15 11:06:28 +01:00
justin a67e8667bc Simplify right button options 2023-05-15 11:06:13 +01:00
justin 0735b46266 Stop equip after combining 2023-05-15 06:46:09 +01:00
justin 1cec50c5ab Work on inventory ui 2023-05-14 22:22:21 +01:00
justin 3499384d38 Add file 2023-05-12 00:48:41 +01:00
justin 2d32eeb266 Tweak display when equiping 2023-05-12 00:48:07 +01:00
justin 6081f90f90 Cleanup rendering 2023-05-10 21:26:17 +01:00
justin 5f238a65d0 Cleanup 2023-05-10 20:32:26 +01:00
justin 312f342e09 Color scroll lines in inventory display 2023-05-10 18:01:14 +01:00
justin 69fbf5926a Fix mouse selection in menus 2023-05-10 12:37:36 +01:00
justin cc42a5e124 Work on mouse selection in options menu 2023-05-10 10:02:37 +01:00
justin ab714d63db Cleanup 2023-05-10 02:47:22 +01:00
justin 12aa1361eb Make parameters for display of list pictures more sensible 2023-05-10 02:25:38 +01:00
justin f569f3f173 Add file 2023-05-10 01:45:29 +01:00
justin cd42e29012 Work on cursor for lists 2023-05-10 01:44:42 +01:00
justin 93519345de Attempt to globally translate drawn lists 2023-05-09 00:58:03 +01:00
justin 865706df3b List rendering work 2023-05-05 10:22:46 +01:00
justin 988bb7591d Work on rendering lists 2023-05-05 09:58:12 +01:00
justin be37de18cb Add file 2023-05-05 02:37:36 +01:00
justin 03c3d34ea1 Attempt to simplify text positioning 2023-05-05 02:37:18 +01:00
justin 031af611cd Cleanup, stop assigning hotkeys to unequipped items 2023-05-05 01:59:40 +01:00
justin aeefbd4c40 Start move towards using assignable hotkeys for active equipment 2023-05-03 22:37:57 +01:00
justin 487280a475 Fix bug concerning effects when dropping items 2023-05-03 22:12:19 +01:00
justin d99d612e68 Reorganise 2023-05-03 20:03:05 +01:00
justin ff512348e0 Cleanup 2023-05-03 20:02:56 +01:00
justin 748e24137f Cleanup 2023-05-03 19:24:29 +01:00
justin 2a39497805 Implement more scrolling arguments in terminal 2023-05-03 19:06:29 +01:00
justin 727e5af2a6 Fix left clicks in terminals 2023-05-03 16:45:39 +01:00
justin 1d5f982fcc Add file 2023-05-03 11:19:59 +01:00
justin ed8d8f0e93 Work on terminals 2023-05-03 11:19:47 +01:00
justin 61f88aeb4a Cleanup 2023-05-01 22:35:33 +01:00
justin 7b8b8750a9 Fix zoom bug 2023-05-01 14:27:49 +01:00
justin 60e5e6ecae Add extra warning cries to chaseCrits 2023-05-01 14:01:27 +01:00
justin b34a9f5b09 Cleanup 2023-05-01 10:30:33 +01:00
justin 1a746adad2 Add file 2023-05-01 10:27:16 +01:00
justin d0534e6fa3 Remove push damage types, push and torque done through dam effects 2023-05-01 10:26:48 +01:00
justin 06608c60bf Tweak chaseCrit melee striking 2023-05-01 10:21:03 +01:00
580 changed files with 1619792 additions and 14726 deletions
+1
View File
@@ -0,0 +1 @@
:set prompt ">"
+1
View File
@@ -0,0 +1 @@
--command "stack ghci --main-is loop:exe:dodge"
+8 -3
View File
@@ -22,7 +22,6 @@ import Dodge.TestString
import Dodge.Update
--import qualified IntMapHelp as IM
import Loop
import Music
--import Picture
import Preload
import Preload.Render
@@ -34,6 +33,7 @@ import qualified SDL
import Sound
import System.Directory
main :: IO ()
main = do
-- load the config to get the window size and position
@@ -95,7 +95,10 @@ firstWorldLoad theConfig = do
, _uvFrameTicks = 0
, _uvRAMSave = Nothing
, _uvDebug = mempty
, _uvDebugFloat1 = 10
, _uvDebugFloat2 = 0
, _uvDebugMessageOffset = 0
, _uvSoundQueue = mempty
}
return $ u & uvScreenLayers .~ [splashMenu u]
@@ -117,6 +120,7 @@ playSoundUnlessRewinding u = case w ^. timeFlow of
doSideEffects :: Universe -> IO Universe
doSideEffects u = do
newPlayingSounds <- playSoundUnlessRewinding u
playSoundQueue (_soundData $ _preloadData u) (fmap _getSoundID $ u ^. uvSoundQueue)
u' <- _uvIOEffects u u
endTicks <- SDL.ticks
return $
@@ -126,6 +130,7 @@ doSideEffects u = do
& uvWorld . playingSounds .~ newPlayingSounds
& uvWorld . toPlaySounds .~ M.empty
& uvIOEffects .~ return
& uvSoundQueue .~ mempty
doPreload :: IO PreloadData
doPreload = do
@@ -140,7 +145,7 @@ doPreload = do
return
PreloadData
{ _renderData = rData
, _soundData = SoundData{_loadedChunks = lChunks}
, _soundData = lChunks
--, _musicData = MusicData{_loadedMusic = lMusic}
, _musicData = MusicData{_loadedMusic = undefined}
, _musicData = mempty
}
+483
View File
@@ -0,0 +1,483 @@
{- |
Weapon effects when pulling the trigger. -}
module Dodge.Item.Weapon.TriggerType
where
import Dodge.Data
import Dodge.SoundLogic
import Dodge.Creature.Action (startReloadingWeapon)
import Dodge.WorldEvent (muzzleFlashAt,tempLightForAt)
import Dodge.WorldEvent.Cloud
import Dodge.RandomHelp
import Dodge.Particle.Bullet.Spawn
import Dodge.Item.Attachment.Data
import Dodge.Item.Data
import Geometry
import System.Random
import Control.Lens
import Control.Monad.State
import Data.Maybe
import qualified Data.IntMap.Strict as IM
import Data.Foldable
withThinSmoke
:: (Creature -> World -> World) -- ^ Underlying effect
-> Creature
-> World
-> World
withThinSmoke eff cr w = eff cr $ foldl' (flip $ makeThinSmokeAt . (+.+ pos)) w ps
where
dir = _crDir cr
pos = _crPos cr +.+ (_crRad cr +0.5) *.* unitVectorAtAngle dir
ps = (replicateM 5 . randInCirc) 8 & evalState $ _randGen w
withThickSmoke
:: (Creature -> World -> World) -- ^ Underlying effect
-> Creature
-> World
-> World
withThickSmoke eff cr w = eff cr $ foldl' (flip $ makeThickSmokeAt . (+.+ pos)) w ps
where
dir = _crDir cr
pos = _crPos cr +.+ (_crRad cr + 15) *.* unitVectorAtAngle dir
ps = (replicateM 20 . randInCirc) 8 & evalState $ _randGen w
{- |
Fires at an increasing rate.
Has different effect after first fire.
Applies ammo check and use cooldown check. -}
rateIncAB
:: Int -- ^ Start rate
-> Int -- ^ End rate
-> (Creature -> World -> World) -- ^ Effect on first fire
-> (Creature -> World -> World) -- ^ Effect on continued fire
-> Creature -- ^ Creature id
-> World
-> World
rateIncAB startRate fastRate shooteff1 shooteff2 cr w
| repeatFire = w
& pointItem %~ ( (itUseRate .~ max fastRate (currentRate - 1))
. (wpLoadedAmmo -~ 1)
. (itUseTime .~ currentRate) )
& shooteff2 cr
| firstFire = w
& pointItem %~ ( (itUseRate .~ startRate - 1)
. (wpLoadedAmmo -~ 1)
. (itUseTime .~ startRate) )
& shooteff1 cr
| reloadCondition = fromMaybe w $ startReloadingWeapon cr w
| otherwise = w
where
cid = _crID cr
itRef = _crInvSel cr
item = _crInv cr IM.! itRef
pointItem = creatures . ix cid . crInv . ix itRef
currentRate = _itUseRate item
repeatFire = _wpReloadState item == 0
&& _itUseTime item == 1
&& _wpLoadedAmmo item > 0
firstFire = _wpReloadState item == 0
&& _itUseTime item == 0
&& _wpLoadedAmmo item > 0
reloadCondition = _wpLoadedAmmo item == 0
{- |
Shoot a weapon rapidly after a warm up.
Applies ammo check as well. -}
withWarmUp
:: Int -- ^ Warm up time (in frames)
-> (Creature -> World -> World)
-- ^ Shoot effect
-> Creature
-> World
-> World
withWarmUp t f cr w
| reloadCondition = fromMaybe w $ startReloadingWeapon cr w
| _wpReloadState item /= 0 = w
| fState == 0 = w
& pointerToItem %~ ( (itUse .~ (\_ -> withWarmUp 100 f)) . (itUseTime .~ 2) )
| t > 2 = w
& pointerToItem %~ ( (itUse .~ (\_ -> withWarmUp (t-1) f)) . (itUseTime .~ 2) )
& soundFrom (CrWeaponSound cid) 26 2 0
| t > 0 = w
& pointerToItem %~ ( (itUse .~ (\_ -> withWarmUp (t-1) f)) . (itUseTime .~ 2) )
| otherwise = w
& pointerToItem %~ ( (itUse .~ (\_ -> withWarmUp 1 f)) . (wpLoadedAmmo -~ 1) . (itUseTime .~ 2) )
& f cr
& soundFrom (CrWeaponSound cid) 28 2 0
where
cid = _crID cr
itRef = _crInvSel cr
item = _crInv cr IM.! itRef
pointerToItem = creatures . ix cid . crInv . ix itRef
fState = _itUseTime item
reloadCondition = _wpLoadedAmmo item == 0
{- | Adds a sound to a creature based world effect.
The sound is emitted from the creature's position. -}
withSound
:: Int -- ^ Sound id
-> (Creature -> World -> World) -- ^ Underlying effect
-> Creature
-> World -> World
withSound soundid f cr = soundOncePos soundid (_crPos cr) . f cr
withRecoil
:: Float -- ^ Recoil amount
-> (Creature -> World -> World)
-- ^ Underlying world effect, takes creature id as input
-> Creature
-> World -> World
withRecoil recoilAmount eff cr = eff cr . over (creatures . ix cid) pushback
where
cid = _crID cr
pushback = over crPos (+.+ rotateV (_crDir cr) (V2 ((-recoilAmount) / _crMass cr ) 0))
{- | Pushes a creature sideways by a random amount.
Applied before the underlying effect. -}
withSidePush
:: Float -- ^ Maximal possible side push amount
-> (Creature -> World -> World)
-- ^ Underlying world effect, takes creature id as input
-> Creature
-> World -> World
withSidePush maxSide eff cr w = eff cr . over (creatures . ix cid) push $ w
where
cid = _crID cr
push = over crPos (+.+ rotateV (_crDir cr) (V2 0 (pushAmount / _crMass cr)))
(pushAmount, _) = randomR (-maxSide,maxSide) $ _randGen w
-- consider unifying the pushes using a direction vector
{- | Pushes a creature sideways by a random amount.
Applied after the underlying effect. -}
withSidePushAfter
:: Float -- ^ Maximal possible side push amount
-> (Creature -> World -> World)
-- ^ Underlying world effect, takes creature id as input
-> Creature -- ^ Creature id
-> World -> World
withSidePushAfter maxSide eff cr w = over (creatures . ix cid) push . eff cr $ w
where
cid = _crID cr
push = over crPos (+.+ rotateV (_crDir cr) (V2 0 (pushAmount / _crMass cr)))
(pushAmount, _) = randomR (-maxSide,maxSide) $ _randGen w
{- | Applies a world effect and sound effect after an ammo check. -}
shootWithSound
:: Int -- ^ Sound identifier
-> (Creature -> World -> World)
-- ^ Shoot effect, takes creature id as input
-> Creature
-> World
-> World
shootWithSound soundid f cr w
| fireCondition = over (pointerToItem . wpLoadedAmmo) (\ammo -> ammo-1)
$ soundOncePos soundid (_crPos cr)
$ set (pointerToItem . itUseTime) (_itUseRate item)
$ f cr w
| reloadCondition = fromMaybe w $ startReloadingWeapon cr w
| otherwise = w
where
cid = _crID cr
itRef = _crInvSel cr
item = _crInv cr IM.! itRef
pointerToItem = creatures . ix cid . crInv . ix itRef
fireCondition = _wpReloadState item == 0
&& _itUseTime item == 0
&& _wpLoadedAmmo item > 0
reloadCondition = _wpLoadedAmmo item == 0
{- | Applies a world effect and sound effect after an ammo check. -}
shootWithSoundI
:: Int -- ^ Sound identifier
-> (Item -> Creature -> World -> World)
-- ^ Shoot effect, takes creature id as input
-> Item
-> Creature
-> World
-> World
shootWithSoundI soundid f item cr w
| fireCondition = over (pointerToItem . wpLoadedAmmo) (\ammo -> ammo-1)
$ soundOncePos soundid (_crPos cr)
$ set (pointerToItem . itUseTime) (_itUseRate item)
$ f item cr w
| reloadCondition = fromMaybe w $ startReloadingWeapon cr w
| otherwise = w
where
cid = _crID cr
itRef = _crInvSel cr
pointerToItem = creatures . ix cid . crInv . ix itRef
fireCondition = _wpReloadState item == 0
&& _itUseTime item == 0
&& _wpLoadedAmmo item > 0
reloadCondition = _wpLoadedAmmo item == 0
{- |
Applies a world effect after an item use cooldown check. -}
useTimeCheck
:: (Creature -> World -> World) -- ^ Underlying effect
-> Creature
-> World
-> World
useTimeCheck f cr w = case theItem ^? itUseTime of
Just 0 -> f cr $ setUseTime w
_ -> w
where
cid = _crID cr
setUseTime = creatures . ix cid . crInv . ix (_crInvSel cr) . itUseTime +~ useRate
theItem = _crInv cr IM.! _crInvSel cr
useRate = fromMaybe 0 $ theItem ^? itUseRate
{- | Applies a world effect after a hammer position check. -}
hammerCheck
:: (Creature -> World -> World) -- ^ Underlying effect
-> Creature
-> World
-> World
hammerCheck f cr w = case (_crInv cr IM.! _crInvSel cr) ^? itHammer of
Just HammerUp -> f cr $ setHammerDown w
_ -> setHammerDown w
where
cid = _crID cr
setHammerDown = creatures . ix cid . crInv . ix (_crInvSel cr) . itHammer .~ HammerDown
{- | Applies a world effect after a hammer position check. -}
hammerCheckI
:: (Item -> Creature -> World -> World) -- ^ Underlying effect
-> Item
-> Creature
-> World
-> World
hammerCheckI f it cr w = case it ^? itHammer of
Just HammerUp -> f it cr $ setHammerDown w
_ -> setHammerDown w
where
cid = _crID cr
setHammerDown = creatures . ix cid . crInv . ix (_crInvSel cr) . itHammer .~ HammerDown
{- | Applies a world effect after an ammo check. -}
shoot
:: (Creature -> World -> World)
-- ^ Underlying effect
-> Creature
-> World
-> World
shoot f cr w
| fireCondition = f cr w & pointerToItem %~
( (wpLoadedAmmo -~ 1) . (itUseTime .~ _itUseRate item) )
| reloadCondition = fromMaybe w $ startReloadingWeapon cr w
| otherwise = w
where
cid = _crID cr
itRef = _crInvSel cr
item = _crInv cr IM.! itRef
pointerToItem = creatures . ix cid . crInv . ix itRef
fireCondition = _wpReloadState item == 0
&& _itUseTime item == 0
&& _wpLoadedAmmo item > 0
reloadCondition = _wpLoadedAmmo item == 0
{- | Applies a world effect after a hammer position check.
Arbitrary inventory position. -}
hammerCheckL
:: (Creature -> Int -> World -> World) -- ^ Underlying effect
-> Creature
-> Int
-> World
-> World
hammerCheckL f cr invid w = case (_crInv cr IM.! invid) ^? itHammer of
Just HammerUp -> f cr invid $ setHammerDown w
_ -> setHammerDown w
where
cid = _crID cr
setHammerDown = creatures . ix cid . crInv . ix invid . itHammer .~ HammerDown
{- | Applies a world effect after an ammo check.
Arbitrary inventory position. -}
shootL
:: (Creature -> Int -> World -> World)
-- ^ Underlying effect
-> Creature
-> Int -- ^ Inventory position
-> World
-> World
shootL f cr invid w
| fireCondition = f cr invid w & pointerToItem %~
( (wpLoadedAmmo -~ 1) . (itUseTime .~ _itUseRate item) )
| reloadCondition = fromMaybe w $ startReloadingWeapon cr w
| otherwise = w
where
cid = _crID cr
item = _crInv cr IM.! invid
pointerToItem = creatures . ix cid . crInv . ix invid
fireCondition = _wpReloadState item == 0
&& _itUseTime item == 0
&& _wpLoadedAmmo item > 0
reloadCondition = _wpLoadedAmmo item == 0
withMuzFlare
:: (Creature -> World -> World) -- ^ Underlying effect
-> Creature
-> World
-> World
withMuzFlare f cr w = tempLightForAt 3 pos . muzzleFlashAt pos2 $ f cr w
where
pos = _crPos cr +.+ _crRad cr *.* unitVectorAtAngle (_crDir cr)
pos2 = _crPos cr +.+ (2 * _crRad cr) *.* unitVectorAtAngle (_crDir cr)
withMuzFlareI
:: (Item -> Creature -> World -> World) -- ^ Underlying effect
-> Item
-> Creature
-> World
-> World
withMuzFlareI f it cr w = tempLightForAt 3 pos . muzzleFlashAt pos2 $ f it cr w
where
pos = _crPos cr +.+ _crRad cr *.* unitVectorAtAngle (_crDir cr)
pos2 = _crPos cr +.+ (2 * _crRad cr) *.* unitVectorAtAngle (_crDir cr)
{- | Applies the effect to a randomly rotated creature. -}
withRandomDir
:: Float -- ^ Max possible rotation
-> (Creature -> World -> World)
-- ^ Underlying effect
-> Creature
-> World
-> World
withRandomDir acc f cr w = f (cr & crDir +~ a) $ set randGen g w
where
(a, g) = randomR (-acc,acc) $ _randGen w
{- | Applies the effect to a randomly rotated creature. -}
withRandomDirI
:: Float -- ^ Max possible rotation
-> (Item -> Creature -> World -> World)
-- ^ Underlying effect
-> Item
-> Creature
-> World
-> World
withRandomDirI acc f it cr w = f it (cr & crDir +~ a) $ set randGen g w
where
(a, g) = randomR (-acc,acc) $ _randGen w
{- | Creates a bullet with a given velocity, width, and 'HitEffect' -}
withVelWthHiteff
:: Point2 -- ^ Velocity, x direction is forward with respect to the creature
-> Float -- ^ Bullet width
-> HitEffect -- ^ Bullet effect when hitting creature, wall etc
-> Creature -- ^ Creature id
-> World
-> World
withVelWthHiteff vel width hiteff cr = over particles (newbul : )
where
cid = _crID cr
newbul = aGenBulAt (Just cid) pos (rotateV dir vel) hiteff width
dir = _crDir cr
pos = _crPos cr +.+ _crRad cr *.* unitVectorAtAngle (_crDir cr)
{- | Apply the effect to a translated creature. -}
withRandomOffset
:: Float -- ^ Max possible translate
-> (Creature -> World -> World)
-- ^ Underlying effect
-> Creature
-> World
-> World
withRandomOffset offsetAmount f cr w = f (cr & crPos %~ (+.+ offV)) $ set randGen g w
where
(offsetVal , g) = randomR (-offsetAmount,offsetAmount) $ _randGen w
offV = rotateV (_crDir cr) (V2 0 offsetVal)
-- | Rotates a creature with minimum rotation at least 0.1.
-- Rotates the player creature before applying the effect, other creatures after.
torqueBeforeForced
:: Float -- ^ Max possible rotation (less the 0.1 forced rotation)
-> (Creature -> World -> World)
-- ^ Underlying effect
-> Creature
-> World
-> World
torqueBeforeForced torque feff cr w
| cid == 0 = feff (cr & crDir +~ rot') $ w
& randGen .~ g
& creatures . ix cid . crDir +~ rot'
& cameraRot +~ rot'
| otherwise = feff cr $ set randGen g $ over (creatures . ix cid . crDir) (+rot') w
where
cid = _crID cr
(rot, g) = randomR (-torque,torque) $ _randGen w
rot' | rot < 0 = rot - 0.1
| otherwise = rot + 0.1
-- | Rotates the player creature before applying an effect.
-- Note this currently (29/4/2021) rotates other creatures /after/ applying the effect.
torqueBefore
:: Float -- ^ Max possible rotation
-> (Creature -> World -> World) -- ^ Underlying effect
-> Creature -- ^ Creature id
-> World
-> World
torqueBefore torque feff cr w
| cid == 0 = feff (cr & crDir +~ rot) $ w
& randGen .~ g
& creatures . ix cid . crDir +~ rot
& cameraRot +~ rot
| otherwise = set randGen g $ over (creatures . ix cid . crDir) (+rot) $ feff cr w
where
cid = _crID cr
(rot, g) = randomR (-torque,torque) $ _randGen w
-- | Rotate a randomly creature after applying an effect.
torqueAfter
:: Float -- ^ Max possible rotation
-> (Creature -> World -> World) -- ^ Underlying effect
-> Creature -- ^ Creature id
-> World
-> World
torqueAfter torque feff cr w
| cid == 0 = rotateScope $ set randGen g $ over cameraRot (+rot) $ feff cr w
| otherwise = set randGen g $ over (creatures . ix cid . crDir) (+rot) $ feff cr w
where
cid = _crID cr
(rot, g) = randomR (-torque,torque) $ _randGen w
rotateScope = creatures . ix 0 . crInv . ix (_crInvSel (_creatures w IM.! 0))
. itAttachment . _Just . scopePos %~ rotateV rot
{- | Create multiple bullets with a given spread, a given amount, given velocity,
given width and given 'HitEffect'. -}
spreadNumVelWthHiteff
:: Float -- ^ Spread
-> Int -- ^ Number of bullets
-> Point2 -- ^ Velocity, x is direction of creature
-> Float -- ^ Bullet width
-> HitEffect -- ^ Effect when hitting creature, wall etc
-> Creature -- ^ Creature id
-> World
-> World
spreadNumVelWthHiteff spread num vel wth eff cr w = over particles (newbuls ++) w
where
cid = _crID cr
newbuls = zipWith
(\pos d -> aGenBulAt (Just cid) pos (rotateV d vel) eff wth)
poss dirs
poss = map ((+.+) $ _crPos cr +.+ _crRad cr *.* unitVectorAtAngle (_crDir cr))
$ (replicateM num . randInCirc) 5 & evalState $ _randGen w
dirs = map (_crDir cr +) $ zipWith (+)
[-spread,-spread+(2*spread/fromIntegral num)..]
(randomRs (0,spread/5) (_randGen w))
{- | Create a number of bullets side by side with a given velocity,
given width and given 'HitEffect'. -}
numVelWthHitEff
:: Int -- ^ Amount of bullets
-> Point2 -- ^ Velocity, x axis is direction of creature
-> Float -- ^ Bullet width
-> HitEffect -- ^ Effect when hitting creature, wall etc
-> Creature
-> World
-> World
numVelWthHitEff num vel wth eff cr = over particles (newbuls ++)
where
cid = _crID cr
newbuls = map (\p -> aGenBulAt (Just cid) p (rotateV d vel) eff wth) poss
d = _crDir cr
poss = map (+.+ pos) $ take num offsets
maxOffset = fromIntegral num * 2.5 - 2.5
offsets = map (rotateV d . V2 0) [-maxOffset,5-maxOffset..]
pos = _crPos cr +.+ _crRad cr *.* unitVectorAtAngle d
{- | Uses '_wpSpread' as a parameter for the current offset angle. -}
randWalkAngle
:: Float -- ^ Max offset angle
-> Float -- ^ Walk speed
-> (Creature -> World -> World) -- ^ Underlying effect
-> Creature -- ^ Creature id
-> World
-> World
randWalkAngle ma aspeed f cr w = w
& f (cr & crDir +~ a)
& creatures . ix cid . crInv . ix i . wpSpread .~ newa
where
cid = _crID cr
a = _wpSpread $ _crInv (_creatures w IM.! cid) IM.! i
(walka, _) = randomR (-aspeed,aspeed) (_randGen w)
newa = min ma $ max (negate ma) (a + walka)
i = _crInvSel $ _creatures w IM.! cid
BIN
View File
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

+25
View File
@@ -0,0 +1,25 @@
{
"_debug_booleans": [
"Show_ms_frame",
"Mouse_position",
"Collision_test"
],
"_debug_view_clip_bounds": "NoRoomClipBoundaries",
"_gameplay_rotate_to_wall": true,
"_graphics_bloom": true,
"_graphics_cloud_shadows": true,
"_graphics_distortion_resolution": "FullRes",
"_graphics_distortions": true,
"_graphics_downsize_resolution": "EighthRes",
"_graphics_num_shadow_casters": "NumShadowCasters20",
"_graphics_shadow_rendering": "GeoObjShads",
"_graphics_shadow_size": "Typical",
"_graphics_world_resolution": "QuarterRes",
"_volume_master": 1,
"_volume_music": 0,
"_volume_sound": 1,
"_windowPosX": 0,
"_windowPosY": 29,
"_windowX": 800,
"_windowY": 835
}
Binary file not shown.
Binary file not shown.
+26
View File
@@ -0,0 +1,26 @@
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE project PUBLIC "-//audacityproject-1.3.0//DTD//EN" "http://audacity.sourceforge.net/xml/audacityproject-1.3.0.dtd" >
<project xmlns="http://audacity.sourceforge.net/xml/" projname="reload_data" version="1.3.0" audacityversion="2.2.1" sel0="1.0000000000" sel1="1.0000000000" vpos="80" h="0.0000000000" zoom="619.9769053118" rate="44100.0" snapto="on" selectionformat="hh:mm:ss + milliseconds" frequencyformat="Hz" bandwidthformat="octaves">
<tags/>
<wavetrack name="Audio Track" channel="2" linked="0" mute="0" solo="0" height="150" minimized="0" isSelected="0" rate="44100" gain="1.0" pan="0.0" colorindex="0"/>
<wavetrack name="Audio Track" channel="0" linked="1" mute="0" solo="0" height="150" minimized="0" isSelected="1" rate="44100" gain="1.0" pan="0.0" colorindex="0">
<waveclip offset="0.00000000" colorindex="0">
<sequence maxsamples="262144" sampleformat="262159" numsamples="44100">
<waveblock start="0">
<simpleblockfile filename="e0002ad8.au" len="44100" min="-0.626438" max="0.756957" rms="0.050527"/>
</waveblock>
</sequence>
<envelope numpoints="0"/>
</waveclip>
</wavetrack>
<wavetrack name="Audio Track" channel="1" linked="0" mute="0" solo="0" height="150" minimized="0" isSelected="1" rate="44100" gain="1.0" pan="0.0" colorindex="0">
<waveclip offset="0.00000000" colorindex="0">
<sequence maxsamples="262144" sampleformat="262159" numsamples="44100">
<waveblock start="0">
<simpleblockfile filename="e0002124.au" len="44100" min="-0.626438" max="0.756957" rms="0.050527"/>
</waveblock>
</sequence>
<envelope numpoints="0"/>
</waveclip>
</wavetrack>
</project>
+25
View File
@@ -0,0 +1,25 @@
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE project PUBLIC "-//audacityproject-1.3.0//DTD//EN" "http://audacity.sourceforge.net/xml/audacityproject-1.3.0.dtd" >
<project xmlns="http://audacity.sourceforge.net/xml/" projname="tap_data" version="1.3.0" audacityversion="2.2.1" sel0="0.0000000000" sel1="0.2786394558" vpos="0" h="0.0000000000" zoom="86.1328125000" rate="44100.0" snapto="off" selectionformat="hh:mm:ss + milliseconds" frequencyformat="Hz" bandwidthformat="octaves">
<tags/>
<wavetrack name="Audio Track" channel="0" linked="1" mute="0" solo="0" height="161" minimized="0" isSelected="1" rate="44100" gain="1.0" pan="0.0" colorindex="0">
<waveclip offset="0.00000000" colorindex="0">
<sequence maxsamples="262144" sampleformat="262159" numsamples="12288">
<waveblock start="0">
<simpleblockfile filename="e000077f.au" len="12288" min="-10.632122" max="11.905688" rms="0.574985"/>
</waveblock>
</sequence>
<envelope numpoints="0"/>
</waveclip>
</wavetrack>
<wavetrack name="Audio Track" channel="1" linked="0" mute="0" solo="0" height="139" minimized="0" isSelected="1" rate="44100" gain="1.0" pan="0.0" colorindex="0">
<waveclip offset="0.00000000" colorindex="0">
<sequence maxsamples="262144" sampleformat="262159" numsamples="12288">
<waveblock start="0">
<simpleblockfile filename="e0000254.au" len="12288" min="-11.171772" max="11.837081" rms="0.58168"/>
</waveblock>
</sequence>
<envelope numpoints="0"/>
</waveclip>
</wavetrack>
</project>
+73
View File
@@ -0,0 +1,73 @@
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE project PUBLIC "-//audacityproject-1.3.0//DTD//EN" "http://audacity.sourceforge.net/xml/audacityproject-1.3.0.dtd" >
<project xmlns="http://audacity.sourceforge.net/xml/" projname="twoStep_data" version="1.3.0" audacityversion="2.2.1" sel0="0.0000000000" sel1="0.7800000000" vpos="0" h="0.2878780178" zoom="1639.5833333333" rate="44100.0" snapto="on" selectionformat="hh:mm:ss + milliseconds" frequencyformat="Hz" bandwidthformat="octaves">
<tags/>
<wavetrack name="twoStep" channel="2" linked="0" mute="0" solo="0" height="150" minimized="0" isSelected="1" rate="44100" gain="1.0" pan="0.0" colorindex="0">
<waveclip offset="0.15000000" colorindex="0">
<sequence maxsamples="262144" sampleformat="262159" numsamples="13892">
<waveblock start="0">
<simpleblockfile filename="e00004be.au" len="13892" min="-0.124176" max="0.095367" rms="0.007066"/>
</waveblock>
</sequence>
<envelope numpoints="0"/>
</waveclip>
<waveclip offset="0.61501134" colorindex="0">
<sequence maxsamples="262144" sampleformat="262159" numsamples="7276">
<waveblock start="0">
<simpleblockfile filename="e00007db.au" len="7276" min="-0.186249" max="0.163513" rms="0.017523"/>
</waveblock>
</sequence>
<envelope numpoints="0"/>
</waveclip>
</wavetrack>
<wavetrack name="Audio Track" channel="2" linked="0" mute="0" solo="0" height="150" minimized="0" isSelected="1" rate="44100" gain="1.0" pan="0.0" colorindex="0">
<waveclip offset="0.56501134" colorindex="0">
<sequence maxsamples="262144" sampleformat="262159" numsamples="2205">
<waveblock start="0">
<silentblockfile len="2205"/>
</waveblock>
</sequence>
<envelope numpoints="0"/>
</waveclip>
<waveclip offset="0.00000000" colorindex="0">
<sequence maxsamples="262144" sampleformat="262159" numsamples="2205">
<waveblock start="0">
<silentblockfile len="2205"/>
</waveblock>
</sequence>
<envelope numpoints="0"/>
</waveclip>
<waveclip offset="0.05000000" colorindex="0">
<sequence maxsamples="262144" sampleformat="262159" numsamples="2205">
<waveblock start="0">
<silentblockfile len="2205"/>
</waveblock>
</sequence>
<envelope numpoints="0"/>
</waveclip>
<waveclip offset="0.51501134" colorindex="0">
<sequence maxsamples="262144" sampleformat="262159" numsamples="2205">
<waveblock start="0">
<silentblockfile len="2205"/>
</waveblock>
</sequence>
<envelope numpoints="0"/>
</waveclip>
<waveclip offset="0.10000000" colorindex="0">
<sequence maxsamples="262144" sampleformat="262159" numsamples="2205">
<waveblock start="0">
<silentblockfile len="2205"/>
</waveblock>
</sequence>
<envelope numpoints="0"/>
</waveclip>
<waveclip offset="0.46501134" colorindex="0">
<sequence maxsamples="262144" sampleformat="262159" numsamples="2205">
<waveblock start="0">
<silentblockfile len="2205"/>
</waveblock>
</sequence>
<envelope numpoints="0"/>
</waveclip>
</wavetrack>
</project>
Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.
+42
View File
@@ -0,0 +1,42 @@
X_RANGE 38.37
Y_RANGE 9447512.00
ORDER OTHER 1
ORDER (157697)#..\/#./targetYouWhenCognizant/updateHumanoid/updateCreature/dimap/dimap/_Wrapped'/updateIMl'/fu... 2
ORDER (165654)updateCloud.finalPos/updateCloud/updateObjCatMaybes.(...)/updateObjCatMaybes/updateClouds/functi... 3
ORDER (165606)updateCloud.finalVel/updateCloud/updateObjCatMaybes.(...)/updateObjCatMaybes/updateClouds/functi... 4
ORDER (155261)plLineBlock.makePane/plLineBlock.makeWallAt/plLineBlock.insertBlock/plLineBlock.insertBlocks/plL... 5
ORDER (157606)#..\/#./performActions/updateHumanoid/updateCreature/dimap/dimap/_Wrapped'/updateIMl'/functional... 6
ORDER (157522)updateHumanoid/updateCreature/dimap/dimap/_Wrapped'/updateIMl'/functionalUpdate/timeFlowUpdate/u... 7
ORDER (144146)ix/crSetRoots/crUpdateItemLocations/scrollAugNextInSection/checkInventorySelectionExists/updateI... 8
ORDER (157678)chaseCritAwarenessUpdate/chaseCritPerceptionUpdate/chainCreatureUpdates.unf/chainCreatureUpdates... 9
ORDER (159529)updateExpBarrel.applyFuseDamage/updateExpBarrel.newCr/#..\/#./updateExpBarrel/updateBarreloid/up... 10
ORDER (165621)updateCloud.(...)/updateCloud/updateObjCatMaybes.(...)/updateObjCatMaybes/updateClouds/functiona... 11
ORDER (181320)#..\/#./crSetRoots.f/ix/crSetRoots/crUpdateItemLocations/scrollAugNextInSection/checkInventorySe... 12
ORDER (152512)zonePe.f/zonePe/generateLevelFromRoomList/generateWorldFromSeed/startSeedGameConc/startSeedGame/... 13
ORDER (158152)ix/updateInv/foldCr.f/foldCr/crUpdate/defaultImpulsive/updateHumanoid/updateCreature/dimap/dimap... 14
ORDER (162804)listSelectionColorPicture.g/listSelectionColorPicture/updateSection.(...)/updateSection/updateSe... 15
ORDER (181178)crUpdateInvidLocations/crUpdateItemLocations/scrollAugNextInSection/checkInventorySelectionExist... 16
ORDER (159623)ix/crCrSpring/crSpring/simpleCrSprings/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateU... 17
ORDER (159633)colCrsWalls/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateUniverse/updateRenderSplit/t... 18
ORDER (163282)updateCloud/updateObjCatMaybes.(...)/updateObjCatMaybes/updateClouds/functionalUpdate/timeFlowUp... 19
ORDER (157730)ix/updateInv/foldCr.f/foldCr/crUpdate/humanoidAIList/updateHumanoid/updateCreature/dimap/dimap/_... 20
SHADE OTHER 0.00
SHADE (157697)#..\/#./targetYouWhenCognizant/updateHumanoid/updateCreature/dimap/dimap/_Wrapped'/updateIMl'/fu... 0.00
SHADE (165654)updateCloud.finalPos/updateCloud/updateObjCatMaybes.(...)/updateObjCatMaybes/updateClouds/functi... 0.00
SHADE (165606)updateCloud.finalVel/updateCloud/updateObjCatMaybes.(...)/updateObjCatMaybes/updateClouds/functi... 0.00
SHADE (155261)plLineBlock.makePane/plLineBlock.makeWallAt/plLineBlock.insertBlock/plLineBlock.insertBlocks/plL... 0.10
SHADE (157606)#..\/#./performActions/updateHumanoid/updateCreature/dimap/dimap/_Wrapped'/updateIMl'/functional... 0.10
SHADE (157522)updateHumanoid/updateCreature/dimap/dimap/_Wrapped'/updateIMl'/functionalUpdate/timeFlowUpdate/u... 0.10
SHADE (144146)ix/crSetRoots/crUpdateItemLocations/scrollAugNextInSection/checkInventorySelectionExists/updateI... 0.10
SHADE (157678)chaseCritAwarenessUpdate/chaseCritPerceptionUpdate/chainCreatureUpdates.unf/chainCreatureUpdates... 0.00
SHADE (159529)updateExpBarrel.applyFuseDamage/updateExpBarrel.newCr/#..\/#./updateExpBarrel/updateBarreloid/up... 0.00
SHADE (165621)updateCloud.(...)/updateCloud/updateObjCatMaybes.(...)/updateObjCatMaybes/updateClouds/functiona... 0.00
SHADE (181320)#..\/#./crSetRoots.f/ix/crSetRoots/crUpdateItemLocations/scrollAugNextInSection/checkInventorySe... 0.00
SHADE (152512)zonePe.f/zonePe/generateLevelFromRoomList/generateWorldFromSeed/startSeedGameConc/startSeedGame/... 0.05
SHADE (158152)ix/updateInv/foldCr.f/foldCr/crUpdate/defaultImpulsive/updateHumanoid/updateCreature/dimap/dimap... 0.05
SHADE (162804)listSelectionColorPicture.g/listSelectionColorPicture/updateSection.(...)/updateSection/updateSe... 0.05
SHADE (181178)crUpdateInvidLocations/crUpdateItemLocations/scrollAugNextInSection/checkInventorySelectionExist... 0.05
SHADE (159623)ix/crCrSpring/crSpring/simpleCrSprings/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateU... 0.10
SHADE (159633)colCrsWalls/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateUniverse/updateRenderSplit/t... 0.10
SHADE (163282)updateCloud/updateObjCatMaybes.(...)/updateObjCatMaybes/updateClouds/functionalUpdate/timeFlowUp... 0.10
SHADE (157730)ix/updateInv/foldCr.f/foldCr/crUpdate/humanoidAIList/updateHumanoid/updateCreature/dimap/dimap/_... 0.10
BIN
View File
Binary file not shown.
+804689
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+59304
View File
File diff suppressed because it is too large Load Diff
+232129
View File
File diff suppressed because it is too large Load Diff
+10
View File
@@ -0,0 +1,10 @@
indentation: 4
comma-style: leading
import-export-comma-style: leading
indent-wheres: false
record-brace-space: false
diff-friendly-import-export: true
respectful: false
haddock-style: multi-line
newlines-between-decls: 0
fixities: []
+281
View File
@@ -0,0 +1,281 @@
digraph {
graph [rankdir=LR];
subgraph 1 {
1 [shape=box
,label="EQUIP {_ibtEquip = FUELPACK}"];
5 [shape=box
,label="AMMOMAG {_ibtAmmoMag = TINMAG}"];
9 [shape=box
,label="HELD {_ibtHeld = BANGSTICK {_xNum = 1}}"];
13 [shape=box
,label="HELD {_ibtHeld = PISTOL}"];
15 [shape=box
,label="HELD {_ibtHeld = AUTOPISTOL}"];
17 [shape=box
,label="HELD {_ibtHeld = SMG}"];
20 [shape=box
,label="HELD {_ibtHeld = MACHINEPISTOL}"];
22 [shape=box
,label="HELD {_ibtHeld = BANGCONE}"];
25 [shape=box
,label="HELD {_ibtHeld = BLUNDERBUSS}"];
27 [shape=box
,label="HELD {_ibtHeld = GRAPECANNON {_xNum = 1}}"];
29 [shape=box
,label="HELD {_ibtHeld = RIFLE}"];
31 [shape=box
,label="HELD {_ibtHeld = VOLLEYGUN {_xNum = 3}}"];
33 [shape=box
,label="HELD {_ibtHeld = AUTORIFLE}"];
35 [shape=box
,label="HELD {_ibtHeld = BURSTRIFLE}"];
37 [shape=box
,label="HELD {_ibtHeld = MINIGUNX {_xNum = 3}}"];
40 [shape=box
,label="HELD {_ibtHeld = SNIPERRIFLE}"];
41 [shape=box
,label="HELD {_ibtHeld = AMR}"];
44 [shape=box
,label="HELD {_ibtHeld = AUTOAMR}"];
46 [shape=box
,label="HELD {_ibtHeld = RLAUNCHER}"];
49 [shape=box
,label="HELD {_ibtHeld = RLAUNCHERX {_xNum = 2}}"];
53 [shape=box
,label="HELD {_ibtHeld = FLAMESPITTER}"];
57 [shape=box
,label="HELD {_ibtHeld = BLOWTORCH}"];
59 [shape=box
,label="HELD {_ibtHeld = FLAMETHROWER}"];
61 [shape=box
,label="HELD {_ibtHeld = FLAMEWALL}"];
63 [shape=box
,label="HELD {_ibtHeld = FLAMETORRENT}"];
65 [shape=box,label=LASER];
69 [shape=box
,label="HELD {_ibtHeld = SPARKGUN}"];
71 [shape=box
,label="HELD {_ibtHeld = TESLAGUN}"];
73 [shape=box
,label="HELD {_ibtHeld = BLINKERUNSAFE}"];
74 [shape=box
,label="HELD {_ibtHeld = BLINKER}"];
77 [shape=box
,label="EQUIP {_ibtEquip = MAGSHIELD MagnetRepulse}"];
80 [shape=box
,label="EQUIP {_ibtEquip = POWERLEGS}"];
86 [shape=box
,label="HELD {_ibtHeld = FLATSHIELD}"];
96 [shape=box
,label="DETECTOR {_ibtDetector = ITEMDETECTOR}"];
99 [shape=box
,label="DETECTOR {_ibtDetector = WALLDETECTOR}"];
101 [shape=box
,label="DETECTOR {_ibtDetector = CREATUREDETECTOR}"];
103 [shape=box
,label="HELD {_ibtHeld = TORCH}"];
104 [shape=box
,label="AMMOMAG {_ibtAmmoMag = BATTERY}"];
107 [shape=box
,label="EQUIP {_ibtEquip = HEADLAMP}"];
108 [shape=box
,label="EQUIP {_ibtEquip = HAT}"];
110 [shape=box
,label="HELD {_ibtHeld = BANGSTICK {_xNum = 2}}"];
}
subgraph 2 {
0 [shape=point];
4 [shape=point];
8 [shape=point];
12 [shape=point];
14 [shape=point];
16 [shape=point];
19 [shape=point];
21 [shape=point];
24 [shape=point];
26 [shape=point];
28 [shape=point];
30 [shape=point];
32 [shape=point];
34 [shape=point];
36 [shape=point];
39 [shape=point];
42 [shape=point];
43 [shape=point];
45 [shape=point];
48 [shape=point];
50 [shape=point];
52 [shape=point];
56 [shape=point];
58 [shape=point];
60 [shape=point];
62 [shape=point];
64 [shape=point];
68 [shape=point];
70 [shape=point];
72 [shape=point];
76 [shape=point];
79 [shape=point];
82 [shape=point];
83 [shape=point];
84 [shape=point];
85 [shape=point];
87 [shape=point];
89 [shape=point];
92 [shape=point];
95 [shape=point];
98 [shape=point];
100 [shape=point];
102 [shape=point];
106 [shape=point];
109 [shape=point];
111 [shape=point];
113 [shape=point];
115 [shape=point];
117 [shape=point];
}
0 -> 1 [xlabel="",tailport=e];
4 -> 5 [xlabel="",tailport=e];
8 -> 9 [xlabel="",tailport=e];
9 -> 12 [xlabel=1
,arrowhead=onone
,headport=w];
9 -> 28 [xlabel=1
,arrowhead=onone
,headport=w];
9 -> 30 [xlabel=1
,arrowhead=onone
,headport=w];
9 -> 30 [xlabel=1
,arrowhead=onone
,headport=w];
9 -> 30 [xlabel=1
,arrowhead=onone
,headport=w];
9 -> 109 [xlabel=1
,arrowhead=onone
,headport=w];
9 -> 113 [xlabel=1
,arrowhead=onone
,headport=w];
9 -> 115 [xlabel=1
,arrowhead=onone
,headport=w];
12 -> 13 [xlabel="",tailport=e];
13 -> 14 [xlabel=1
,arrowhead=onone
,headport=w];
14 -> 15 [xlabel="",tailport=e];
15 -> 16 [xlabel=1
,arrowhead=onone
,headport=w];
15 -> 19 [xlabel=1
,arrowhead=onone
,headport=w];
16 -> 17 [xlabel="",tailport=e];
19 -> 20 [xlabel="",tailport=e];
21 -> 22 [xlabel="",tailport=e];
22 -> 24 [xlabel=1
,arrowhead=onone
,headport=w];
24 -> 25 [xlabel="",tailport=e];
25 -> 26 [xlabel=1
,arrowhead=onone
,headport=w];
26 -> 27 [xlabel="",tailport=e];
27 -> 117 [xlabel=1
,arrowhead=onone
,headport=w];
28 -> 29 [xlabel="",tailport=e];
29 -> 32 [xlabel=1
,arrowhead=onone
,headport=w];
29 -> 34 [xlabel=1
,arrowhead=onone
,headport=w];
29 -> 42 [xlabel=1
,arrowhead=onone
,headport=w];
30 -> 31 [xlabel="",tailport=e];
31 -> 36 [xlabel=1
,arrowhead=onone
,headport=w];
31 -> 113 [xlabel=1
,arrowhead=onone
,headport=w];
32 -> 33 [xlabel="",tailport=e];
34 -> 35 [xlabel="",tailport=e];
36 -> 37 [xlabel="",tailport=e];
37 -> 115 [xlabel=1
,arrowhead=onone
,headport=w];
39 -> 40 [xlabel="",tailport=e];
41 -> 39 [xlabel=1
,arrowhead=onone
,headport=w];
41 -> 43 [xlabel=1
,arrowhead=onone
,headport=w];
42 -> 41 [xlabel="",tailport=e];
43 -> 44 [xlabel="",tailport=e];
45 -> 46 [xlabel="",tailport=e];
46 -> 48 [xlabel=1
,arrowhead=onone
,headport=w];
48 -> 49 [xlabel="",tailport=e];
49 -> 50 [xlabel=1
,arrowhead=onone
,headport=w];
52 -> 53 [xlabel="",tailport=e];
53 -> 56 [xlabel=1
,arrowhead=onone
,headport=w];
53 -> 58 [xlabel=1
,arrowhead=onone
,headport=w];
56 -> 57 [xlabel="",tailport=e];
58 -> 59 [xlabel="",tailport=e];
59 -> 60 [xlabel=1
,arrowhead=onone
,headport=w];
59 -> 62 [xlabel=1
,arrowhead=onone
,headport=w];
60 -> 61 [xlabel="",tailport=e];
62 -> 63 [xlabel="",tailport=e];
64 -> 65 [xlabel="",tailport=e];
68 -> 69 [xlabel="",tailport=e];
69 -> 70 [xlabel=1
,arrowhead=onone
,headport=w];
70 -> 71 [xlabel="",tailport=e];
72 -> 73 [xlabel="",tailport=e];
74 -> 72 [xlabel=1
,arrowhead=onone
,headport=w];
76 -> 77 [xlabel="",tailport=e];
79 -> 80 [xlabel="",tailport=e];
85 -> 86 [xlabel="",tailport=e];
95 -> 96 [xlabel="",tailport=e];
98 -> 99 [xlabel="",tailport=e];
100 -> 101 [xlabel=""
,tailport=e];
102 -> 103 [xlabel=""
,tailport=e];
103 -> 106 [xlabel=1
,arrowhead=onone
,headport=w];
104 -> 102 [xlabel=1
,arrowhead=onone
,headport=w];
106 -> 107 [xlabel=""
,tailport=e];
108 -> 106 [xlabel=1
,arrowhead=onone
,headport=w];
109 -> 110 [xlabel=""
,tailport=e];
110 -> 111 [xlabel=1
,arrowhead=onone
,headport=w];
}
+2663
View File
File diff suppressed because it is too large Load Diff
+145
View File
@@ -0,0 +1,145 @@
Seed: 7114951007332849727Layout with room names:
rezBox-0
|
autoDoor-1
|
rectPillars-2
|
autoDoor-3
|
Corridor-4
|
autoDoor-5
|
ElecautoRect-6
|
+- triggerDoorRoom-7
| |
| autoDoor-8
| |
| autoDoor-9
| |
| Corridor-10
| |
| autoDoor-11
| |
| 8gon-12
| |
| triggerDoorRoom-13
| |
| autoDoor-14
| |
| autoDoor-15
| |
| Corridor-16
| |
| autoRect-17
| |
| autoDoor-18
| |
| Corridor-19
| |
| autoDoor-20
| |
| 6gon-21
| |
| +- triggerDoorRoom-22
| | |
| | autoDoor-23
| | |
| | autoDoor-24
| | |
| | Corridor-25
| | |
| | autoDoor-26
| | |
| | warningTerm-8gon-27
| | |
| | triggerDoorRoom-28
| | |
| | autoDoor-29
| | |
| | autoDoor-30
| | |
| | Corridor-31
| | |
| | autoRect-32
| | |
| | autoDoor-33
| | |
| | Corridor-34
| | |
| | autoDoor-35
| | |
| | Corridor-36
| | |
| | 8gon-37
| | |
| | triggerDoorRoom-38
| | |
| | autoDoor-39
| | |
| | autoDoor-40
| | |
| | Corridor-41
| | |
| | tanksRoom-42
| | |
| | autoDoor-43
| | |
| | Corridor-44
| | |
| | autoDoor-45
| | |
| | rect-46
| | |
| | +- autoDoor-47
| | | |
| | | autoDoor-48
| | | |
| | | Corridor-49
| | | |
| | | autoRect-50
| | | |
| | | defaultRoom-51
| | | |
| | | autoRect-52
| | | |
| | | defaultRoom-53
| | | |
| | | autoRect-54
| | | |
| | | autoDoor-55
| | | |
| | | Corridor-56
| | | |
| | | autoDoor-57
| | | |
| | | 8gon-58
| | | |
| | | triggerDoorRoom-59
| | | |
| | | autoDoor-60
| | | |
| | | autoDoor-61
| | | |
| | | Corridor-62
| | | |
| | | defaultRoom-63
| | |
| | Corridor-64
| | |
| | autoDoor-65
| |
| autoDoor-66
| |
| Corridor-67
| |
| autoRect-68
|
autoDoor-69
|
Corridor-70
|
autoRect-71
+4
View File
@@ -0,0 +1,4 @@
Generating level with seed 7114951007332849727
After 1 attempt(s), Successful generation of level with seed 7114951007332849727
72 rooms in total
+1139
View File
File diff suppressed because it is too large Load Diff
+267
View File
@@ -0,0 +1,267 @@
Seed: 7114951007332849727
0:startThenWeaponRoom
|
1:corDoor
|
2:PassthroughLockKeyLists-HELD {_ibtHeld = SPARKGUN}
|
3:corDoor
|
4:lasSensorTurretTest
|
5:corDoor
|
6:SingleRoom
|
7:corDoor
|
8:PassthroughLockKeyLists-HELD {_ibtHeld = KEYCARD 0}
|
9:corDoor
|
10:warningRooms
|
11:corDoor
|
12:chaseCrit+armourChaseCrit rectRoom
|
13:corDoor
|
14:healthTest
|
15:corDoor
|
16:empty tanksRoom
|
17:corDoor
|
18:PassthroughLockKeyLists-HELD {_ibtHeld = SNIPERRIFLE}
|
19:corDoor
|
20:shootingRange
|
21:corDoor
|
22:lasSensorTurretTest
|
23:corDoor
|
24:randomFourCornerRoom
0:0:startThenWeaponRoom
|
0:1:weaponBetweenPillars_BANGSTICK4
0:0:0:rezBox'
0:0:0:0:rezBox
|
0:0:0:1:autoDoor
0:1:0:rectPillars
1:0:corDoor
1:0:0:autoDoor
|
1:0:1:Corridor
2:0:PassthroughLockKeyLists-HELD {_ibtHeld = SPARKGUN}
2:0:0:RassThroughLockKeyLists
|
2:0:1:roomsContaining chaseCritchaseCritTRANSFORMERCANCAN
2:0:0:0:sensorRoomRunPast
2:0:0:0:0:autoDoor
|
2:0:0:0:1:ElecautoRect
|
+- 2:0:0:0:2:triggerDoorRoom
| |
| 2:0:0:0:3:autoDoor
|
2:0:0:0:4:autoDoor
|
2:0:0:0:5:Corridor
2:0:1:0:autoRect
3:0:corDoor
3:0:0:autoDoor
|
3:0:1:Corridor
4:0:lasSensorTurretTest
4:0:0:autoDoor
|
4:0:1:8gon
|
4:0:2:triggerDoorRoom
|
4:0:3:autoDoor
5:0:corDoor
5:0:0:autoDoor
|
5:0:1:Corridor
6:0:SingleRoom
6:0:0:autoRect
7:0:corDoor
7:0:0:autoDoor
|
7:0:1:Corridor
8:0:PassthroughLockKeyLists-HELD {_ibtHeld = KEYCARD 0}
8:0:0:RassThroughLockKeyLists
|
8:0:1:roomsContaining chaseCritchaseCritchaseCritKEYCARD 0
8:0:0:0:keyCardRoomRunPast
8:0:0:0:0:autoDoor
|
8:0:0:0:1:6gon
|
+- 8:0:0:0:2:triggerDoorRoom
| |
| 8:0:0:0:3:autoDoor
|
8:0:0:0:4:autoDoor
|
8:0:0:0:5:Corridor
8:0:1:0:autoRect
9:0:corDoor
9:0:0:autoDoor
|
9:0:1:Corridor
10:0:warningRooms
10:0:0:autoDoor
|
10:0:1:warningTerm-8gon
|
10:0:2:triggerDoorRoom
|
10:0:3:autoDoor
11:0:corDoor
11:0:0:autoDoor
|
11:0:1:Corridor
12:0:chaseCrit+armourChaseCrit rectRoom
12:0:0:autoRect
13:0:corDoor
13:0:0:autoDoor
|
13:0:1:Corridor
14:0:healthTest
14:0:0:autoDoor
|
14:0:1:Corridor
|
14:0:2:8gon
|
14:0:3:triggerDoorRoom
|
14:0:4:autoDoor
15:0:corDoor
15:0:0:autoDoor
|
15:0:1:Corridor
16:0:empty tanksRoom
16:0:0:tanksRoom
17:0:corDoor
17:0:0:autoDoor
|
17:0:1:Corridor
18:0:PassthroughLockKeyLists-HELD {_ibtHeld = SNIPERRIFLE}
18:0:0:RassThroughLockKeyLists
|
18:0:1:roomsContaining chaseCritchaseCritSNIPERRIFLE
18:0:0:0:longRoomRunPast
18:0:0:0:0:autoDoor
|
18:0:0:0:1:rect
|
+- 18:0:0:0:2:autoDoor
|
18:0:0:0:3:Corridor
|
18:0:0:0:4:autoDoor
18:0:1:0:rectPillars
19:0:corDoor
19:0:0:autoDoor
|
19:0:1:Corridor
20:0:shootingRange
20:0:0:autoRect
|
20:0:1:defaultRoom
|
20:0:2:autoRect
|
20:0:3:defaultRoom
|
20:0:4:autoRect
21:0:corDoor
21:0:0:autoDoor
|
21:0:1:Corridor
22:0:lasSensorTurretTest
22:0:0:autoDoor
|
22:0:1:8gon
|
22:0:2:triggerDoorRoom
|
22:0:3:autoDoor
23:0:corDoor
23:0:0:autoDoor
|
23:0:1:Corridor
24:0:defaultRoom
Executable
+6
View File
@@ -0,0 +1,6 @@
#!/bin/bash
stack exec -- hp2ps -e8in -c -M dodge.hp
ps2pdf dodge.ps
rm dodge.ps
okular dodge.pdf
+2
View File
@@ -40,6 +40,7 @@ dependencies:
- random
- sdl2
- sdl2-mixer
- strict
- template-haskell
- transformers
- unordered-containers
@@ -53,6 +54,7 @@ dependencies:
- tasty
- tasty-hunit
- tasty-quickcheck
- list-tries
library:
source-dirs: src
+1
View File
File diff suppressed because one or more lines are too long
+496124
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
7114951007332849727
+8 -2
View File
@@ -22,7 +22,13 @@ void main() {
//float y3 = clamp(0.5 * (y1 + 2),0,1) ;
//float y = float(normbit.w == 0 ? y3 : y2);
float y = y2;
float x = 1 - dist / rad;
vec3 c = y* (x * x * x) * lumRad.rgb;
//float x = 1 - dist / rad;
float x = 1 - (pow(dist / rad,4));
//float x = 1 ;
//float x = 1;
//float x = 1 - max(0, ((dist + 10000) - rad) * 0.0001) ;
//vec3 c = y* (x * x * x) * lumRad.rgb;
vec3 c = y* x * lumRad.rgb;
//vec3 c = x * lumRad.rgb;
fColor = vec4(c, 0);
}
-6
View File
@@ -1,6 +0,0 @@
#version 450 core
out vec4 fColor;
void main()
{
fColor = vec4 (0,0,0,1);
}
+7 -7
View File
@@ -36,8 +36,8 @@ void main() {
vec2 p2cs = p2 + closeshift;
vec2 p2o = vec2( distance(p2,lightPos.xy) > rad2 ? p2cs : shift(p2) );
gl_Position = theMat * vec4(p1o,0,1); EmitVertex();
gl_Position = theMat * vec4(p1,0,1); EmitVertex();
gl_Position = theMat * vec4(p1o,-500,1); EmitVertex();
gl_Position = theMat * vec4(p1,-500,1); EmitVertex();
gl_Position = theMat * vec4(p1o,100,1); EmitVertex();
gl_Position = theMat * vec4(p1,100,1); EmitVertex();
gl_Position = theMat * vec4(p1cs,100,1); EmitVertex();
@@ -52,15 +52,15 @@ void main() {
// gl_Position = theMat * vec4(p2,0,1); EmitVertex();
gl_Position = theMat * vec4(p2,100,1); EmitVertex();
gl_Position = theMat * vec4(p2,0,1); EmitVertex();
gl_Position = theMat * vec4(p2,-500,1); EmitVertex();
gl_Position = theMat * vec4(p2o,100,1); EmitVertex();
gl_Position = theMat * vec4(p2o,0,1); EmitVertex();
gl_Position = theMat * vec4(p2o,-500,1); EmitVertex();
gl_Position = theMat * vec4(p2cs,100,1); EmitVertex();
gl_Position = theMat * vec4(p2cs,0,1); EmitVertex();
gl_Position = theMat * vec4(p2cs,-500,1); EmitVertex();
gl_Position = theMat * vec4(p1cs,100,1); EmitVertex();
gl_Position = theMat * vec4(p1cs,0,1); EmitVertex();
gl_Position = theMat * vec4(p1cs,-500,1); EmitVertex();
gl_Position = theMat * vec4(p1o,100,1); EmitVertex();
gl_Position = theMat * vec4(p1o,0,1); EmitVertex();
gl_Position = theMat * vec4(p1o,-500,1); EmitVertex();
EndPrimitive();
} else {
+1 -1
View File
@@ -2,5 +2,5 @@
out vec4 fColor;
void main()
{
fColor = vec4 (0,0,0,0);
fColor = vec4 (0,0,0,1);
}
+1 -6
View File
@@ -2,18 +2,13 @@
layout (location=0) out vec4 fCol;
layout (location=1) out vec4 fPos;
layout (location=2) out vec4 fNorm;
in vec2 tPos;
in vec3 gTexCoords;
in vec4 gPos;
in vec4 gNorm;
in vec4 gColor;
in float gAng;
layout (binding=40) uniform sampler2DArray diffuseSampler;
layout (binding=41) uniform sampler2DArray normalSampler;
vec2 rotateV2 (float a, vec2 v)
{
return vec2(v.x*cos(a) - v.y*sin(a), v.x*sin(a) + v.y*cos(a));
}
{ return vec2(v.x*cos(a) - v.y*sin(a), v.x*sin(a) + v.y*cos(a)); }
void main()
{
fCol = texture(diffuseSampler,gTexCoords);
+13 -12
View File
@@ -4,16 +4,13 @@ layout (triangle_strip, max_vertices = 4) out;
layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
in vec2 vTexAng[];
out float gAng;
out vec2 tPos;
out vec4 gPos;
out vec4 gNorm;
out vec3 gTexCoords;
// consider using isLHS to check if the wall is facing the center
float isLHS (vec2 startV, vec2 testV)
{ return sign( -startV.x * testV.y + startV.y * testV.x); }
void main()
{ gAng = vTexAng[0].y;
float tcoordz = vTexAng[0].x;
{ float tcoordz = vTexAng[0].x;
vec2 p1xy = gl_in[0].gl_Position.xy;
vec2 p2xy = gl_in[0].gl_Position.zw;
vec4 p1 = vec4 (gl_in[0].gl_Position.xy,0,1);
@@ -24,21 +21,25 @@ void main()
float dist = distance(p1xy,p2xy);
float tcoordx = dist / 50;
vec4 norm = vec4( d.y, -d.x, 0, 0);
gPos = p1; tPos = vec2 ( 1,-1) ; gl_Position = vec4(theMat * p1);
gNorm = gPos - norm;
gPos = p1;
gl_Position = vec4(theMat * p1);
gTexCoords = vec3 (0,0,tcoordz);
gAng = vTexAng[0].y;
EmitVertex();
gPos = p3; tPos = vec2 ( 1, 1) ; gl_Position = vec4(theMat * p3);
gNorm = gPos - norm;
gPos = p3;
gl_Position = vec4(theMat * p3);
gTexCoords = vec3 (0,2,tcoordz);
gAng = vTexAng[0].y;
EmitVertex();
gPos = p2; tPos = vec2 (-1,-1) ; gl_Position = vec4(theMat * p2);
gNorm = gPos - norm;
gPos = p2;
gl_Position = vec4(theMat * p2);
gTexCoords = vec3 (tcoordx,0,tcoordz);
gAng = vTexAng[0].y;
EmitVertex();
gPos = p4; tPos = vec2 (-1, 1) ; gl_Position = vec4(theMat * p4);
gNorm = gPos - norm;
gPos = p4;
gl_Position = vec4(theMat * p4);
gTexCoords = vec3 (tcoordx,2,tcoordz);
gAng = vTexAng[0].y;
EmitVertex();
EndPrimitive();
}
+24
View File
@@ -0,0 +1,24 @@
module AesonHelp where
import Data.Aeson (ToJSON)
import qualified Data.Aeson.Encode.Pretty as AEP
import Data.ByteString.Lazy.Char8 (unpack)
import Data.Maybe
getPretty :: ToJSON a => a -> [String]
getPretty = lines . unpack . AEP.encodePretty' (AEP.Config (AEP.Spaces 2) compare AEP.Generic False)
prettyShort :: ToJSON a => a -> [String]
prettyShort = mapMaybe cullPretty . getPretty
cullPretty :: String -> Maybe String
cullPretty s = case dropWhile (== ' ') s of
']' : _ -> Nothing
'[' : _ -> Nothing
'}' : _ -> Nothing
'{' : _ -> Nothing
_ -> Just $ filter f s
where
f '_' = False
f '"' = False
f _ = True
+4
View File
@@ -79,6 +79,10 @@ normalizeColor (V4 r g b a) = V4 (f r) (f g) (f b) (f a)
where
f = min 1 . max 0
mixColorsFrac :: Color -> Color -> Float -> Color
{-# INLINE mixColorsFrac #-}
mixColorsFrac c1 c2 x = mixColors x (1-x) c1 c2
mixColors :: Float -> Float -> Color -> Color -> Color
{-# INLINE mixColors #-}
mixColors rata ratb (V4 r0 g0 b0 a0) (V4 r2 g2 b2 a2) =
+4 -4
View File
@@ -3,14 +3,14 @@
module Data.Preload where
import Control.Lens
import Data.IntMap.Strict
import Data.Preload.Render
import Music
import Sound.Data
import SDL.Mixer
data PreloadData = PreloadData
{ _renderData :: RenderData
, _soundData :: SoundData
, _musicData :: MusicData
, _soundData :: IntMap Chunk
, _musicData :: IntMap Chunk
}
makeLenses ''PreloadData
+2
View File
@@ -42,6 +42,8 @@ data RenderData = RenderData
, _vboShapes :: VBO
, _floorVBO :: VBO
, _floorShader :: Shader
, _chasmVBO :: VBO
, _chasmShader :: Shader
, _wallVBO :: VBO
, _wallShader :: Shader
, _cloudVBO :: VBO
+17 -13
View File
@@ -1,26 +1,30 @@
{-# LANGUAGE TemplateHaskell #-}
--{-# LANGUAGE StrictData #-}
module Data.Tile where
import Geometry.Data
import Data.Aeson
import Data.Aeson.TH
import Control.Lens
import Data.Aeson
import Data.Aeson.TH
import Geometry.Data
data Floor
data Floor
= InheritFloor
-- | TileWith Float
| Tiled { _tiles :: [Tile]}
| -- | TileWith Float
Tiled {_tiles :: [Tile]}
data Tile = Tile
{ _tilePoly :: [Point2]
, _tileZero :: Point2 -- ^ point in the world where tile texture is 0,0
, _tileTangentPos :: Point2
-- ^ world position one along in the X direction, note this also set the scale of the
-- texture
-- this has to be a position because it is shifted
, _tileArrayZ :: Float
, -- | point in the world where tile texture is 0,0
_tileZero :: Point2
, -- | world position one along in the X direction, note this also set the scale of the
-- texture
-- this has to be a position because it is shifted
_tileTangentPos :: Point2
, _tileArrayZ :: Float
}
deriving (Eq, Ord, Show)
deriving (Eq, Ord, Show)
makeLenses ''Floor
makeLenses ''Tile
deriveJSON defaultOptions ''Tile
+8 -7
View File
@@ -1,11 +1,12 @@
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Annotation.Data where
import Dodge.Data.GenWorld
import Dodge.Tree.Compose.Data
import Control.Monad.State
import Control.Lens
import Control.Monad.State
import Dodge.Data.GenWorld
import Dodge.Data.MetaTree
import System.Random
type MTRS = MetaTree Room String
@@ -17,8 +18,8 @@ data Annotation
| AnRoom (State StdGen Room)
| AnTree (State StdGen (MetaTree Room String))
| PassthroughLockKeyLists
[(Int -> State StdGen (MetaTree Room String), State StdGen ItemBaseType)]
[(ItemBaseType, State StdGen (MetaTree Room String))]
Int
[(Int -> State StdGen (MetaTree Room String), State StdGen ItemType)]
[(ItemType, State StdGen (MetaTree Room String))]
Int
makeLenses ''Annotation
-12
View File
@@ -1,12 +0,0 @@
module Dodge.ArcStep where
import Control.Monad.State
import Dodge.Data.ArcStep
import Dodge.Data.World
import Dodge.Tesla.Arc.Default
import System.Random
doStep :: NextArcStep -> ItemParams -> World -> ArcStep -> State StdGen (Maybe ArcStep)
doStep nas = case nas of
DefaultArcStep -> defaultArcStep
EndArc -> const $ const $ const $ return Nothing

Some files were not shown because too many files have changed in this diff Show More