Implement pulse rifle with explodable pulse balls

This commit is contained in:
2025-07-27 11:10:30 +01:00
parent 68a4bc7aab
commit f1fb0ee768
19 changed files with 190 additions and 108 deletions
+53 -44
View File
@@ -439,7 +439,7 @@ DRUMMAG src/Dodge/Data/Item/Combine.hs 108;" C
DS src/DoubleStack.hs 3;" t
DT src/Dodge/Data/DoubleTree.hs 31;" C
DTBottomNode src/Dodge/Data/DoubleTree.hs 21;" C
DTComb src/Dodge/Item/Grammar.hs 152;" t
DTComb src/Dodge/Item/Grammar.hs 153;" t
DTMidAboveNode src/Dodge/Data/DoubleTree.hs 19;" C
DTMidBelowNode src/Dodge/Data/DoubleTree.hs 20;" C
DTRootNode src/Dodge/Data/DoubleTree.hs 17;" C
@@ -1333,19 +1333,25 @@ NumShadowCasters6 src/Dodge/Data/Config.hs 21;" C
NumShadowCasters7 src/Dodge/Data/Config.hs 22;" C
NumShadowCasters8 src/Dodge/Data/Config.hs 23;" C
NumShadowCasters9 src/Dodge/Data/Config.hs 24;" C
OCreature src/Dodge/Data/Object.hs 10;" C
OItem src/Dodge/Data/ComposedItem.hs 47;" t
OPulseBall src/Dodge/Data/Object.hs 9;" C
ORANGE src/Color/Data.hs 26;" C
ObButton src/Dodge/Data/ObjectType.hs 17;" C
ObCreature src/Dodge/Data/ObjectType.hs 13;" C
ObDoor src/Dodge/Data/ObjectType.hs 16;" C
ObForegroundShape src/Dodge/Data/ObjectType.hs 18;" C
ObItem src/Dodge/Data/ObjectType.hs 22;" C
ObLightSource src/Dodge/Data/ObjectType.hs 19;" C
ObMachine src/Dodge/Data/ObjectType.hs 14;" C
ObProp src/Dodge/Data/ObjectType.hs 20;" C
ObTerminal src/Dodge/Data/ObjectType.hs 12;" C
ObTrigger src/Dodge/Data/ObjectType.hs 21;" C
ObWall src/Dodge/Data/ObjectType.hs 15;" C
OTButton src/Dodge/Data/ObjectType.hs 17;" C
OTCreature src/Dodge/Data/ObjectType.hs 13;" C
OTDoor src/Dodge/Data/ObjectType.hs 16;" C
OTForegroundShape src/Dodge/Data/ObjectType.hs 18;" C
OTItem src/Dodge/Data/ObjectType.hs 22;" C
OTLightSource src/Dodge/Data/ObjectType.hs 19;" C
OTMachine src/Dodge/Data/ObjectType.hs 14;" C
OTProp src/Dodge/Data/ObjectType.hs 20;" C
OTPulseBall src/Dodge/Data/ObjectType.hs 23;" C
OTTerminal src/Dodge/Data/ObjectType.hs 12;" C
OTTrigger src/Dodge/Data/ObjectType.hs 21;" C
OTWall src/Dodge/Data/ObjectType.hs 15;" C
OWall src/Dodge/Data/Object.hs 11;" C
Object src/Dodge/Data/Object.hs 8;" t
Object src/Dodge/Data/Object.hs 4;" m
ObjectType src/Dodge/Data/ObjectType.hs 11;" t
ObjectType src/Dodge/Data/ObjectType.hs 6;" m
OnBack src/Dodge/Data/Equipment/Misc.hs 24;" C
@@ -3473,7 +3479,7 @@ barrel src/Dodge/Creature/Inanimate.hs 17;" f
barrelShape src/Dodge/Render/ShapePicture.hs 55;" f
baseAMRShape src/Dodge/Item/Draw/SPic.hs 418;" f
baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f
baseCI src/Dodge/Item/Grammar.hs 149;" f
baseCI src/Dodge/Item/Grammar.hs 150;" f
baseCaneShape src/Dodge/Item/Draw/SPic.hs 335;" f
baseDebris src/Dodge/Block/Debris.hs 122;" f
baseFloorTileSize src/Tile.hs 45;" f
@@ -3752,7 +3758,7 @@ crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 38;" f
crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 52;" f
crHasTarget src/Dodge/Creature/Test.hs 64;" f
crHasTargetLOS src/Dodge/Creature/Test.hs 67;" f
crHit src/Dodge/WorldEvent/ThingsHit.hs 64;" f
crHit src/Dodge/WorldEvent/ThingsHit.hs 83;" f
crIXsNearCirc src/Dodge/Zoning/Creature.hs 32;" f
crIXsNearPoint src/Dodge/Zoning/Creature.hs 14;" f
crInAimStance src/Dodge/Creature/Test.hs 93;" f
@@ -3781,6 +3787,7 @@ crUpdateInvidLocations src/Dodge/Inventory/Location.hs 61;" f
crUpdateItemLocations src/Dodge/Inventory/Location.hs 42;" f
crVocalizationSound src/Dodge/Creature/Vocalization.hs 13;" f
crWarningSounds src/Dodge/Creature/Vocalization.hs 23;" f
crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 40;" f
crZoneSize src/Dodge/Zoning/Creature.hs 41;" f
craftInfo src/Dodge/Item/Info.hs 168;" f
craftItemSPic src/Dodge/Item/Draw/SPic.hs 55;" f
@@ -3812,8 +3819,8 @@ crixsNearSeg src/Dodge/Zoning/Creature.hs 29;" f
crossPic src/Dodge/Render/Label.hs 27;" f
crossProd src/Geometry/Vector3D.hs 41;" f
crossV src/Geometry/Vector.hs 178;" f
crsHit src/Dodge/WorldEvent/ThingsHit.hs 38;" f
crsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 99;" f
crsHit src/Dodge/WorldEvent/ThingsHit.hs 48;" f
crsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 118;" f
crsItmsUnused src/Dodge/Room/Containing.hs 45;" f
crsNearCirc src/Dodge/Zoning/Creature.hs 35;" f
crsNearPoint src/Dodge/Zoning/Creature.hs 17;" f
@@ -4337,8 +4344,8 @@ extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f
extendAway src/Dodge/Placement/Instance/LightSource.hs 200;" f
extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f
extraPics src/Dodge/Render/ShapePicture.hs 82;" f
extraWeaponLinks src/Dodge/Item/Grammar.hs 85;" f
extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 94;" f
extraWeaponLinks src/Dodge/Item/Grammar.hs 86;" f
extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 95;" f
extractRoomPos src/Dodge/RoomPos.hs 6;" f
faceEdges src/Polyhedra.hs 65;" f
facesToVF src/Polyhedra/Geodesic.hs 69;" f
@@ -4457,11 +4464,11 @@ geometryTests test/Spec.hs 17;" f
geometryUnitTests test/Spec.hs 22;" f
geqConstr src/SameConstr.hs 21;" f
getAimZoom src/Dodge/Update/Camera.hs 135;" f
getAmmoLinks src/Dodge/Item/Grammar.hs 99;" f
getAmmoLinks src/Dodge/Item/Grammar.hs 100;" f
getArguments src/Dodge/Update/Scroll.hs 178;" f
getArguments' src/Dodge/Update/Scroll.hs 166;" f
getAttachedSFLink src/Dodge/HeldUse.hs 779;" f
getAutoSpringLinks src/Dodge/Item/Grammar.hs 80;" f
getAutoSpringLinks src/Dodge/Item/Grammar.hs 81;" f
getAvailableListLines src/Dodge/SelectionList.hs 10;" f
getBulHitDams src/Dodge/Bullet.hs 171;" f
getBulletType src/Dodge/HeldUse.hs 956;" f
@@ -4676,18 +4683,18 @@ interweave src/Justify.hs 17;" f
introScan src/Dodge/Item/Scope.hs 57;" f
introScanValue src/Dodge/Inventory/SelectionList.hs 80;" f
intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f
invAdj src/Dodge/Item/Grammar.hs 218;" f
invAdj src/Dodge/Item/Grammar.hs 219;" f
invCursorParams src/Dodge/ListDisplayParams.hs 36;" f
invDP src/Dodge/ListDisplayParams.hs 30;" f
invDT src/Dodge/Item/Grammar.hs 195;" f
invDT' src/Dodge/Item/Grammar.hs 200;" f
invDT src/Dodge/Item/Grammar.hs 196;" f
invDT' src/Dodge/Item/Grammar.hs 201;" f
invDimColor src/Dodge/DisplayInventory.hs 192;" f
invHead src/Dodge/Render/HUD.hs 404;" f
invIMDT src/Dodge/Item/Grammar.hs 228;" f
invIndents src/Dodge/Item/Grammar.hs 235;" f
invIMDT src/Dodge/Item/Grammar.hs 229;" f
invIndents src/Dodge/Item/Grammar.hs 236;" f
invItemEffs src/Dodge/Creature/State.hs 146;" f
invItemLocUpdate src/Dodge/Creature/State.hs 153;" f
invRootItemEffs src/Dodge/Creature/State.hs 146;" f
invRootMap src/Dodge/Item/Grammar.hs 207;" f
invRootMap src/Dodge/Item/Grammar.hs 208;" f
invSelectionItem src/Dodge/Inventory/SelectionList.hs 32;" f
invSetSelection src/Dodge/Inventory.hs 185;" f
invSetSelectionPos src/Dodge/Inventory.hs 193;" f
@@ -4768,7 +4775,7 @@ itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 121;" f
itemScrollValue src/Dodge/Inventory/SelectionList.hs 148;" f
itemSidePush src/Dodge/HeldUse.hs 396;" f
itemString src/Dodge/Item/Display.hs 56;" f
itemToFunction src/Dodge/Item/Grammar.hs 102;" f
itemToFunction src/Dodge/Item/Grammar.hs 103;" f
itemTreeSPic src/Dodge/Item/Draw/SPic.hs 24;" f
itemTriggerType src/Dodge/BaseTriggerType.hs 16;" f
itemWeight src/Dodge/Creature/Statistics.hs 66;" f
@@ -4780,7 +4787,7 @@ itmSpaceInfo src/Dodge/Item/Info.hs 25;" f
itmUsageInfo src/Dodge/Item/Info.hs 230;" f
jShape src/Dodge/Placement/Instance/LightSource.hs 85;" f
jaggedShape src/Dodge/Block/Debris.hs 191;" f
joinItemsInList src/Dodge/Item/Grammar.hs 185;" f
joinItemsInList src/Dodge/Item/Grammar.hs 186;" f
joystick src/Dodge/Item/Scope.hs 149;" f
jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f
jps0PushPS src/Dodge/LevelGen/PlacementHelper.hs 63;" f
@@ -4831,10 +4838,10 @@ ldtToIM src/Dodge/DoubleTree.hs 218;" f
ldtToIndentList src/Dodge/DoubleTree.hs 221;" f
ldtToLoc src/Dodge/DoubleTree.hs 267;" f
left src/DoubleStack.hs 16;" f
leftChildList src/Dodge/Item/Grammar.hs 164;" f
leftIsParentCombine src/Dodge/Item/Grammar.hs 154;" f
leftChildList src/Dodge/Item/Grammar.hs 165;" f
leftIsParentCombine src/Dodge/Item/Grammar.hs 155;" f
leftPad src/Padding.hs 15;" f
leftRightCombine src/Dodge/Item/Grammar.hs 176;" f
leftRightCombine src/Dodge/Item/Grammar.hs 177;" f
legsSPic src/Dodge/Item/Draw/SPic.hs 480;" f
liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f
light src/Color.hs 104;" f
@@ -4886,7 +4893,7 @@ locGoLeft src/Dodge/DoubleTree.hs 318;" f
locGoRight src/Dodge/DoubleTree.hs 323;" f
locLDTToLocDT src/Dodge/DoubleTree.hs 19;" f
locLeftmost src/Dodge/DoubleTree.hs 305;" f
locMuzzles src/Dodge/HeldUse.hs 147;" f
locMuzzles src/Dodge/HeldUse.hs 146;" f
locOrient src/Dodge/Item/HeldOffset.hs 56;" f
locRightmost src/Dodge/DoubleTree.hs 308;" f
locToTop src/Dodge/DoubleTree.hs 300;" f
@@ -5231,6 +5238,7 @@ pauseMenuOptions src/Dodge/Menu.hs 61;" f
pauseSound src/Dodge/SoundLogic.hs 42;" f
pauseTime src/Dodge/Update.hs 190;" f
pbFlicker src/Dodge/Update.hs 481;" f
pbsHit src/Dodge/WorldEvent/ThingsHit.hs 59;" f
peZoneSize src/Dodge/Zoning/Pathing.hs 46;" f
pedestalRoom src/Dodge/Room/Containing.hs 50;" f
penThing src/Dodge/Bullet.hs 209;" f
@@ -5525,8 +5533,9 @@ reflVelWallDamp src/Dodge/Base/Wall.hs 20;" f
reflectAngle src/Geometry.hs 141;" f
reflectIn src/Geometry.hs 136;" f
reflectInParam src/Geometry.hs 229;" f
reflectLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 13;" f
refract src/Dodge/Item/Weapon/LaserPath.hs 40;" f
reflectLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 14;" f
reflectPulseLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 66;" f
refract src/Dodge/Item/Weapon/LaserPath.hs 41;" f
refreshOptionsSelectionList src/Dodge/Menu/Option.hs 38;" f
regexCombs src/Dodge/DisplayInventory.hs 71;" f
regexList src/Dodge/DisplayInventory.hs 314;" f
@@ -5582,8 +5591,8 @@ rezText' src/Dodge/Story.hs 17;" f
rhombus src/Polyhedra.hs 72;" f
rifle src/Dodge/Item/Held/Cane.hs 19;" f
right src/DoubleStack.hs 16;" f
rightChildList src/Dodge/Item/Grammar.hs 170;" f
rightIsParentCombine src/Dodge/Item/Grammar.hs 159;" f
rightChildList src/Dodge/Item/Grammar.hs 171;" f
rightIsParentCombine src/Dodge/Item/Grammar.hs 160;" f
rightPad src/Padding.hs 19;" f
rightPadNoSquash src/Padding.hs 23;" f
rlPosDir src/Dodge/RoomLink.hs 94;" f
@@ -6069,10 +6078,10 @@ thickCircle src/Picture/Base.hs 272;" f
thickLine src/Picture/Base.hs 244;" f
thickLineCol src/Picture/Base.hs 255;" f
thinHighBar src/Dodge/Room/Foreground.hs 77;" f
thingHit src/Dodge/WorldEvent/ThingsHit.hs 61;" f
thingHitFilt src/Dodge/WorldEvent/ThingsHit.hs 49;" f
thingsHit src/Dodge/WorldEvent/ThingsHit.hs 31;" f
thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 70;" f
thingHit src/Dodge/WorldEvent/ThingsHit.hs 80;" f
thingHitFilt src/Dodge/WorldEvent/ThingsHit.hs 68;" f
thingsHit src/Dodge/WorldEvent/ThingsHit.hs 33;" f
thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 89;" f
threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f
throwItem src/Dodge/Creature/Action.hs 205;" f
tileTexCoords src/Tile.hs 11;" f
@@ -6175,7 +6184,7 @@ treeMaxDepthFromTrunk src/Dodge/Layout/Generate.hs 21;" f
treePath src/Dodge/Tree/GenerateStructure.hs 13;" f
treePaths src/TreeHelp.hs 138;" f
treePost src/TreeHelp.hs 45;" f
treeToPotentialFunction src/Dodge/Item/Grammar.hs 136;" f
treeToPotentialFunction src/Dodge/Item/Grammar.hs 137;" f
triLootRoom src/Dodge/Room/Treasure.hs 22;" f
triggerDoorRoom src/Dodge/Room/Door.hs 30;" f
triggerSwitch src/Dodge/Placement/Instance/Button.hs 47;" f
@@ -6485,8 +6494,8 @@ wlOpaqueDraw src/Dodge/Render/Walls.hs 45;" f
wlSeeThroughDraw src/Dodge/Render/Walls.hs 48;" f
wlZoneSize src/Dodge/Zoning/Wall.hs 52;" f
wlsFromIXs src/Dodge/Zoning/Wall.hs 35;" f
wlsHit src/Dodge/WorldEvent/ThingsHit.hs 84;" f
wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 92;" f
wlsHit src/Dodge/WorldEvent/ThingsHit.hs 103;" f
wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 111;" f
wlsNearCirc src/Dodge/Zoning/Wall.hs 49;" f
wlsNearPoint src/Dodge/Zoning/Wall.hs 39;" f
wlsNearRect src/Dodge/Zoning/Wall.hs 46;" f