DaGawdfadda Posted October 20, 2012 Share Posted October 20, 2012 @Daemonjax I've read the other thread regarding scripts and its a bit over my head. I was wondering if you would be able to make a mod that changes the cover bonuses to 40 for half and 80 for full. This might seem crazy but it drives me up the wall when I spend 15mins slowly creeping my guys from high cover to high cover into a flanking position and at the last second the aliens get off a shot from their half cover and nuke them. Furthermore once you get to the end game cover almost becomes useless as my snipers are able to pick off anything visible. As far as I can tell if a target is flanked it gets no defense bonus correct? Otherwise that might need to be added as an additional flanking bonus (ie plus 80 to aim or something). This would also make some abilites such as flush more useful. Do you think that would screw up the balance too much? perhaps 30/60 would be a better number? Also would it be possible to make suppression you know actually supress the target. I dont know how many times I've had a heavy suppress an alien so my assault could close only for that alien to pop its ugly head out and kill my assault on the aliens turn. Link to comment Share on other sites More sharing options...
Crashdown1 Posted October 20, 2012 Share Posted October 20, 2012 The constans for covers and etc are here XComGame.upk then XGTacticalGameCoreNativeBase Yeps, XGTacticalGameCoreNativeBase has the cover constants... some good stuff there: 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; So can we do anything with this or is it just another piece of knowledge we can't touch. Little curious myself about messing with scripts, it seems right now people are just finding out how the pieces work, but can't actually touch them to change things like cover bonuses yet. Link to comment Share on other sites More sharing options...
Daemonjax Posted October 20, 2012 Share Posted October 20, 2012 (edited) Right now we can change those and load the new values into the game. It just takes more work than it should, and its difficult for others to replicate the results without some knowledge of hexediting/programming. I'm working out the details right now for a program that would make it easy to distribute mods such as these. It'll probably take a week, optimistically, so maybe two weeks realistically. ;) A month, worst case scenario. Edited October 20, 2012 by Daemonjax Link to comment Share on other sites More sharing options...
Crashdown1 Posted October 20, 2012 Share Posted October 20, 2012 Right now we can change those and load the new values into the game. It just takes more work than it should, and its difficult for others to replicate the results without some knowledge of hexediting/programming. I'm working out the details right now for a program that would make it easy to distribute mods such as these. It'll probably take a week, optimistically, so maybe two weeks realistically. ;) A month, worst case scenario. Much appreciated :). Thank you for the program you've already made. I'm just curious though, UE Explorer doesn't seem capable of modifying the files themselves. What do we use to modify them? UDK? Link to comment Share on other sites More sharing options...
dreadylein Posted October 20, 2012 Share Posted October 20, 2012 Hexediting for the moment Link to comment Share on other sites More sharing options...
Crashdown1 Posted October 20, 2012 Share Posted October 20, 2012 Hexediting for the moment Ah. Way beyond my abilities. That's unfortunate. Got a little excited looking at all the code. Link to comment Share on other sites More sharing options...
mutonizer Posted October 20, 2012 Author Share Posted October 20, 2012 Very nice find Daemonjax, cheers. CRITWOUND_WILL_PENALTY = 15 THERE is the bugger :) and BASE_CRITWOUND_CHANCE = 15 Wonder if we put this to 100 right from the get go, soldiers would always be revivable for 3 turns (making the OTS_CRITWOUND_ BONUS useless of course). Nice finds, can't wait to be able to change this, as a mere mortal :) Link to comment Share on other sites More sharing options...
Daemonjax Posted October 20, 2012 Share Posted October 20, 2012 (edited) @Daemonjax I've read the other thread regarding scripts and its a bit over my head. I was wondering if you would be able to make a mod that changes the cover bonuses to 40 for half and 80 for full. This might seem crazy but it drives me up the wall when I spend 15mins slowly creeping my guys from high cover to high cover into a flanking position and at the last second the aliens get off a shot from their half cover and nuke them. Furthermore once you get to the end game cover almost becomes useless as my snipers are able to pick off anything visible. As far as I can tell if a target is flanked it gets no defense bonus correct? Otherwise that might need to be added as an additional flanking bonus (ie plus 80 to aim or something). This would also make some abilites such as flush more useful. Do you think that would screw up the balance too much? perhaps 30/60 would be a better number? Also would it be possible to make suppression you know actually supress the target. I dont know how many times I've had a heavy suppress an alien so my assault could close only for that alien to pop its ugly head out and kill my assault on the aliens turn. Yeah, I'll see if I can get around to it. Right now I'm working on a program to parse the upk bytecode table to make things a bit easier for everyone to learn how to mod this stuff. It's pretty much done, but I need to do some formatting. It's much easier to know what to hexedit when you have the information in front of you in some human readable form. Edited October 20, 2012 by Daemonjax Link to comment Share on other sites More sharing options...
DaGawdfadda Posted October 20, 2012 Share Posted October 20, 2012 Thanks Daemonjax! You, dreadylein and the rest are awesome. Its a shame Firaxis hasnt provided any tools or made the game engine/etc less convaluted. Any thoughts on if my idea would screw up the balance of the game? Link to comment Share on other sites More sharing options...
Crashdown1 Posted October 20, 2012 Share Posted October 20, 2012 (edited) Thanks Daemonjax! You, dreadylein and the rest are awesome. Its a shame Firaxis hasnt provided any tools or made the game engine/etc less convaluted. Any thoughts on if my idea would screw up the balance of the game? It would definitely make things easier, that's for sure. If you wanted to keep it semi balanced, at 100 percent critically wounded chance I'd reduce the time they are wounded to 1 turn (depending on whether that counts the turn they are wounded on, as a turn. If so, then 2). Maybe even just keep it as one anyway. Edited October 20, 2012 by Crashdown1 Link to comment Share on other sites More sharing options...
Recommended Posts