Author Topic: [EXPANSION]Hardmode Expansion -- General Feedback Thread  (Read 459534 times)

Offline hederino

  • Sergeant
  • **
  • Posts: 14
    • View Profile
Re: [EXPANSION]Hardmode Expansion -- General Feedback Thread
« Reply #885 on: June 10, 2024, 07:53:34 pm »
Does Bravery play a role in Psi Defence? AFAIK the psi attack and defence formulas are moddable. In my first Ethereal encounter, a Fighter UFO landing site in February 2000, they managed to get my high psi strength soldiers (one at 83 PST/49 PSK/10 BRV, another at 88/23/20) to panic like it was nothing. I would put it down to the relatively short distance due to the small map size or the controlling aliens being Eth leaders substituted for the lacking officer ranks, but they seemed to go for the low bravery ones to perform their mind tricks on.

Offline hellrazor

  • Moderator
  • Commander
  • ***
  • Posts: 2065
  • Deep Ruleset Digger & Bughunter
    • View Profile
    • Github Account
Re: [EXPANSION]Hardmode Expansion -- General Feedback Thread
« Reply #886 on: June 14, 2024, 11:22:51 pm »
Does Bravery play a role in Psi Defence? AFAIK the psi attack and defence formulas are moddable. In my first Ethereal encounter, a Fighter UFO landing site in February 2000, they managed to get my high psi strength soldiers (one at 83 PST/49 PSK/10 BRV, another at 88/23/20) to panic like it was nothing. I would put it down to the relatively short distance due to the small map size or the controlling aliens being Eth leaders substituted for the lacking officer ranks, but they seemed to go for the low bravery ones to perform their mind tricks on.

We are using vanilla PSI rules here. Bravery does not play a role in any PSI checks. Just to make that clear.
It gets checked after the morale is lowered (from PSI Panic e.g.) below 50 to see if any Panic action will happen (running in Panic, going berserk etc..) see: https://www.ufopaedia.org/index.php/Panic

I recommend Soldiers with PSI-Str 90+ against Ethereals. Usually you are safe with this for an distance at least against mind control.

Using 1 or 2 Psi weak Soldiers as Lightningrods is really helpful ;)

Also do not forget that distance plays a significant role in Psi Attacks. The more distance the lower the chance of any attack to succeed.

So yes smaller craft have smaller maps, so Ethereals might be more powerful on those (also depends on your random chance as usual).

Hope this answered your question ;)

Offline hederino

  • Sergeant
  • **
  • Posts: 14
    • View Profile
Re: [EXPANSION]Hardmode Expansion -- General Feedback Thread
« Reply #887 on: June 15, 2024, 09:02:45 pm »
Using 1 or 2 Psi weak Soldiers as Lightningrods is really helpful ;)

I would always take two to three inexperienced/sacrificial guys as psi sponges on missions where sectoid leaders would show up. I just wanted to see how psionically strong soldiers would fare against the eths. After all, there won't be enough psi sponges if it's not just the leaders who are psychics. And 90+ psi soldiers are hard to come by (less than 20 of them across three main bases so far).

On an unrelated note, I have a suggestion: the HWP limits for crafts don't apply just for 2x2 tanks, but also for drones. I was scrolling through the ruleset reference and saw that  parameters such as maxSmallVehicles and maxLargeVehicles exist. How about making use of this so that more drones can be carried by each type of craft?

Offline hellrazor

  • Moderator
  • Commander
  • ***
  • Posts: 2065
  • Deep Ruleset Digger & Bughunter
    • View Profile
    • Github Account
Re: [EXPANSION]Hardmode Expansion -- General Feedback Thread
« Reply #888 on: June 17, 2024, 02:28:59 pm »
I would always take two to three inexperienced/sacrificial guys as psi sponges on missions where sectoid leaders would show up. I just wanted to see how psionically strong soldiers would fare against the eths. After all, there won't be enough psi sponges if it's not just the leaders who are psychics. And 90+ psi soldiers are hard to come by (less than 20 of them across three main bases so far).

Screening for High PSI Str is a costly process, but totally worth it.
I usually start with a Team of 80+ and a Secondary Team of 69+, the secondary Team with some PSi Skill Training in the lab can be used relatively safely against Sectoids and the occasional mixed in Ethereal.
I screen for high psi 90+ and gather rookies and train them on the field, everyone else PSI Str 68- gets used for attacking alien bases  of non Psi races until they died a honorable Death on the battlefield. :)

Or you turn on the Option of PSI Str Improvement and let the 69+ guys slowly become 90ish :)
The Psi Str improvement can be done in the Psilab or on the battelfield (even thou the battelfield is way more effective.) and can be combined with bravery training. Obviously everyone below 69 is just trash.

On an unrelated note, I have a suggestion: the HWP limits for crafts don't apply just for 2x2 tanks, but also for drones. I was scrolling through the ruleset reference and saw that  parameters such as maxSmallVehicles and maxLargeVehicles exist. How about making use of this so that more drones can be carried by each type of craft?

I am hesitant regarding his change. Would need some testing. And you can bring at least 3 Drones/Tanks and a Maximum of 4 totally with the vanilla setting.

Here a suggestion on how it could be changed as a example:
Skyranger - Max 2 Drones and Max 2 Tanks
Skystriker - Max 4 Drones and Max 2 Tanks
Thunder - Max 4 Drones and Max 2 Tanks
Avenger - Max 6 Drones and Max 3 Tanks

No clue how to balance this at the moment.

The problem is which spaces on the Craft do they occupy on the Battelfield Map, it would requiere some testing to see how it behaves.

Offline Tamren

  • Captain
  • ***
  • Posts: 91
    • View Profile
Re: [EXPANSION]Hardmode Expansion -- General Feedback Thread
« Reply #889 on: November 06, 2024, 01:47:33 pm »
Never played this mod before, are there any submods I should load right away or can they all be considered optional?

Online Meridian

  • Global Moderator
  • Commander
  • *****
  • Posts: 9415
    • View Profile
Re: [EXPANSION]Hardmode Expansion -- General Feedback Thread
« Reply #890 on: November 06, 2024, 01:52:50 pm »
Submods are by definition optional.

Offline hellrazor

  • Moderator
  • Commander
  • ***
  • Posts: 2065
  • Deep Ruleset Digger & Bughunter
    • View Profile
    • Github Account
Re: [EXPANSION]Hardmode Expansion -- General Feedback Thread
« Reply #891 on: November 06, 2024, 04:55:25 pm »
Never played this mod before, are there any submods I should load right away or can they all be considered optional?

All so titeled SUBMODS on the Hardmode Expansion Board are a part of the Mod.
The SUBMODs only exist in seperate forms so vanilla Players, can also use them as mods alone, without Hardmode Expansion.

Just to make that clear :)

Submods are by definition optional.

Hardmode Expansion gaves birth to standalone SUBMODs and all of them are a part of Hardmode Expansion.

Offline Tamren

  • Captain
  • ***
  • Posts: 91
    • View Profile
Re: [EXPANSION]Hardmode Expansion -- General Feedback Thread
« Reply #892 on: November 07, 2024, 02:34:04 am »
Ah ok, not the usual way of doing things but it makes sense in context.

Offline hellrazor

  • Moderator
  • Commander
  • ***
  • Posts: 2065
  • Deep Ruleset Digger & Bughunter
    • View Profile
    • Github Account
Re: [EXPANSION]Hardmode Expansion -- General Feedback Thread
« Reply #893 on: January 16, 2025, 11:20:27 pm »
All Terrorsites now will also Spawn the Terrorship!
That was some headache work. Had to optimize all mapScripts for Terrorsiteterrains to make sure the UFO and Craft gets correctly spawned.

The most work took the DOWNTOWNURBAN terrain...
MapScript attached. No further Comment. Hobbes you are a mad man! In a positive way ;)
Thanks for converting all those lovely terrains from UFO2000 over to OpenXcom.

Offline CrazedHarpooner

  • Colonel
  • ****
  • Posts: 175
    • View Profile
Re: [EXPANSION]Hardmode Expansion -- General Feedback Thread
« Reply #894 on: January 17, 2025, 01:34:48 am »
Impressive and extensive. Hope nobody minds if I attempt to optimize the script, it does look like a challenge.

Offline hellrazor

  • Moderator
  • Commander
  • ***
  • Posts: 2065
  • Deep Ruleset Digger & Bughunter
    • View Profile
    • Github Account
Re: [EXPANSION]Hardmode Expansion -- General Feedback Thread
« Reply #895 on: January 17, 2025, 11:21:15 am »
Impressive and extensive. Hope nobody minds if I attempt to optimize the script, it does look like a challenge.

I already optimized it to the state i need it to be. And it is a very specific script.
First it places the Railstation 20x20 blocks randomly on the map, then it adds a horinzontal street from 10x10 blocks.
Then it checks for the 20x20 Railstation block and where the horizontel street is placed once found it will set a rail road crossing towards the specific position, then add all the other rails (10x10 blocks) needed on the line.
It checks every damn needed position, thats why it is so long, see checkBlock. There is no other way to script it differently.

Offline CrazedHarpooner

  • Colonel
  • ****
  • Posts: 175
    • View Profile
Re: [EXPANSION]Hardmode Expansion -- General Feedback Thread
« Reply #896 on: January 17, 2025, 04:23:49 pm »
Challenge accepted and completed. I took a different approach, instead of checking each individual block where the station could spawn (25 spots for a 20x20 block in a 60x60 map) I scanned the whole column reducing the number of total checkBlocks to 5 and overall commands for the whole script to 27. Tested the execution without fail for over 20 new battle generations with the github WIP version of the mod. I've documented the approach in the script file, so feel free the peruse as you wish.

Must thank you for this, as in the process I've realized that if an addLine command intersects with a block corresponding to the other orientation line blocks (vertical line intersects with horizontal road or horizontal line intersects with vertical road), the map generator will automatically replace the intersecting block with one of the crossing group. This also means that my script could be optimized even further, but requires the railroad crossing block to be assigned to its own group.

The script is contained within its own rul file so it can be dropped (and removed) easely in the ruleset folder.

Offline hellrazor

  • Moderator
  • Commander
  • ***
  • Posts: 2065
  • Deep Ruleset Digger & Bughunter
    • View Profile
    • Github Account
Re: [EXPANSION]Hardmode Expansion -- General Feedback Thread
« Reply #897 on: January 17, 2025, 05:58:38 pm »
Challenge accepted and completed. I took a different approach, instead of checking each individual block where the station could spawn (25 spots for a 20x20 block in a 60x60 map) I scanned the whole column reducing the number of total checkBlocks to 5 and overall commands for the whole script to 27. Tested the execution without fail for over 20 new battle generations with the github WIP version of the mod. I've documented the approach in the script file, so feel free the peruse as you wish.

Must thank you for this, as in the process I've realized that if an addLine command intersects with a block corresponding to the other orientation line blocks (vertical line intersects with horizontal road or horizontal line intersects with vertical road), the map generator will automatically replace the intersecting block with one of the crossing group. This also means that my script could be optimized even further, but requires the railroad crossing block to be assigned to its own group.

The script is contained within its own rul file so it can be dropped (and removed) easely in the ruleset folder.

Ok, nice!
I am gonna test it. Lets see what it produces. Thank dude.

Offline CrazedHarpooner

  • Colonel
  • ****
  • Posts: 175
    • View Profile
Re: [EXPANSION]Hardmode Expansion -- General Feedback Thread
« Reply #898 on: January 17, 2025, 07:24:33 pm »
The script is contained within its own rul file so it can be dropped (and removed) easely in the ruleset folder.
I just realized a large mistake in this part. There's no guaranteed load order of the rul files, if for whatever reason, OXCE loads my file before your mapscript file, this will result in my script getting replaced by yours. To ensure propper testing you might want to allocate it in it's own small mod or rename either your script or mine to something else during testing (IE: DOWNTOWNURBAN_2). If you rename mine, ensure the terrain points to this new name. Sorry for that mistake.

Offline hellrazor

  • Moderator
  • Commander
  • ***
  • Posts: 2065
  • Deep Ruleset Digger & Bughunter
    • View Profile
    • Github Account
Re: [EXPANSION]Hardmode Expansion -- General Feedback Thread
« Reply #899 on: January 18, 2025, 02:59:01 pm »
Challenge accepted and completed. I took a different approach, instead of checking each individual block where the station could spawn (25 spots for a 20x20 block in a 60x60 map) I scanned the whole column reducing the number of total checkBlocks to 5 and overall commands for the whole script to 27. Tested the execution without fail for over 20 new battle generations with the github WIP version of the mod. I've documented the approach in the script file, so feel free the peruse as you wish.

Must thank you for this, as in the process I've realized that if an addLine command intersects with a block corresponding to the other orientation line blocks (vertical line intersects with horizontal road or horizontal line intersects with vertical road), the map generator will automatically replace the intersecting block with one of the crossing group. This also means that my script could be optimized even further, but requires the railroad crossing block to be assigned to its own group.

The script is contained within its own rul file so it can be dropped (and removed) easely in the ruleset folder.

I tested your Version of the mapScript and i got some Errors. Random crashes occured sometimes and I was wondering why.
Turns out the addCraft has to be set after addUFO. There can be cases when the addCraft command may fail thats why it has to be executed before the second Road!
I had to debug and came up with this (Please notice that Railstation now only has a 75% Execution chance, so it will not always spawn but very often):

Code: [Select]
#BEGIN DOWNTOWN
  - type: DOWNTOWNURBAN
    commands:
    - type: resize #We need 60x60x8
      size: [6, 6, 8]
    - type: addBlock #Add Rail Station
      size: 2
      blocks: 8
      executionChances: 75
    - type: addLine #Add EW Roads
      direction: horizontal
      executionChances: 75
#Position 0,0 - 0,4
    - type: checkBlock #Check Railstation
      label: 10
      size: 2
      blocks: 8
      rects:
        - [0, 0, 1, 6]
    - type: fillArea #Place Rails
      conditionals: 10
      blocks: [9, 21]
      rects:
        - [0, 0, 1, 6]
    - type: checkBlock #Check EW Roadblock
      label: 20
      conditionals: 10
      blocks: [10, 18, 19]
      rects:
        - [0, 0, 1, 6]
    - type: removeBlock #Remove EW Roadblock
      conditionals: 20
      groups: 2 #Using groups here is the only way!
      rects:
        - [0, 0, 1, 6]
    - type: addBlock #Add Rail Road Cross
      conditionals: 20
      blocks: 12
      rects:
        - [0, 0, 1, 6]
#Position 1,0 - 1,4
    - type: checkBlock #Check Railstation
      label: 11
      conditionals: -10
      size: 2
      blocks: 8
      rects:
        - [1, 0, 1, 6]
    - type: fillArea #Place Rails
      conditionals: 11
      blocks: [9, 21]
      rects:
        - [1, 0, 1, 6]
    - type: checkBlock #Check EW Roadblock
      label: 21
      conditionals: 11
      blocks: [10, 18, 19]
      rects:
        - [1, 0, 1, 6]
    - type: removeBlock #Remove EW Roadblock
      conditionals: 21
      groups: 2 #Using groups here is the only way!
      rects:
        - [1, 0, 1, 6]
    - type: addBlock #Add Rail Road Cross
      conditionals: 21
      blocks: 12
      rects:
        - [1, 0, 1, 6]
#Position 2,0 - 2,4
    - type: checkBlock #Check Railstation
      label: 12
      conditionals: [-10, -11]
      size: 2
      blocks: 8
      rects:
        - [2, 0, 1, 6]
    - type: fillArea #Place Rails
      conditionals: 12
      blocks: [9, 21]
      rects:
        - [2, 0, 1, 6]
    - type: checkBlock #Check EW Roadblock
      label: 22
      conditionals: 12
      blocks: [10, 18, 19]
      rects:
        - [2, 0, 1, 6]
    - type: removeBlock #Remove EW Roadblock
      conditionals: 22
      groups: 2 #Using groups here is the only way!
      rects:
        - [2, 0, 1, 6]
    - type: addBlock #Add Rail Road Cross
      conditionals: 22
      blocks: 12
      rects:
        - [2, 0, 1, 6]
#Position 3,0 - 3,4
    - type: checkBlock #Check Railstation
      label: 13
      conditionals: [-10, -11, -12]
      size: 2
      blocks: 8
      rects:
        - [3, 0, 1, 6]
    - type: fillArea #Place Rails
      conditionals: 13
      blocks: [9, 21]
      rects:
        - [3, 0, 1, 6]
    - type: checkBlock #Check EW Roadblock
      label: 23
      conditionals: 13
      blocks: [10, 18, 19]
      rects:
        - [3, 0, 1, 6]
    - type: removeBlock #Remove EW Roadblock
      conditionals: 23
      groups: 2 #Using groups here is the only way!
      rects:
        - [3, 0, 1, 6]
    - type: addBlock #Add Rail Road Cross
      conditionals: 23
      blocks: 12
      rects:
        - [3, 0, 1, 6]
#Position 4,0 - 4,4
    - type: checkBlock #Check Railstation
      label: 14
      conditionals: [-10, -11, -12,-13]
      size: 2
      blocks: 8
      rects:
        - [4, 0, 1, 6]
    - type: fillArea #Place Rails
      conditionals: 14
      blocks: [9, 21]
      rects:
        - [4, 0, 1, 6]
    - type: checkBlock #Check EW Roadblock
      label: 24
      conditionals: 14
      blocks: [10, 18, 19]
      rects:
        - [4, 0, 1, 6]
    - type: removeBlock #Remove EW Roadblock
      conditionals: 24
      groups: 2 #Using groups here is the only way!
      rects:
        - [4, 0, 1, 6]
    - type: addBlock #Add Rail Road Cross
      conditionals: 24
      blocks: 12
      rects:
        - [4, 0, 1, 6]
#End Position Checks
    - type: addUFO
    - type: addCraft
    - type: addLine
      direction: vertical
      executionChances: 75
    - type: addBlock
      size: 2
      executions: 6
      blocks: [1, 6, 14, 15]
      freqs: [3, 2, 2, 3]
      maxUses: [3, 3, 3, 3]
    - type: fillArea
      blocks: [2, 3, 5, 7, 16, 17]
      freqs: [3, 2, 3, 3, 3, 3]
      maxUses: [3, 3, 3, 3, 3, 3]
#END DOWNTOWN

I will credit you for the initial optimization. :)

Funnily enough not using "groups" on the removeBlock command clears the entire line, even if you only define certain blocks or a specific block. This seems to only work with the "groups" thingy properly.
No off to let this Railstation spawn on the normal URBAN terrain :D
« Last Edit: January 18, 2025, 05:45:13 pm by hellrazor »