Jump to content

Recommended Posts

So I just got hit 4 out of 5 times by a Light Drone. She actually survived with one HP.

I just...I don't....what?

[259900] >>> Begin calc bullet trajectory <<<[259900] Target: level = 0, pos = (37, 31)[259900] Unmodified accuracy calculation:[259900]   range penalty (1.000000) = 1 - ( max(0, dist. to target (18.248287) - weapon range (20)) / weapon range (20) )[259900]   shoot accuracy (0.600000) = shoot accuracy from props (0.500000) * kneeling boost (1.200000)[259900]   shoot accuracy (0.600000) = shoot accuracy (0.600000) - max(0, weapon recoil (0) / 100 - strength (0.500000) )[259900]   unmodified accuracy (18.000000) = shoot accuracy (0.600000) * range penalty (1.000000) * weapon accuracy (30.000000)[259900] Generate random value from 1 to 100: rnd = 18[259900] Random value <= unmodified accuracy => no target pos offset[259900] Damage for unit:[259900]   damage mul. (1.000000) = ( weapon range (20) / max(weapon range (20), dist. to target (18.248287)) ) * difficult mul. (1.000000) * ai race damage bonus (1.000000)[259900]   normal damage (45) = weapon damage (35) * random bonus/penalty (1.300000) * damage mul. (1.000000)[259900]   stun damage (0) = weapon stun damage (0) * random bonus/penalty (1.260000) * damage mul. (1.000000)[259900]   emp damage (0) = weapon emp damage (0) * random bonus/penalty (0.820000) * damage mul. (1.000000)[259900] Terrain bullet score:[259900]   Source unit is crouching => terrain bullet score (1.000000) = 1 - (1 - terrain bullet score (1.000000)) * 1.25[259900]   terrain bullet score = 1.000000[259900] modified accuracy (18.000000) = unmodified accuracy (18.000000) * terrain bullet score (1.000000)[259900] Random value (18) <= modified accuracy (18.000000) => no check for terrain intersection[259900] master accuracy (18.000000) = modified accuracy (18.000000) * (1 - chance to hit cover (0.000))[259900] >>> End calc bullet trajectory <<<[259900] >>> Begin calc bullet trajectory <<<[259900] Target: level = 0, pos = (37, 31)[259900] Unmodified accuracy calculation:[259900]   range penalty (1.000000) = 1 - ( max(0, dist. to target (18.248287) - weapon range (20)) / weapon range (20) )[259900]   shoot accuracy (0.600000) = shoot accuracy from props (0.500000) * kneeling boost (1.200000)[259900]   shoot accuracy (0.600000) = shoot accuracy (0.600000) - max(0, weapon recoil (0) / 100 - strength (0.500000) )[259900]   unmodified accuracy (18.000000) = shoot accuracy (0.600000) * range penalty (1.000000) * weapon accuracy (30.000000)[259900] Generate random value from 1 to 100: rnd = 47[259900] Random value (47) > unmodified accuracy (18.000000) => offset target pos[259900] New target pos = (38, 31)[259900] Generate new random value from 1 to unmodified accuracy (18): rnd = 10[259900] Tile damage (21.000000) = weapon damage (35) * random bonus/penalty (0.600000) * (weapon range (20) / max(dist. to target (18.110771), weapon range (20) )[259900] Terrain bullet score:[259900]   Source unit is crouching => terrain bullet score (1.000000) = 1 - (1 - terrain bullet score (1.000000)) * 1.25[259900]   terrain bullet score = 1.000000[259900] modified accuracy (18.000000) = unmodified accuracy (18.000000) * terrain bullet score (1.000000)[259900] Random value (10) <= modified accuracy (18.000000) => no check for terrain intersection[259900] master accuracy (18.000000) = modified accuracy (18.000000) (no unit on target tile or it's a vehicle)[259900] >>> End calc bullet trajectory <<<[259900] >>> Begin calc bullet trajectory <<<[259900] Target: level = 0, pos = (37, 31)[259900] Unmodified accuracy calculation:[259900]   range penalty (1.000000) = 1 - ( max(0, dist. to target (18.248287) - weapon range (20)) / weapon range (20) )[259900]   shoot accuracy (0.600000) = shoot accuracy from props (0.500000) * kneeling boost (1.200000)[259900]   shoot accuracy (0.600000) = shoot accuracy (0.600000) - max(0, weapon recoil (0) / 100 - strength (0.500000) )[259900]   unmodified accuracy (18.000000) = shoot accuracy (0.600000) * range penalty (1.000000) * weapon accuracy (30.000000)[259900] Generate random value from 1 to 100: rnd = 18[259900] Random value <= unmodified accuracy => no target pos offset[259900] Damage for unit:[259900]   damage mul. (1.000000) = ( weapon range (20) / max(weapon range (20), dist. to target (18.248287)) ) * difficult mul. (1.000000) * ai race damage bonus (1.000000)[259900]   normal damage (38) = weapon damage (35) * random bonus/penalty (1.110000) * damage mul. (1.000000)[259900]   stun damage (0) = weapon stun damage (0) * random bonus/penalty (1.140000) * damage mul. (1.000000)[259900]   emp damage (0) = weapon emp damage (0) * random bonus/penalty (1.210000) * damage mul. (1.000000)[259900] Terrain bullet score:[259900]   Source unit is crouching => terrain bullet score (1.000000) = 1 - (1 - terrain bullet score (1.000000)) * 1.25[259900]   terrain bullet score = 1.000000[259900] modified accuracy (18.000000) = unmodified accuracy (18.000000) * terrain bullet score (1.000000)[259900] Random value (18) <= modified accuracy (18.000000) => no check for terrain intersection[259900] master accuracy (18.000000) = modified accuracy (18.000000) * (1 - chance to hit cover (0.000))[259900] >>> End calc bullet trajectory <<<[259900] >>> Begin calc bullet trajectory <<<[259900] Target: level = 0, pos = (37, 31)[259900] Unmodified accuracy calculation:[259900]   range penalty (1.000000) = 1 - ( max(0, dist. to target (18.248287) - weapon range (20)) / weapon range (20) )[259900]   shoot accuracy (0.600000) = shoot accuracy from props (0.500000) * kneeling boost (1.200000)[259900]   shoot accuracy (0.600000) = shoot accuracy (0.600000) - max(0, weapon recoil (0) / 100 - strength (0.500000) )[259900]   unmodified accuracy (18.000000) = shoot accuracy (0.600000) * range penalty (1.000000) * weapon accuracy (30.000000)[259900] Generate random value from 1 to 100: rnd = 5[259900] Random value <= unmodified accuracy => no target pos offset[259900] Damage for unit:[259900]   damage mul. (1.000000) = ( weapon range (20) / max(weapon range (20), dist. to target (18.248287)) ) * difficult mul. (1.000000) * ai race damage bonus (1.000000)[259900]   normal damage (49) = weapon damage (35) * random bonus/penalty (1.410000) * damage mul. (1.000000)[259900]   stun damage (0) = weapon stun damage (0) * random bonus/penalty (1.040000) * damage mul. (1.000000)[259900]   emp damage (0) = weapon emp damage (0) * random bonus/penalty (0.780000) * damage mul. (1.000000)[259900] Terrain bullet score:[259900]   Source unit is crouching => terrain bullet score (1.000000) = 1 - (1 - terrain bullet score (1.000000)) * 1.25[259900]   terrain bullet score = 1.000000[259900] modified accuracy (18.000000) = unmodified accuracy (18.000000) * terrain bullet score (1.000000)[259900] Random value (5) <= modified accuracy (18.000000) => no check for terrain intersection[259900] master accuracy (18.000000) = modified accuracy (18.000000) * (1 - chance to hit cover (0.000))[259900] >>> End calc bullet trajectory <<<[259900] Cannot precache animation with timelineName "crouchidle_DK" using spectre "units/alien/Lightdrone/Lightdrone/weapon.lightdroneblaster/soldier".[259900] armour damage reduction (35) = max(0, armour resistance (35) - armour mitigation (0))[259900] Damage (0) = max(0, damage (21) - armourValue (35))[259900] Unit HP (65) = max( -20, unit HP (65) - damage (0) )[259900] Stun damage (0) = max(0, stun damage (0) - armourValue (35)[259900] Unit stun HP (65) = max( 0, unit stun HP (65) - damage (0) )[259900] armour damage reduction (30) = max(0, armour resistance (30) - armour mitigation (0))[259900] Damage (15) = max(0, damage (45) - armourValue (30))[259900] Unit HP (50) = max( -20, unit HP (65) - damage (15) )[259900] Stun damage (0) = max(0, stun damage (0) - armourValue (30)[259900] Unit stun HP (65) = max( 0, unit stun HP (65) - damage (0) )[259900] armour damage reduction (22) = max(0, armour resistance (22) - armour mitigation (0))[259900] Damage (16) = max(0, damage (38) - armourValue (22))[259900] Unit HP (34) = max( -20, unit HP (50) - damage (16) )[259900] Stun damage (0) = max(0, stun damage (0) - armourValue (22)[259900] Unit stun HP (65) = max( 0, unit stun HP (65) - damage (0) )[259900] armour damage reduction (16) = max(0, armour resistance (16) - armour mitigation (0))[259900] Damage (33) = max(0, damage (49) - armourValue (16))[259900] Unit HP (1) = max( -20, unit HP (34) - damage (33) )[259900] Stun damage (0) = max(0, stun damage (0) - armourValue (16)[259900] Unit stun HP (65) = max( 0, unit stun HP (65) - damage (0) )
Link to comment
Share on other sites

Yeah, you play this game long enough and all sorts of unlikely situtations happen :) Thats what makes it fun.

One game, I moved my troops up to this building to cover the UFO door, end turn. This Sebellian BURSTS out of the door of this nearby building a few squares away and puts his gun right to the back of one of my totally unarmored troopers head. Zap! Miss. I was like, "Woah! Lucky girl." The Sebellian collects himself, and tries again. Puts the gun to the back of her head, aims real slow and carefully. Zap! Miss, lol. At point blank thats what, a 95% chance to hit? Beat the odds twice in one turn ;)

Shortly later, I made a mistake and moved a troop too aggressively forward, poor trooper had just enough TU's to turn at this Sebellian and make a stupid face. He was the last guy I moved so no one could help him. I swear I could tell the Sebellian was thinking, "Yeah.. yeah I'm gonna kill the heck of out of this stupid human." I sigh and hit end turn, this other Sebellian from farther back I haden't seen yet fires off some burst shots, totally misses my guy, nails and kills the other Sebellian who had my trooper dead to rights.

Edit: Or the time a rookie private fired off a burst shot and killed two Ceasians, hidden behind full cover at long range. He had like a 4% hit chance. His first day out he gets two kills in one action.

The pendulum swings both ways :)

Edited by SalsaDoom
Link to comment
Share on other sites

I had an interesting encounter in a Caesan base last night. It was in the third room, past the room with the power generators.

I threw out some smoke because I had recently breached the door and I didn't have all my people in cover. The aliens hunkered down and saved TUs for reaction fire. Figuring this was the case, I flashbanged the lot of them and then moved my people to their chosen "final" positions while taking potshots at the more easily seen Caesans. I took out 2 of the 3 I could see, and suppressed the third. I figured the survivor would run for his life, so I hit End Turn. Unsurprisingly, he ran away to save his pusillanimous plasma pushing hide. However, unbeknownst to me, the caesan warrior I never saw had actually entered the smoke on the previous turn! As (bad) luck would have it, this square of smoke was one of the few that didn't dissipate and no one ever looked at it from the correct angle to see him standing there. On his turn he took two Plasma Shotgun shots and blew away two of my xenonauts from one or two tiles away.

That alien is my hero. Talk about not going down without a fight! Lesson learned: Smoke works both ways. Don't assume Caesans won't rush you.

Edited by Xintrosi
Link to comment
Share on other sites

Variation is what it lacks right now. Like having three guys do the exact same move, in a row. I had three Caesians walk around the corner, one after another, try to shoot a guy, get gunned down by reaction fire, repeat.

Or an alien walking between two safe points, every turn. Back and forth, back and forth.

When they retreat, though, and make you come get them, that's pretty good.

Link to comment
Share on other sites

I don't think the AI has any "shared" memory except for spotting. That means if it determines that walking around a corner is "good" then it will do that in-spite of the fact that two of it's buddies just got mowed down in that spot. It just thinks that's a good path (maybe because it knows there are enemies in the area to fight) without remembering previous combat results.

Link to comment
Share on other sites

Yeah, that would be why. It means that all of the units will act the exact same way given the same stimuli, though. Which makes them predictable and exploitable. Changing it would mean big upgrades to the AI code, I would imagine. I'm not a programmer by any stretch, so I'll leave that to the experts.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...