Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - The Martian

Pages: [1] 2 3 ... 41
1
Released Mods / Re: What is the most carefree mod now?
« on: May 25, 2022, 09:36:34 pm »
Perhaps Final Mod Pack may be of interest you you?

It plays like an expanded version of the original X-COM: UFO Defense campaign.

2
Work In Progress / Re: [TFTD][WIP][OXCE] Zrbite Laser Rifle
« on: May 15, 2022, 01:15:10 pm »
I've updated the mod to include a laser beam projectile sprite:
Zrbite Laser Rifle V0-2.zip

Nice art, but what about moving scope a bit up, looks too close to eye.

More like this?

Old / New:
/

3
Help / Re: How are the sprite sheets for bullet sprites laid out?
« on: May 15, 2022, 01:03:35 pm »
It was chains like this that were throwing me off as there are dots before the larger blocks and I thought it was an animation loop of some kind:


But after watching it closely ingame I see what you are describing:


Thank you for the help.

4
Thank you for checking that, it is working great.

5
Thank you for the information, I'll plan around that when trying to make use of Overkill.

6
Help / Re: Limiting Artifact Site mission spawn rate in TFTD
« on: May 14, 2022, 05:59:50 pm »
The chance of that happening is 0.02% (or 1 in 4000).
Not even worth a discussion, just start a new campaign.

I've already finished the 12 Artifact Sites so its clear sailing for me during my run, this mod was going to be more for other players to keep them from potentially living through that gruelling 12 in a row.

It sounds like I just got really unlucky though. (Or really lucky if you like Artifact Site missions.)


You have maxRuns=1 and the same varName for all items; so the first run already turns them all off.

Thank you for the help.

I can see the utility in them being able to share the same variable like that.

Different missionScripts: entries can all share the same varName: allowing for a random combination of these missions to spawn with each contributing to their combined set exceeding the maxRuns: value.


To make the code I was working with correct I see two methods:

(Method #1)
Change varName: artifacts to something unique for each entry.

Example:
Code: [Select]
missionScripts:

# [=] Remove old Artifact Site mission [=]
  - delete: artifacts


# [=] Artifacts Site #1 of #12 [=]
  - type: artifacts_1
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts_1
    useTable: false
    firstMonth: 6
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #2 of #12 [=]
  - type: artifacts_2
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts_2
    useTable: false
    firstMonth: 8
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #3 of #12 [=]
  - type: artifacts_3
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts_3
    useTable: false
    firstMonth: 10
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #4 of #12 [=]
  - type: artifacts_4
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts_4
    useTable: false
    firstMonth: 12
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #5 of #12 [=]
  - type: artifacts_5
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts_5
    useTable: false
    firstMonth: 14
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #6 of #12 [=]
  - type: artifacts_6
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts_6
    useTable: false
    firstMonth: 16
    executionOdds: 100
    startDelay: 0

# [=] Artifacts Site #7 of #12 [=]
  - type: artifacts_7
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts_7
    useTable: false
    firstMonth: 18
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #8 of #12 [=]
  - type: artifacts_8
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts_8
    useTable: false
    firstMonth: 20
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #9 of #12 [=]
  - type: artifacts_9
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts_9
    useTable: false
    firstMonth: 22
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #10 of #12 [=]
  - type: artifacts_10
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts_10
    useTable: false
    firstMonth: 24
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #11 of #12 [=]
  - type: artifacts_11
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts_11
    useTable: false
    firstMonth: 26
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #12 of #12 [=]
  - type: artifacts_12
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts_12
    useTable: false
    firstMonth: 28
    executionOdds: 100
    startDelay: 0



(Method #2)
Keep each of the twelve artifact entries using the same varName: but raise their maxRuns: back to 12 and limit each entry to only run on the same month that firstMonth: is set for by also configuring an end date with lastMonth:

Example:
Code: [Select]
missionScripts:

# [=] Remove old Artifact Site mission [=]
  - delete: artifacts


# [=] Artifacts Site #1 of #12 [=]
  - type: artifacts_1
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 12
    varName: artifacts
    useTable: false
    firstMonth: 6
    lastMonth: 6
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #2 of #12 [=]
  - type: artifacts_2
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 12
    varName: artifacts
    useTable: false
    firstMonth: 8
    lastMonth: 8
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #3 of #12 [=]
  - type: artifacts_3
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 12
    varName: artifacts
    useTable: false
    firstMonth: 10
    lastMonth: 10
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #4 of #12 [=]
  - type: artifacts_4
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 12
    varName: artifacts
    useTable: false
    firstMonth: 12
    lastMonth: 12
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #5 of #12 [=]
  - type: artifacts_5
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 12
    varName: artifacts
    useTable: false
    firstMonth: 14
    lastMonth: 14
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #6 of #12 [=]
  - type: artifacts_6
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 12
    varName: artifacts
    useTable: false
    firstMonth: 16
    lastMonth: 16
    executionOdds: 100
    startDelay: 0

# [=] Artifacts Site #7 of #12 [=]
  - type: artifacts_7
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 12
    varName: artifacts
    useTable: false
    firstMonth: 18
    lastMonth: 18
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #8 of #12 [=]
  - type: artifacts_8
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 12
    varName: artifacts
    useTable: false
    firstMonth: 20
    lastMonth: 20
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #9 of #12 [=]
  - type: artifacts_9
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 12
    varName: artifacts
    useTable: false
    firstMonth: 22
    lastMonth: 22
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #10 of #12 [=]
  - type: artifacts_10
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 12
    varName: artifacts
    useTable: false
    firstMonth: 24
    lastMonth: 24
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #11 of #12 [=]
  - type: artifacts_11
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 12
    varName: artifacts
    useTable: false
    firstMonth: 26
    lastMonth: 26
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #12 of #12 [=]
  - type: artifacts_12
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 12
    varName: artifacts
    useTable: false
    firstMonth: 28
    lastMonth: 28
    executionOdds: 100
    startDelay: 0

7
I think I may have a possible solution so long as the unit is civilian or alien, it won't work for a X-Com unit as the player could remove the required item from their inventory.

If an auto-primed grenade is placed in the units backpack with RadiusReduction: 100.0 and damageAlter: setup to only provide damage via ToItem: in theory the grenade will clean up the invisible corpse so long as the blast exceeds the corpse item's armor: value.

The negative of this approach that I can see is that the player's camera will snap to that location briefly when the grenade explodes which could accidentally trick the player into thinking there is alien activity in that section of the map.

I haven't tried it yet, but I think it could work.

I already said it's not feasible to use the current overkill feature for your use case.
Don't know what else do you expect me to say...

I was hoping that your previous message was only covering the changes possible via the existing .rul yaml variables and not the advanced scripting.

Thank you for confirming that there is no script command to trigger the Overkill state on demand, that saves me a lot of trial and error.

Right now most of scripts are caped on 0 when you can current health, one way as hack is set `overKill` in armor to negative value, but this will have side effect like items in inventory start getting damage when your hp is very low and game start consider it "overkill".

If I set the equipment carried by the unit to have an unusually high armor: value would that negate the problem with a negative Overkill value on the armor setting destroying the units equipment?




Additional question: can Overkill be triggered by a death caused by fatal wounds or negative health recovery on the unit's armor or is an Overkill only able to occur from direct weapon damage?

8
Help / How are the sprite sheets for bullet sprites laid out?
« on: May 14, 2022, 01:36:51 pm »
Could someone please explain the layout of the bullet sprite images?


How does this animate and how big is each frame?

What part is the bullet and what part is the trail that follows it?

9
Help / Limiting Artifact Site mission spawn rate in TFTD
« on: May 14, 2022, 01:27:25 pm »
I just finished the 12th Artifact Site in my current Terror From The Deep playthrough with no Port Attack, Island Attack or Shipping Lane Mission appearing in between the constant stream of Artifact Site missions.

In an effort to add some variety to missions I've been trying to break up the rate that Artifact Sites can be generated to allow for some standard alien terror missions to spawn as well.


For my first attempt I tried deleting the "artifacts" entry in missionScripts: and replacing it with twelve similar entries named:
artifacts_1
artifacts_2
artifacts_3
artifacts_4
artifacts_5
artifacts_6
artifacts_7
artifacts_8
artifacts_9
artifacts_10
artifacts_11
artifacts_12


Each of these new entries have a maxRuns: of 1 instead of 12 and are setup through firstMonth: to generate an Artifact Site every two months which will hopefully give the aliens a chance to spawn alternate missions in the month between the guaranteed Artifact spawns.

Unfortunately only artifacts_1 seems to run so this isn't working currently. I suspect it may have something to do with label: but I do not understand missionScripts: well enough to do more than guess.



Here is the code I'm working with:
Code: [Select]
missionScripts:

# [=] Remove old Artifact Site mission [=]
  - delete: artifacts


# [=] Artifacts Site #1 of #12 [=]
  - type: artifacts_1
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts
    useTable: false
    firstMonth: 6
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #2 of #12 [=]
  - type: artifacts_2
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts
    useTable: false
    firstMonth: 8
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #3 of #12 [=]
  - type: artifacts_3
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts
    useTable: false
    firstMonth: 10
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #4 of #12 [=]
  - type: artifacts_4
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts
    useTable: false
    firstMonth: 12
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #5 of #12 [=]
  - type: artifacts_5
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts
    useTable: false
    firstMonth: 14
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #6 of #12 [=]
  - type: artifacts_6
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts
    useTable: false
    firstMonth: 16
    executionOdds: 100
    startDelay: 0

# [=] Artifacts Site #7 of #12 [=]
  - type: artifacts_7
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts
    useTable: false
    firstMonth: 18
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #8 of #12 [=]
  - type: artifacts_8
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts
    useTable: false
    firstMonth: 20
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #9 of #12 [=]
  - type: artifacts_9
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts
    useTable: false
    firstMonth: 22
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #10 of #12 [=]
  - type: artifacts_10
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts
    useTable: false
    firstMonth: 24
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #11 of #12 [=]
  - type: artifacts_11
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts
    useTable: false
    firstMonth: 26
    executionOdds: 100
    startDelay: 0


# [=] Artifacts Site #12 of #12 [=]
  - type: artifacts_12
    label: 1
    missionWeights:
      0:
        STR_ALIEN_ARTIFACT: 100
    regionWeights:
      0:
        ARTIFACT_SITES: 100
    avoidRepeats: 1
    maxRuns: 1
    varName: artifacts
    useTable: false
    firstMonth: 28
    executionOdds: 100
    startDelay: 0

10
Probably, this is off-topic, but why do you need an invisible item?

For units that explode, vaporize, disintegrate or otherwise blink out of existence during their death animation and don't leave a corpse.

Overkill feature can vaporize the body, but there is no (sane) way to apply it to just one unit.

I saw "BattleUnit.getOverKillDamage" in the openxcom.log file's list of script commands, can Overkill be triggered by a script on the units death?

Alternatively is there perhaps a way via scripting that I can just make the unit be deleted/removed from the battlescape on death skipping both the corpse creation and death animation completely?

At the moment it seems I can only limit a unit's death animation via deathFrames: to a minimum of 1 frame of animation and there is a slight pause when the unit dies that would be really nice to skip in some cases.

Because heaviest item shows on top, maybe just make invisible corpse weight = 0?
not in oxce

Is there a variable in OXCE to control FloorOb draw order? (Like how listOrder: controls the item order in GeoScape menus.)

11
Work In Progress / [TFTD][WIP][OXCE] Zrbite Laser Rifle
« on: May 14, 2022, 12:49:48 pm »
A small mod that adds an additional weapon that can be researched by X-Com, the Zrbite Laser Rifle.


This weapon could prove useful when clearing out aliens during those long cargo ship or cruise ship missions as it can only be operated when above water.





This mod is not currently feature complete and lacks the following:
. Laser Firing Sound Effects.

Downloads:
. Zrbite Laser Rifle (V0-2)
. Zrbite Laser Rifle (V0-1)

12
OpenXcom Extended Version: 7.5.7 (v2022-03-07)

I've noticed that if I add maxRange: to a weapon and give it to an enemy unit they just stop moving when they come into sight range of an X-Com unit instead of closing the distance and firing.

Here is an example mod that makes all the alien weapons have a setting of maxRange: 9.
Test_maxRange.zip

Code: [Select]
items:

  - type: STR_SONIC_CANNON
    maxRange: 9

  - type: STR_SONIC_BLASTA_RIFLE
    maxRange: 9

  - type: STR_SONIC_PISTOL
    maxRange: 9

  - type: STR_DISRUPTOR_PULSE_LAUNCHER
    maxRange: 9

  - type: STR_THERMAL_SHOK_LAUNCHER
    maxRange: 9


This unit can see X-Com soldiers, and hasn't moved for 3 turns:
Spoiler:

There are other alien units in similar frozen states as well at the time of the screenshot which is where the
"Attack type=12 target=(24,18,0) weapon=STR_DISRUPTOR_PULSE_LAU..." debug message is most likely coming from.

Here is an even better example, If I reduce the maxRange: to 1 this unit is stuck in place and I can walk soldiers right up to it and it never tries to move forward:
Spoiler:

13
Playthroughs / Re: OG TFTD playthrough
« on: May 02, 2022, 05:38:37 am »
This sounds like it will be fun to watch.

Can you please provide a link to where you are uploading your campaign run?

14
I noticed that if I try to make a unit leave no corpse by giving the corpse item a blank image for the FloorOb image it kind of works in that it can no longer be seen, but any other items on that tile are hidden behind the invisible corpse FloorOb.

Example, the cursor is over a corpse item FloorOb that is covering a stack of items:
Spoiler:

Example invisible corpse images for BigOb, FloorOb, HandOb:
Spoiler:




Is there a way that units can be setup to drop no corpse item on death?

15
Help / Re: New alien race not spawning in UFOs when expected
« on: May 02, 2022, 05:14:33 am »
Thank you that was it.

Code: [Select]
missionScripts:
  - type: gameStart
    missionWeights:
      0:
        STR_ALIEN_PROBE_MISSION: 100
    lastMonth: 0
    targetBaseOdds: 100
    raceWeights:
      0:
        STR_AQUATOID: 100
    startDelay: 120

Pages: [1] 2 3 ... 41