cataclysmbnteam / Cataclysm-BN

Cataclysm: Bright Nights, A fork/variant of Cataclysm:DDA by CleverRaven.
https://docs.cataclysmbn.org
Other
696 stars 272 forks source link

Certain monster ranged weapons ignore vehicle cover #730

Closed chaosvolt closed 2 years ago

chaosvolt commented 3 years ago

Describe the bug

Vehicle quarterpanels, windshields, and the like block some monster ranged attacks, but others will go through vehicles entirely. So far every monster gun to ignore vehicles completely has been found to copy from fake_item. The majority of guns that are properly halted by vehicle parts are instead dervied from normal firearms.

The sole anomaly found thus far is the laser_cannon_turret_fake used by laser turrets. It was found to SOMETIMES ignore vehicle cover seemingly at random, for unknown reasons. Like all guns found to always behave themselves, it inherits from a real weapon rather than fake_item. Like all guns so far found to always ignore cover, it doesn't use ammo. Any actual cause I've yet to determine.

Being inside the vehicle is likewise no protection relative to standing outside the vehicle.

Steps To Reproduce

  1. Spawn a car, hide on the other side of it or inside the vehicle.
  2. Spawn a corrosive zombie, acid-sniper zombie, what-have-you.
  3. Observe suffering hits through the intervening car. In the case of acid-sniper zombies will will likely take several shots since it seems they have vastly worse accuracy than corrosive zombies or acid support zombies.
  4. Debug kill and replace with a mil-spec turret, roit control platform, etc.
  5. Observe it having to open the vehicle like a tin can for it to stand any hope of harming you.
  6. Replace with a laser turret.
  7. Observe it sometimes blocks shots, sometimes doesn't.

Expected behavior

  1. For fake_item guns to behave the same as other ranged weapons.
  2. For laser turrets to act like either the buggy monster weapons or the functional ones, and not be a confusing anomaly that makes me question my sanity.

Screenshots

Test demonstrating corrosive zombie laughs at vehicle cover and calls it smol (uses acid_spit weapon, inherits from fake_item): image

Test confirming this still applies even if inside the vehicle: image

Test demonstrating a mil-spec turret can't ignore vehicles (uses m16a4_turret_fake, copies from m16a4): image

Test confirming the same behavior when inside the vehicle: image

Test confirming riot control platform also behaves as expected (uses pseudo_m203, copies from launcher_base): image

Test with laser turret, confirming its behavior to be an anomaly compared to all monsters tested thus far (weapon is laser_cannon_turret_fake, copies from laser_cannon): image

Test with undead augmented rifleman from Cataclysm++, confirming an example of a mod monster behaving sanely (weapon is arc_laser_rifle_monster, copies from arc_laser_rifle). Not a viable example of consistent laser behavior since the version of Cata++'s ARC-134 that super-soldiers use consume ammo from plutonium batteries, and are not UPS-fed: image

Test with Arcana's Strigoi mech ignoring cover (weapon is monster_laser_fake, copies from fake_item): image

Versions and configuration

- OS: Windows
    - OS Version: 10.0 2004
- Game Version: a62a899 [64-bit]
- Graphics Version: Tiles
- Game Language:  []
- Mods loaded: [
    Bright Nights [dda],
    Arcana and Magic Items [Arcana],
    Cataclysm++ [Cata++],
    No Fungal Monsters [No_Fungi],
    Disable NPC Needs [no_npc_food],
    Manual Bionic Installation [manualbionicinstall],
    Simplified Nutrition [novitamins]
]

Additional context

I was gonna try testing this with Bio-Weapon Apophis as it's the only other example of a monster that I think has an infinite-ammo ranged weapon that doesn't inherit from fake_item, but he wasn't cooperating. Also tried testing the host of the archon since he uses a weapon inheriting from fake_item too, hard to tell since he'd just open the car door and throw magic at me.

Coolthulhu commented 3 years ago

I expect it's caused by invalid handling of exotic damage types. Corrosive uses acid and laser may use heat.

chaosvolt commented 3 years ago

Augmented undead riflemen, one of the nod critters tested as well, use heat type damage as well however.