Jump to content

Beyond DefaultGameCore.ini - Analyzing the Game Scripts


Beknatok

Recommended Posts

 

class XGStrategyActorNativeBase extends Actor

hidecategories(Navigation)

native

notplaceable;

 

const START_DAY = 1;

const START_MONTH = 3;

const START_YEAR = 2015;

const LOSE_CONDITION_NUM_DESERTERS = 8;

const NUM_STARTING_INTERCEPTOR_BAYS = 4;

const INTERCEPTOR_MISSION_LIMIT = 1;

const INTERCEPTOR_FLIGHT_TIME = 43200.0;

const INTERCEPTOR_TOTAL_LIMIT = 4;

const FOUNDRY_VEHICLE_REPAIR = 0.5f;

const NUM_CODE_PIECES = 1;

const NUM_TERRAIN_WIDE = 7;

const NUM_TERRAIN_HIGH = 5;

const BASE_REMOVAL_DAYS = 0;

const Paused = 0;

const ONE_MINUTE = 60;

const TEN_MINUTES = 600;

const FIFTEEN_MINUTES = 900;

const THIRTY_MINUTES = 1800;

const ONE_HOUR = 3600;

const TWELVE_HOURS = 43200;

const TWENTY_FOUR_HOURS = 86400;

const MAXIMUM_TIMESLICE = 60;

const SCAN_TIMESLICE = 1800;[/code]

 

I guess we can change the start year? lol...

 

I can't seem to find some of the "Extend" references in these files... i've looked through a lot of the cooked upks.. anybody find any other relevant UPKs other than xcomgame and xcomstrategygame?

 

class XGFundingCouncil extends XGStrategyActor

hidecategories(Navigation)

notplaceable;

 

const FCREQUEST_DAYS = 20;

const MIN_MONEY_REWARD = 100;

const MAX_MONEY_REWARD = 225;

const MAX_MONEY_REWARD_HARD = 150;

const MAX_MONEY_REWARD_CLASSIC = 125;

const MIN_MONEY_REWARD_EASY = 100;

const FIRST_MONTH_MULTIPLIER = 0.5f;

const SECOND_MONTH_MULTIPLIER = 0.75f;

const SMALL_DEMAND_AMOUNT = 8;

const BIG_DEMAND_AMOUNT = 16;

const HUGE_DEMAND_AMOUNT = 24;

const PROFIT_MARGIN = 1.25f;

const FCM_MONEY_SCALAR = 2.25f;

const MAX_FC_REQUESTS_PER_MONTH = 4;

const MAX_FC_MISSIONS_PER_MONTH = 2;

const BASE_REQUEST_COOLDOWN_DAYS = 40;

const FC_DELAY_AFTER_FC_STARVATION_DAYS = 20;

const FC_STARVATION_DELAY_DAYS = 20;

const FC_REQUEST_EXTENDED_COOLDOWN_DAYS = 10;

const FC_CAMPAIGN_BASE = -2;

const FC_CAMPAIGN_NONE = -1;

const MISSION_FAIL_LOW_PANIC = 1;

const MISSION_FAIL_HIGH_PANIC = 2;

const MISSION_REWARD_LOW_DAYS = 21;

const MISSION_REWARD_LOW_MULT = 0.5f;

const MISSION_REWARD_MED_DAYS = 41;

const MISSION_REWARD_MED_MULT = 0.75f;

const MISSION_REWARD_SOLDIER_LOW_LEVEL = 3;

const MISSION_REWARD_SOLDIER_MED_LEVEL = 4;

const MISSION_REWARD_SOLDIER_HIGH_LEVEL = 5;

 

 

 

A few more variables...

Edited by tbkiah
Link to comment
Share on other sites

  • Replies 102
  • Created
  • Last Reply

Top Posters In This Topic

I can't seem to find some of the "Extend" references in these files... i've looked through a lot of the cooked upks.. anybody find any other relevant UPKs other than xcomgame and xcomstrategygame?

 

There are most definitely other UPKs that have "base engine" information. Look under Dependencies for hints as to what they might be called, then you'll have to dig around the file system to try and locate the UPKs.

Link to comment
Share on other sites

This i found the one i was looking for...

 

It's called: XGTacticalGameCoreNativeBase

 

under xcomgame.upk... 216 constants...

 

if you don't want to open it all up here are the variables it has

 

 

const SCREEN_PC_BUFFER = 0.25f;

const FLYING_MAXPATHCOST = 20;

const LOW_COVER_BONUS = 20;

const HIGH_COVER_BONUS = 40;

const HUNKER_BONUS = 2.0;

const AIR_EVADE_DEF = 20;

const NO_COVER_DEF = 20;

const REACTION_PENALTY = 0.7;

const LIGHTNING_REACTION_PENALTY = 0.375;

const DASHING_REACTION_MODIFIER = 0.7f;

const WEAPON_COOLDOWN_PER_TURN = 5;

const WEAPON_OVERHEAT_BASE = 0;

const GRENADE_TOUCH_RADIUS = 46.0f;

const FOUNDRY_PISTOL_AIM_BONUS = 10;

const FOUNDRY_SCOPE_CRIT_BONUS = 10;

const FOUNDRY_PISTOL_CRIT_BONUS = 20;

const HARDENED_ENEMY_CRIT_VALUE = 60;

const FLANKING_CRIT_BONUS = 50;

const FLUSH_MIN_DIST = 480;

const FLUSH_AIM_BONUS = 30;

const FLUSH_DMG_REDUCTION = 0.50f;

const FALLENCOMRADES_PENALTY = 5;

const BATTLEFATIGUE_PENALTY = 5;

const BATTLEFATIGUE = 1.0f;

const BATTLEFATIGUE = 0.51f;

const AIM_BONUS = 20;

const PRECISION_SHOT_DAMAGE_BONUS = 2;

const PRECISION_SHOT_CRITICAL_CHANCE_BONUS = 30;

const TELEKINETIC_FIELD_DEFENSE_BONUS = 40;

const MINDFRAY_MOBILITY_PENALTY = 0.5;

const BRING_EM_ON_DAMAGE_BONUS = 1;

const BRING_EM_ON_MAX_ENEMIES = 5;

const BUTTON_UP_SHOT_OFFENSE_MOD = -20;

const DANGER_ZONE_RADIUS_BONUS = 192;

const DAMN_GOOD_GROUND_OFFENSE_BONUS = 10;

const DAMN_GOOD_GROUND_DEFENSE_BONUS = 10;

const SNAP_SHOT_AIM_PENALTY = 20;

const DENSE_SMOKE_DEFENSE_BONUS = 20;

const SMOKE_BOMB_DEFENSE_BONUS = 20;

const COMBAT_DRUGS_AIM_CHANCE_BONUS = 20;

const COMBAT_DRUGS_CRITICAL_CHANCE_BONUS = 10;

const COMBAT_DRUGS_WILL_BONUS = 20;

const BASE_NUM_ROCKETS = 1;

const ROCKETEER_BONUS_ROCKETS = 1;

const BASE_SMOKE_BOMBS = 1;

const SMOKEANDMIRROR_BONUS_BOMBS = 1;

const HEATAMMO_DMG_MULTIPLIER = 2;

const TRACER_BEAMS_BONUS = 10;

const BASE_BATTLESCANNERS = 2;

const CHITIN_PLATING_DMG_MULT = 0.5f;

const COMBAT_STIM_DMG_MULT = 0.5f;

const COMBAT_STIM_WILL_BONUS = 40;

const COMBAT_STIM_MOBILITY_BONUS = 4;

const EXECUTIONER_AIM_BONUS = 10;

const EXECUTIONER_HP_MIN = 0.5f;

const BATTLE_SCANNER_DURATION = 2;

const AGGRESSION_CRIT_BONUS = 10;

const AGGRESSION_MAX_ENEMIES = 3;

const TACTICALSENSE_DEFENSE_BONUS = 5;

const TACTICALSENSE_MAX_ENEMIES = 4;

const CLOSECOMBATSPECIALIST_RANGE = 6;

const WILLTOSURVIVE_DMG_REDUCTION = 2;

const KILLERINSTINCT_CRIT_DMG_MULT = 0.5f;

const SHREDDER_ROCKET_DURATION = 4;

const FIELDMEDIC_CHARGES = 3;

const GRENADIER_CHARGES = 2;

const PSIINSPIRED_WILL_BONUS = 30;

const DOUBLETAP_COOLDOWN = 3;

const BLOODCALL_AIM_BONUS = 10;

const BLOODCALL_WILL_BONUS = 10;

const BLOODCALL_MOBILITY_BONUS = 4;

const MINDMERGE_CRIT_BONUS = 25;

const MINDMERGE_HP_BONUS = 1;

const LOW_AMMO_PERCENT = 23;

const SPREAD_THETA = 75;

const MAX_SPREAD_LENGTH = 576;

const DEATH_BLOSSOM_RANGE = 384;

const DEATH_BLOSSOM_COOLDOWN = 4;

const DEATH_BLOSSOM_DAMAGE_MIN = 4;

const DEATH_BLOSSOM_DAMAGE_MAX = 6;

const MINDFRAY_BASE_DMG = 5;

const FLAME_NUM_BURN_TURNS = 4;

const FLAME_MAX_SPREAD_HOPS = 1;

const FLAME_MAX_FIRES_FROM_EXPLOSION = 4;

const SMOKE_NUM_TURNS = 4;

const DENSE_SMOKE_RADIUS_MULT = 1.25f;

const POISONED_DAMAGE_PER_TURN = 1;

const POISONED_AIM_PENALTY = 20;

const POISONED_REACTION_PENALTY = 0.5f;

const POISONED_MOVEMENT_PENALTY = 0.25f;

const POISONED_INITIAL_DURATION = 2;

const POISONED_REMISSION_CHANCE = 0.33f;

const POISONED_REMISSION_CHANCE = 0.66f;

const POISON_ATTACK_CHANCE = 0.5f;

const POISON_NUM_TURNS = 4;

const RAPIDFIRE_AIM_PENALTY = 15;

const DISABLINGSHOT_AIM_PENALTY = 10;

const CHRYSSALID_SPAWN_HP_REDUCTION = 4;

const FLAME_UNIT_DOT = 2;

const ACID_UNIT_DOT = 6;

const FLAME_WORLD_DOT = 201;

const ACID_WORLD_DOT = 201;

const STATIC_HEIGHT_BONUS_Z = 192.0f;

const HEIGHT_OFF_BONUS = 20;

const HEARING_RADIUS = 40.0f;

const CRITICAL_BLEED_OUT = 3;

const BASE_CRITWOUND_CHANCE = 15;

const OTS_CRITICAL_WOUND_BONUS = 5;

const CRITWOUND_WILL_PENALTY = 15;

const LUCK_ROLL_BONUS = 5;

const CB_XP_BONUS = 0.25f;

const PANIC_TURNS = 1;

const PANIC_RANDOM_TURNS = 0;

const PANIC_BASE_VALUE = 30;

const MEDIKIT_HEAL_HP = 4;

const MEDIKIT_FOUNDRY_BONUS = 2;

const MEDIKIT_SAVIOR_BONUS = 4;

const REVIVE_HEALTH_AMOUNT = 0.33f;

const SPRINTER_MOBILITY_BONUS = 4;

const RAPIDREACTION_MIN_DIST = 192;

const TRACER_BEAM_DURATION = 1;

const CLUSTER_BOMB_PREVIEW_RADIUS = 432;

const MIN_TIME_ARC_HEIGHT = 3.0f;

const MAX_TIME_ARC_HEIGHT = 6.0f;

const MAX_ENGAGED_AI = 5;

const MIN_AI_TURN_LENGTH = 4;

const MAX_OVERMIND_REVEAL_TILES = 4;

const OVERLOAD_DAMAGE_DRONE = 3;

const DEATH_DAMAGE_CYBERDISC = 3;

const DEATH_DAMAGE_SECTOPOD = 5;

const DEATH_DAMAGE_ETHEREAL = 4;

const OVERLOAD_RADIUS_DRONE = 192.0f;

const DEATH_RADIUS_CYBERDISC = 192.0f;

const DEATH_RADIUS_SECTOPOD = 320.0f;

const DEATH_RADIUS_ETHEREAL = 144.0f;

const INTIMIDATE_CHANCE_MUTON = 33;

const INTIMIDATE_CHANCE_BERSERKER = 66;

const CC_RANGE = 3.0f;

const CC_INSTIGATOR_BASE = 20;

const CC_ASSAULT_BONUS = 10;

const CC_SECOND_MOVE_PENALTY = 20;

const CC_RUN_PATH_PCT = 50;

const RIFLE_I_MOB_BONUS = 2;

const RIFLE_II_SUPP_BONUS = 10;

const PISTOL_I_CRIT_BONUS = 25;

const PISTOL_II_DEF_BONUS = 15;

const HEAVY_I_OFF_BONUS = 10;

const HEAVY_II_OFF_BONUS = 20;

const SNIPER_I_OFF_BONUS = 10;

const SNIPER_II_CRIT_BONUS = 25;

const XP_KILL = 50;

const HP_PER_TICK = 1;

const HP_PULSE_PCT = 25;

const LOOT_RANGE = 3;

const LOOT_DESTRUCT_TIMER = 5;

const MIND_PROBE_INTEL = 10;

const NAV_INTEL = 5;

const COVER_DRAW_RADIUS = 1;

const JETPACK_FUEL_HOVER_COST = 1;

const MOVE_INTERVAL_REACTION_PROCESSING = 96.0f;

const SAFE_FROM_REACTION_FIRE_MIN_DIST_TO_DEST = 96.0f;

const REACTION_MINIMUM = 1;

const REACTION_BONUS_FOR_OVERWATCH = 20;

const REACTION_BONUS_FOR_DASH = 20;

const REACTION_FIRE_AMMO_COST_PERCENTAGE = 25;

const REACTION_FIRE_AMMO_COST_PERCENTAGE_HEAVY = 33;

const REPAIR_SHIV_HP = 6;

const STUN_I_HP_THRESHHOLD = 3;

const STUN_II_HP_THRESHHOLD = 6;

const STUN_BASE_CHANCE = 70;

const STUN_MAX_CHANCE = 95;

const STUN_MIN_CHANCE = 1;

const TIMEDILATION_APPROACHRATE = 15.0f;

const TIMEDILATION_MODE_NORMAL = 1.0f;

const TIMEDILATION_MODE_VICTIMOFOVERWATCH = 0.01f;

const TIMEDILATION_MODE_REACTIONFIRING = 0.4f;

const TIMEDILATION_MODE_TRIGGEREDPODACTIVATION = 0.0f;

const CYBERDISC_MIN_CLOSED_MOVE_DIST = 320.0f;

const CYBERDISC_MAX_FLIGHT_DURATION = 3;

const MAX_REPAIRS_PER_TURN = 1;

const DRONE_REPAIR_HP = 3;

const DRONE_COUNT_OVERRIDE = false;

const DRONES_PER_CYBERDISC = 1;

const DRONES_PER_SECTOPOD = 3;

const DRONE_MAX_FLIGHT_DURATION = 6;

const FLOATER_MAX_FLIGHT_DURATION = 3;

const HEAVY_FLOATER_MAX_FLIGHT_DURATION = 4;

const PSI_DRAIN_HP = 4;

const RIFT_MAX_DISTANCE = 100;

const RIFT_DAMAGE_RADIUS = 6.75;

const RIFT_WILL_BALANCE = 20;

const RIFT_WILL_DMG_SLICE = 10;

const RIFT_START_DMG = 8;

const RIFT_END_DMG = 10;

const RIFT_START_DMG_MIN = 4;

const RIFT_END_DMG_MIN = 5;

const PSI_LANCE_WILL_BALANCE = 20;

const PSI_LANCE_WILL_DMG_SLICE = 10;

const PSI_LANCE_BASE_DMG = 7;

const PSI_LANCE_MIN_DMG = 2;

const PSI_LANCE_MAX_DMG = 20;

const TELEKINETIC_FIELD_RADIUS = 12.75;

const PSI_INSPIRE_FIELD_RADIUS = 3.75;

const SUPPRESSION_AIM_PENALTY = 30;

const CLOSEANDPERSONAL_MAX_DIST = 9.0f;

const CLOSEANDPERSONAL_PER_DIST = 1.5f;

const CLOSEANDPERSONAL_BONUS = 5;

const RAND_DMG_VARIANCE = 1.5f;

const WOUND_AIM_PENALTY = -15;

const WOUND_MOB_PENALTY = -2;

const TINVENTORY_MAX_LARGE_ITEMS = 16;

const TINVENTORY_MAX_SMALL_ITEMS = 16;

const TINVENTORY_MAX_CUSTOM_ITEMS = 16;

const RELATIVE_HEIGHT_BONUS_ZDIFF = 192.0f;

const RELATIVE_HEIGHT_BONUS_WEAPON_RANGE = 1.5f;

const MAX_SIGHTLINES = 10;

 

 

 

Now if only we could cook this package... damnit!

Edited by tbkiah
Link to comment
Share on other sites

For the uninitiated, go to the Objects tab. From there, you'll have to find Classes related to what you are interested in.

 

As a newbie to UE Editor (I presume you meant ultraedit), how do you access the objects tab? At the moment, all I can do is view the whole file as one long hex document.

Edited by Mashadar
Link to comment
Share on other sites

Doh. Now I feel utterly stupid. On the flip side, now that I can explore the file, I think I may be able to figure out a few things on how to edit the upk itself....

 

Damnit.

 

Ok, I've figured out how to edit the uncompressed UPK itself with hex editting, comparing the extracted .CLASS files, matching their hex values with the ones in the UPK and then making the changes there using UltraEdit. The problem is that the game requires the compressed UPK to run, and won't work with the uncompressed one. Is there anyway to re-compress the UPK?

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...