OpenXcom Forum
Modding => Work In Progress => Topic started by: Quinch on December 23, 2015, 12:47:28 am
-
Hey everyone - I was wondering if I could pick the brains of more knowledgeable folks to help me figure this out.
Short version, I want to have mini-terrors about once a week, with the premise of "an alien force wades out of the ocean". Gameplay-wise, a hybrid of ocean liners {no UFOs} and regular terrors.
But, the game crashes whenever it {presumably} tries to spawn. Having it as a new battle loads the battlescape normally, so presumably it's the missionsite spawning that makes things go bonk. Also, this is just proof-of-concept, I'll do actual gameplay balancing once things actually work.
So, without further ado, the code.
missionScripts:
- type: coastalRaid
conditionals: [-1]
label: 8
missionWeights:
0:
STR_ALIEN_COASTAL_RAID: 100
regionWeights:
0:
ALIEN_COASTAL_RAIDS: 100
avoidRepeats: 5
varName: coastalRaids
useTable: true
firstMonth: 1
executionOdds: 100
startDelay: 0
regions:
- type: ALIEN_COASTAL_RAIDS
missionZones:
-
- [285.067, -36.592, 285.067, -36.592, -5, STR_A]
- [303.819, -46.465, 303.819, -46.465, -5, STR_B]
alienMissions:
- type: STR_ALIEN_COASTAL_RAID
points: 0
objective: 3
spawnZone: 3 #Mission zone for terror missions
raceWeights:
0:
STR_AQUATOID: 20
STR_GILLMAN: 20
STR_MIXED_CREW: 20
STR_LOBSTERMAN: 20
STR_TASOTH: 20
waves:
- ufo: dummy #don't spawn a ufo, we only want the site
count: 4
trajectory: P10
timer: 43200
objective: true
alienDeployments:
- type: ALIEN_COASTAL_RAIDS
data:
- alienRank: 5
lowQty: 4
highQty: 6
dQty: 1
percentageOutsideUfo: 70
itemSets:
-
- STR_SONIC_PISTOL
- STR_PISTOL_POWER_CLIP
- STR_PISTOL_POWER_CLIP
-
- STR_SONIC_BLASTA_RIFLE
- STR_BLASTA_POWER_CLIP
- STR_BLASTA_POWER_CLIP
- STR_SONIC_PULSER
-
- STR_SONIC_CANNON
- STR_CANNON_POWER_CLIP
- STR_CANNON_POWER_CLIP
- STR_CANNON_POWER_CLIP
- STR_SONIC_PULSER
- alienRank: 4
lowQty: 1
highQty: 2
dQty: 0
percentageOutsideUfo: 20
itemSets:
-
- STR_SONIC_PISTOL
- STR_PISTOL_POWER_CLIP
- STR_PISTOL_POWER_CLIP
- STR_SONIC_PULSER
-
- STR_THERMAL_SHOK_LAUNCHER
- STR_THERMAL_SHOK_BOMB
- STR_THERMAL_SHOK_BOMB
- STR_THERMAL_SHOK_BOMB
- STR_THERMAL_SHOK_BOMB
-
- STR_SONIC_CANNON
- STR_CANNON_POWER_CLIP
- STR_CANNON_POWER_CLIP
- STR_SONIC_PULSER
- STR_MC_READER
width: 50
length: 50
height: 4
civilians: 16
terrains:
- PORT
script: PORT_TERROR
briefing:
palette: 4
music: GMISPOSH
alert: STR_ALIENS_LAUNCH_PORT_TERROR
alertBackground: BACK03.SCR
markerName: STR_TERROR_SITE
duration: [4, 10]
despawnPenalty: 1000
globe:
textures:
- id: -5
deployments:
STR_ALIEN_COASTAL_RAID: 100
-
missionScripts:
regions:
- type: ALIEN_COASTAL_RAIDS
missionZones:
-
- [285.067, -36.592, 285.067, -36.592, -5, STR_A]
- [303.819, -46.465, 303.819, -46.465, -5, STR_B]
Those should be:
- [285.067, 285.067, -36.592, -36.592, -5, STR_A]
- [303.819, 303.819, -46.465, -46.465, -5, STR_B]
You should also add the STR_s since there's one situation where their lack can cause a crash, although I can't remember where exactly (might not be here)
alienMissions:
- type: STR_ALIEN_COASTAL_RAID
points: 0
objective: 3
spawnZone: 3 #Mission zone for terror missions
spawnZone should be 0, since you don't have any other missionZones defined for the ALIEN_COASTAL_RAIDS region.
waves:
- ufo: dummy #don't spawn a ufo, we only want the site
count: 4
You're trying to spawn 4 missionSites (a.k.a. objective: 3 missions) while you only have coordinates defined for 2 sites. With missionSites you can't define large areas for the game to spawn the sites, they require specific coordinates, like the cities.
Try it after fixing those.
-
Oh, one more thing - those missions aren't targeting cities, but rather random {well, pre-defined} locations along the coast.
-
Oh, one more thing - those missions aren't targeting cities, but rather random {well, pre-defined} locations along the coast.
As long as you define their coordinates like the cities [X, X, Y, Y] instead of defining areas [X1, X2, Y1, Y2] it shouldn't matter.
I'm trying now to get your script to ran in TFTD and noticed something else that needs to be changed:
useTable: true
This should be false, since you don't have these missions added to the table.
-
Adjustments made;
- [285.067, 285.067, -36.592, -36.592, -5]
- [303.819, 303.819, -46.465, -46.465, -5]
- [262.632, 262.632, -26.764, -26.764, -5]
- [279.239, 279.239, -28.000, -28.000, -5]
- [282.329, 282.329, -33.704, -33.704, -5]
{yeah, I screwed up the coordinate layout. I am hoping to avoid having location names, though}
useTable: false
spawnZone: 0
Still crashes tho.
Also, what is the table, exactly? I'm kind of fuzzy on that.
-
This one is working on Geoscape and the tactical mission is launched correctly, although it keeps crashing in New Battle for some weird reason:
missionScripts:
- type: coastalRaid
missionWeights:
0:
STR_ALIEN_COASTAL_RAID: 100
regionWeights:
0:
ALIEN_COASTAL: 100
useTable: false
firstMonth: 0
executionOdds: 100
startDelay: 0
regions:
- type: ALIEN_COASTAL
missionZones:
-
- [28.067, 28.067, -36.592, -36.592, -5, STR_A]
- [33.819, 33.819, -46.465, -46.465, -5, STR_B]
- [35.819, 35.819, -46.465, -46.465, -5, STR_C]
- [37.819, 37.819, -48.465, -48.465, -5, STR_D]
alienMissions:
- type: STR_ALIEN_COASTAL_RAID
points: 0
objective: 3
spawnZone: 0
raceWeights:
0:
STR_AQUATOID: 20
waves:
- ufo: dummy #don't spawn a ufo, we only want the site
count: 1
trajectory: P10
timer: 200
objective: true
alienDeployments:
- type: STR_COASTAL_RAID
data:
- alienRank: 5
lowQty: 4
highQty: 6
dQty: 1
percentageOutsideUfo: 70
itemSets:
-
- STR_SONIC_PISTOL
- STR_PISTOL_POWER_CLIP
- STR_PISTOL_POWER_CLIP
-
- STR_SONIC_BLASTA_RIFLE
- STR_BLASTA_POWER_CLIP
- STR_BLASTA_POWER_CLIP
- STR_SONIC_PULSER
-
- STR_SONIC_CANNON
- STR_CANNON_POWER_CLIP
- STR_CANNON_POWER_CLIP
- STR_CANNON_POWER_CLIP
- STR_SONIC_PULSER
- alienRank: 4
lowQty: 1
highQty: 2
dQty: 0
percentageOutsideUfo: 20
itemSets:
-
- STR_SONIC_PISTOL
- STR_PISTOL_POWER_CLIP
- STR_PISTOL_POWER_CLIP
- STR_SONIC_PULSER
-
- STR_THERMAL_SHOK_LAUNCHER
- STR_THERMAL_SHOK_BOMB
- STR_THERMAL_SHOK_BOMB
- STR_THERMAL_SHOK_BOMB
- STR_THERMAL_SHOK_BOMB
-
- STR_SONIC_CANNON
- STR_CANNON_POWER_CLIP
- STR_CANNON_POWER_CLIP
- STR_SONIC_PULSER
- STR_MC_READER
width: 50
length: 50
height: 4
civilians: 16
terrains:
- PORT
script: PORT_TERROR
briefing:
palette: 4
music: GMISPOSH
alert: STR_ALIENS_LAUNCH_PORT_TERROR
alertBackground: BACK03.SCR
markerName: STR_TERROR_SITE
duration: [4, 10]
despawnPenalty: 1000
globe:
textures:
- id: -5
deployments:
STR_COASTAL_RAID: 100
extraStrings:
- type: en-US
strings:
STR_COASTAL_RAID: COASTAL RAID
STR_COASTAL_RAID_BRIEFING: COASTAL RAID BRIEFING
STR_ALIEN_COASTAL_RAID: ALIEN COASTAL RAID
STR_A: a
STR_B: b
STR_C: C
I changed/stripped your code of some minor details to make sure everything is working.
-
{yeah, I screwed up the coordinate layout. I am hoping to avoid having location names, though}
You can avoid specific location names, but it will use instead the markerName: STR_TERROR_SITE for the location.
Also, what is the table, exactly? I'm kind of fuzzy on that.
The mission table is made out of this definitions in regions:
- type: STR_NORTH_ATLANTIC
regionWeight: 18
missionWeights:
STR_ALIEN_PROBE_MISSION: 14
STR_ALIEN_INTERDICTION: 16
STR_ALIEN_RESOURCE_RAID: 20
STR_ALIEN_INFILTRATION: 20
STR_ALIEN_BASE: 20
When the game starts it generates a table composed of all the entries on missionWeights of all regions. Then, when the game is runs missionScripts at the 1st of each month, it chooses a region and a mission for any entries that are set as useTable: false, generates the mission, and removes the mission from the table (so that you don't get repeats). When the mission table is empty (usually by the 2nd year) it refills the missionTable.
-
Also, this will repeat the attack on the same location:
waves:
- ufo: dummy #don't spawn a ufo, we only want the site
count: 2
Same happens if you try this:
waves:
- ufo: dummy #don't spawn a ufo, we only want the site
count: 1
- ufo: dummy #don't spawn a ufo, we only want the site
count: 1
-
Oh. So can I have them happen on different locations, or do I need to define different missionScripts for that, i.e. coastalRaid1stweek, etc.?
-
Oh. So can I have them happen on different locations, or do I need to define different missionScripts for that, i.e. coastalRaid1stweek, etc.?
I tried adding a 2nd entry to missionScripts but the game kept crashing when it tries to generate the 2nd site, which is weird but at this point I'm too tired to figure it out. Might require also a separate region or simply more "city" entries on missionZones.
-
I'd make it 4 separate missions that run simultaneously, or at least break the mission up into 4 waves. I think spawning 4 sites at once isn't a good idea.
-
Yep. Currently, though, there's a different issue - the raid launches normally. However, when an actual terror mission comes up {as soon as the battleship lands}, the game crashes again.
I'm assuming there's some sort of conflict between the two, but for the life of me, I don't know what.
-
Do you have your alienDeployments set for your new type of Terror Mission? And terrains?
-
I believe so.
https://pastebin.com/BHAicdtG
-
:D
(https://dl.dropboxusercontent.com/u/18824603/Coastal%20Raids.png)
Here's the ruleset:
missionScripts:
- type: coastalRaid1
missionWeights:
0:
STR_ALIEN_COASTAL_RAID1: 100
regionWeights:
0:
ALIEN_COASTAL1: 100
useTable: false
firstMonth: 0
executionOdds: 100
startDelay: 0
- type: coastalRaid2
missionWeights:
0:
STR_ALIEN_COASTAL_RAID2: 100
regionWeights:
0:
ALIEN_COASTAL2: 100
useTable: false
firstMonth: 0
executionOdds: 100
startDelay: 0
- type: coastalRaid3
missionWeights:
0:
STR_ALIEN_COASTAL_RAID3: 100
regionWeights:
0:
ALIEN_COASTAL3: 100
useTable: false
firstMonth: 0
executionOdds: 100
startDelay: 0
- type: coastalRaid4
missionWeights:
0:
STR_ALIEN_COASTAL_RAID4: 100
regionWeights:
0:
ALIEN_COASTAL4: 100
useTable: false
firstMonth: 0
executionOdds: 100
startDelay: 0
regions:
- type: ALIEN_COASTAL1
missionZones:
-
- [32.94, 32.94, -31.13, -31.13, -5]
- [25.6, 25.6, 33.958, 33.958, -5]
- [7, 7, -4.75, -4.75, -5]
- [121.68, 121.68, -38.916, -38.916, -5]
- type: ALIEN_COASTAL2
missionZones:
-
- [73.827, 73.827, -15.498, -15.498, -5]
- [324.527, 324.527, 5.294, 5.294, -5]
- [356.39, 356.39, -51.33, -51.33, -5]
- [355.431, 355.431, -48.231, -48.231, -5]
- type: ALIEN_COASTAL3
missionZones:
-
- [10.686, 10.686, -53.869, -53.869, -5]
- [-8.25, -8.25, -43.466, -43.466, -5]
- [12.45, 12.45, -45.59, -45.59, -5]
- [37.788, 37.788, -44.725, -44.725, -5]
- type: ALIEN_COASTAL4
missionZones:
-
- [141.866, 141.866, 12.616, 12.616, -5]
- [263.552, 263.552, -28.169, -28.169, -5]
- [-66.383, -66.383, -50.216, -50.216, -5]
- [91.8, 91.8, -22.366, -22.366, -5]
alienMissions:
- type: STR_ALIEN_COASTAL_RAID1
points: 0
objective: 3
spawnZone: 0
raceWeights:
0:
STR_AQUATOID: 20
waves:
- ufo: dummy #don't spawn a ufo, we only want the site
count: 1
trajectory: P10
timer: 200
objective: true
- type: STR_ALIEN_COASTAL_RAID2
points: 0
objective: 3
spawnZone: 0
raceWeights:
0:
STR_AQUATOID: 20
waves:
- ufo: dummy #don't spawn a ufo, we only want the site
count: 1
trajectory: P10
timer: 200
objective: true
- type: STR_ALIEN_COASTAL_RAID3
points: 0
objective: 3
spawnZone: 0
raceWeights:
0:
STR_AQUATOID: 20
waves:
- ufo: dummy #don't spawn a ufo, we only want the site
count: 1
trajectory: P10
timer: 200
objective: true
- type: STR_ALIEN_COASTAL_RAID4
points: 0
objective: 3
spawnZone: 0
raceWeights:
0:
STR_AQUATOID: 20
waves:
- ufo: dummy #don't spawn a ufo, we only want the site
count: 1
trajectory: P10
timer: 200
objective: true
alienDeployments:
- type: STR_COASTAL_RAID
data:
- alienRank: 5
lowQty: 4
highQty: 6
dQty: 1
percentageOutsideUfo: 70
itemSets:
-
- STR_SONIC_PISTOL
- STR_PISTOL_POWER_CLIP
- STR_PISTOL_POWER_CLIP
-
- STR_SONIC_BLASTA_RIFLE
- STR_BLASTA_POWER_CLIP
- STR_BLASTA_POWER_CLIP
- STR_SONIC_PULSER
-
- STR_SONIC_CANNON
- STR_CANNON_POWER_CLIP
- STR_CANNON_POWER_CLIP
- STR_CANNON_POWER_CLIP
- STR_SONIC_PULSER
- alienRank: 4
lowQty: 1
highQty: 2
dQty: 0
percentageOutsideUfo: 20
itemSets:
-
- STR_SONIC_PISTOL
- STR_PISTOL_POWER_CLIP
- STR_PISTOL_POWER_CLIP
- STR_SONIC_PULSER
-
- STR_THERMAL_SHOK_LAUNCHER
- STR_THERMAL_SHOK_BOMB
- STR_THERMAL_SHOK_BOMB
- STR_THERMAL_SHOK_BOMB
- STR_THERMAL_SHOK_BOMB
-
- STR_SONIC_CANNON
- STR_CANNON_POWER_CLIP
- STR_CANNON_POWER_CLIP
- STR_SONIC_PULSER
- STR_MC_READER
width: 50
length: 50
height: 4
civilians: 16
terrains:
- PORT
script: PORT_TERROR
briefing:
palette: 4
music: GMISPOSH
alert: STR_ALIENS_LAUNCH_COASTAL_RAID
alertBackground: BACK03.SCR
markerName: STR_TERROR_SITE
duration: [4, 10]
despawnPenalty: 1000
globe: #done
data: GEODATA/WORLD.DAT
oceanPalette: 1
countryColor: 245
cityColor: 239
baseColor: 239
lineColor: 111
polylines:
- [28, -30.375, 29, -27, 29, -24, 31, -21, 30.625, -19, 30.625, -16, 33, -18, 34, -15, 32, -11, 31, -8, 31, -3]
- [34, -15, 36, -9, 39, -8, 39, -5, 35, -4]
- [308.625, 0, 306, 4, 303, 6, 300, 6.5, 296, 8, 292, 7.5]
- [306, 4, 306, 6]
- [300, 6.5, 299, 9]
- [270, -30, 266, -33, 267, -35, 267, -37, 265, -40]
- [266, -33, 264, -35]
- [267, -37, 269, -38, 269.5, -41]
- [66.25, -24, 67, -26, 69, -29, 74, -31, 77, -34, 76.625, -35, 77, -39]
- [72, -20, 74, -23, 74.5, -26, 75, -29, 74, -31, 77, -34, 80, -35, 82, -37]
- [28.375, -42, 27, -42.5, 26, -41.5, 24, -41, 22, -41, 20, -42, 19, -42]
- [20, -42, 19, -43]
- [2.25, -4, 9, -7, 8, -9.625, 8, -11, 6, -13, 4, -14, 1, -14.5, 358, -13, 357, -11]
- [9, -7, 11, -9, 13, -10, 15, -9.5]
- [40.625, -39, 43, -39, 46, -38.625, 49, -38, 51, -39, 53, -39, 55, -40, 58, -41, 60, -43, 63, -44]
- [49, -38, 51, -37, 53, -34]
- [120, -36, 118, -35, 116, -34, 115, -33, 113, -32.5, 112, -33, 111, -34, 110, -36, 109.5, -38, 108.5, -38.625, 107, -39, 105, -38.5, 104.5, -38.5, 104.5, -38, 104, -36]
- [129.75, 15.125, 131, 16, 132, 16.25, 132.25, 17, 132, 18, 131, 19, 130, 19.125, 128, 18.5, 126.5, 19, 126, 20]
- [132, 31, 133, 30, 135, 29.5, 137, 30, 139, 29.625, 140, 29, 140.5, 28, 141, 26]
textures:
- id: 0
terrain:
- name: SEABED
weight: 75
- name: CORAL
weight: 25
- id: 1
terrain:
- name: PIPES
weight: 50
- name: SEABED
weight: 25
- name: CORAL
weight: 25
- id: 2
terrain:
- name: PLANE
weight: 50
- name: SEABED
weight: 25
- name: CORAL
weight: 25
- id: 3
terrain:
- name: ATLAN
weight: 50
- name: SEABED
weight: 25
- name: CORAL
weight: 25
- id: 4
terrain:
- name: MU
weight: 50
- name: SEABED
weight: 25
- name: CORAL
weight: 25
- id: 5
terrain:
- name: GAL
weight: 50
- name: SEABED
weight: 25
- name: CORAL
weight: 25
- id: 6
terrain:
- name: MSUNK
weight: 50
- name: SEABED
weight: 25
- name: CORAL
weight: 25
- id: 7
terrain:
- name: VOLC
weight: 50
- name: SEABED
weight: 25
- name: CORAL
weight: 25
- id: 8
terrain:
- name: CORAL
weight: 75
- name: SEABED
weight: 25
- id: 9
terrain:
- name: VOLC
weight: 50
- name: SEABED
weight: 25
- name: CORAL
weight: 25
- id: 10
terrain:
- name: MSUNK
weight: 50
- name: SEABED
weight: 25
- name: CORAL
weight: 25
- id: 11
terrain:
- name: PIPES
weight: 50
- name: SEABED
weight: 25
- name: CORAL
weight: 25
- id: 12
terrain:
- name: MU
weight: 50
- name: SEABED
weight: 25
- name: CORAL
weight: 25
- id: -1
deployments:
STR_PORT_TERROR: 100
- id: -2
deployments:
STR_ISLAND_TERROR: 100
- id: -3
deployments:
STR_ARTIFACT_SITE_P1: 100
- id: -4
deployments:
STR_CARGO_SHIP_P1: 50
STR_CRUISE_SHIP_P1: 50
- id: -5
deployments:
STR_COASTAL_RAID: 100
extraStrings:
- type: en-US
strings:
STR_COASTAL_RAID: COASTAL RAID
STR_COASTAL_RAID1_BRIEFING: COASTAL RAID BRIEFING
STR_ALIEN_COASTAL_RAID1: ALIEN COASTAL RAID
STR_ALIEN_COASTAL_RAID2: ALIEN COASTAL RAID
STR_ALIEN_COASTAL_RAID3: ALIEN COASTAL RAID
STR_ALIEN_COASTAL_RAID4: ALIEN COASTAL RAID
STR_ALIENS_LAUNCH_COASTAL_RAID: ALIENS LAUNCH COASTAL RAID!
You need to have 4 separate missions since you can only ran each missionSite once per month. You can set the 4 different missions to all use the same region and use the 'avoidRepeats', or you set each region to correspond to a actual geographical area, so that the player have to choose which continent to rescue or something similar.