aliens

Author Topic: tweaking Chryssalids  (Read 1018 times)

Offline bigwiggy

  • Sergeant
  • **
  • Posts: 18
    • View Profile
tweaking Chryssalids
« on: February 07, 2025, 06:55:37 am »
Hi all. 
I'd like to tweak Chryssalids in my game my reasoning being that a lid should *NOT* be able to kill/zombify a soldier wearing a suit of flying armor that can sometimes tank even a heavy plasma hit.  I mean yes, the lids are strong as they have 100 or 110 Strength, but even so that's not even twice as strong as a decent soldier so the notion they could somehow just rip through that kind of heavy armor just makes no sense.  At the beginning when you have no armor lids *should* be be lethal and I could see them being able to get through personal armor, but not power or flying suits.  So my question is how do I do that?

If I reduce their Strength stat would that have the desired effect? 
Or if not how would I go about accomplishing this?
Thanks.

Online Meridian

  • Global Moderator
  • Commander
  • *****
  • Posts: 9365
    • View Profile
Re: tweaking Chryssalids
« Reply #1 on: February 07, 2025, 09:19:36 am »
Strength has nothing to do with the ability to pierce through something.
A toddler with a scalpel can do quite a lot of damage.
So can any alien with razor-sharp claws/pincers.

Anyway, there is no way to turn it off in OXC.

In OXCE, there is a parameter for it.

Offline bigwiggy

  • Sergeant
  • **
  • Posts: 18
    • View Profile
Re: tweaking Chryssalids
« Reply #2 on: February 07, 2025, 10:25:06 pm »
Hi Meridian, and thanks for the reply.

What you say is true, but could a scalpel, razor or claw cut through armor plating that can tank a heavy plasma hit? 

Regardless I'm not familiar with OXCE but after doing some research I'm interested.  Can OXCE be installed on top of Open Xcom, or would it be better to do a clean install? 

Thanks for your time.


Online Meridian

  • Global Moderator
  • Commander
  • *****
  • Posts: 9365
    • View Profile
Re: tweaking Chryssalids
« Reply #3 on: February 07, 2025, 10:43:01 pm »
What you say is true, but could a scalpel, razor or claw cut through armor plating that can tank a heavy plasma hit? 

I never met a Chryssalid or seen a Heavy Plasma in real life, so I'm no expert... but I would say yes, without a problem.
Hollywood Xenomorphs have no problem piercing through full body Predator armor :)

Regardless I'm not familiar with OXCE but after doing some research I'm interested.  Can OXCE be installed on top of Open Xcom, or would it be better to do a clean install? 

Clean install is always better.

Offline robin

  • Commander
  • *****
  • Posts: 1233
  • ULTIMATE ROOKIE
    • View Profile
Re: tweaking Chryssalids
« Reply #4 on: February 15, 2025, 12:05:24 pm »
There is this script, that should require at lest 1 point of HP damage, to trigger zombification.
I haven't tested it, but IIRC it is form Yankes so it should work.
Code: [Select]
extended:
  scripts:
    damageUnit:
    # Global fix to Transformation attacks like Chryssalid zombification
    # Requires at least 1 hit point of damage before zombification triggers
    # This applies to *every* weapon that zombifies.  It *has* to get through armor to work.
      - offset: 4
        code: |
          if gt to_transform 0;
            if eq to_health 0;
              set to_transform 0;
            end;
          end;
          return;
« Last Edit: February 15, 2025, 12:09:20 pm by robin »

Offline hellrazor

  • Commander
  • *****
  • Posts: 2058
  • Deep Ruleset Digger & Bughunter
    • View Profile
    • Github Account
Re: tweaking Chryssalids
« Reply #5 on: February 17, 2025, 09:22:51 am »
There is this script, that should require at lest 1 point of HP damage, to trigger zombification.
I haven't tested it, but IIRC it is form Yankes so it should work.
Code: [Select]
extended:
  scripts:
    damageUnit:
    # Global fix to Transformation attacks like Chryssalid zombification
    # Requires at least 1 hit point of damage before zombification triggers
    # This applies to *every* weapon that zombifies.  It *has* to get through armor to work.
      - offset: 4
        code: |
          if gt to_transform 0;
            if eq to_health 0;
              set to_transform 0;
            end;
          end;
          return;

I am intrigued! Now i need a script to make Zombies turn into Chryssalids after 3-5 turns  by themselves.

Online CrazedHarpooner

  • Colonel
  • ****
  • Posts: 162
    • View Profile
Re: tweaking Chryssalids
« Reply #6 on: February 17, 2025, 02:41:04 pm »
Here you go
Code: [Select]
extended:
  tags:
    BattleUnit:
      AUTO_DEATH: int
      DEATH_COUNTUP: int

armors:
  - update: ZOMBIE_ARMOR
    scripts:
      createUnit: |
        var int auto_death;
        battle_game.randomRange auto_death 3 5;
        unit.setTag Tag.AUTO_DEATH auto_death;
        return;
      newTurnUnit: |
        var int auto_death;
        unit.getTag auto_death Tag.AUTO_DEATH;
        if gt auto_death 0;
          var int death_countup;
          unit.getTag death_countup Tag.DEATH_COUNTUP;
          if eq side FACTION_HOSTILE;
            add death_countup 1;
            unit.setTag Tag.DEATH_COUNTUP death_countup;
          else and eq side FACTION_PLAYER ge death_countup auto_death;
            unit.setHealth 0;
          end;
        end;
        return;

Scripts have been directly tied to the zombie armor, upon zombie creation a random roll will be made between 3 and 5, from that point, every alien turn AFTER spawning, a counter will go up for that zombie and at the start of the player turn it checks if the counter has reached that number and 'kill' the zombie, spawning the chryssalid. Time to die for the zombie will be slightly different depending if it spawned during the alien turn by direct alien action or during one of the other faction's turns.

Offline hellrazor

  • Commander
  • *****
  • Posts: 2058
  • Deep Ruleset Digger & Bughunter
    • View Profile
    • Github Account
Re: tweaking Chryssalids
« Reply #7 on: February 17, 2025, 03:34:47 pm »
Here you go
Code: [Select]
extended:
  tags:
    BattleUnit:
      AUTO_DEATH: int
      DEATH_COUNTUP: int

armors:
  - update: ZOMBIE_ARMOR
    scripts:
      createUnit: |
        var int auto_death;
        battle_game.randomRange auto_death 3 5;
        unit.setTag Tag.AUTO_DEATH auto_death;
        return;
      newTurnUnit: |
        var int auto_death;
        unit.getTag auto_death Tag.AUTO_DEATH;
        if gt auto_death 0;
          var int death_countup;
          unit.getTag death_countup Tag.DEATH_COUNTUP;
          if eq side FACTION_HOSTILE;
            add death_countup 1;
            unit.setTag Tag.DEATH_COUNTUP death_countup;
          else and eq side FACTION_PLAYER ge death_countup auto_death;
            unit.setHealth 0;
          end;
        end;
        return;

Scripts have been directly tied to the zombie armor, upon zombie creation a random roll will be made between 3 and 5, from that point, every alien turn AFTER spawning, a counter will go up for that zombie and at the start of the player turn it checks if the counter has reached that number and 'kill' the zombie, spawning the chryssalid. Time to die for the zombie will be slightly different depending if it spawned during the alien turn by direct alien action or during one of the other faction's turns.

This is something i really appreciate dude many Thanks. Now Hardmode Terrorsites with Chryssalids will be even more terrifying.
Uhh btw i also have a second Zombie unit spawning from Chryssalid Spitters, i guess i can just copy the script und use it on the other Zombies armor :)
Og course i will give credit.

Online CrazedHarpooner

  • Colonel
  • ****
  • Posts: 162
    • View Profile
Re: tweaking Chryssalids
« Reply #8 on: February 17, 2025, 03:44:57 pm »
Sure, no problem. Yeah, you can either copy the same scripts for the other armors or turn the scripts into global ones, but in this case you'll need to add some checks so it only executes for the zombie units you want and doesn't start killing units that aren't zombies. Not that hard since you can always use 'getSpawnUnit' to check if it's null or not for example. Make adjustments as per what you have in mind.