Criteria and KillCriteria Details

From UFOpaedia
Revision as of 16:28, 3 December 2020 by Shoes (talk | contribs) (Staging the intended changes for the commendation ruleset)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

A commendation is constructed using the following arguments:

Value Description Default
type This is a string containing the name of the commendation. -
description This is a string containing the description of the commendation. -
sprite This is an int corresponding to the sprite of the commendation. If the integer does not correspond to a sprite, the game will crash. -
criteria Commendation criteria are controlled by SoldierDiary.cpp, and function by iterating over the game's record of every takedown a soldier has performed. There are three kinds of crieria: Scalar Criteria, Noun Criteria, and Kill Criteria. If the criteria is a Kill Criteria, there needs to be more details added via killCriteria.

The vector of integers cannot exceed 10 in length, unless more decoration sprites are added. The list may be shorter, if the commendation does not have as many decorations. The integers can also repeat, in order to skip decorations.

First intger corresponds to an award, with no decoration. Second correponds to 1 bronze star. Third correponds to 2 bronze stars. Fourth correponds to 3 bronze stars. Fifth correponds to 1 silver star. Sixth correponds to 2 silver stars. Seventh correponds to 3 silver stars. Eigth correponds to 1 gold star. Ninth correponds to 2 gold stars. Tenth correponds to 3 gold stars.

Example: This criteria has 3 decoration levels: 1 bronze star, 2 silver stars, 3 gold stars.

   criteria:
       totalAllAliensKilled: [1, 1, 2, 2, 2, 2, 3, 3, 3, 3]
-
killCriteria This is the extra detail required by killsWithCriteriaCareer, killsWithCriteriaMission, or killsWithCriteriaTurn.

Example: This killCriteria can be awarded for two reasons: if the soldier kills one sectopod terrorist with a grenade OR if the soldier kills one cyberdisc terrorist with a grenade.

   killCriteria:
       -
           1: ["STR_SECTOPOD_TERRORIST", "STR_LIVE_TERRORIST", "STATUS_DEAD", "BT_GRENADE"]
       - 
           1: ["STR_CYBERDISC_TERRORIST", "STR_LIVE_TERRORIST", "STATUS_DEAD", "BT_GRENADE"]

Example: This killCriteria is awarded for one reason: if the soldier has killed one hostile cyberdisc terrorist AND if the soldier has killed one hostile reaper terrorist.

   killCriteria:
       -
           1: ["STR_CYBERDISC", "STR_LIVE_TERRORIST", "FACTION_HOSTILE", "STATUS_DEAD"]
           1: ["STR_REAPER", "STR_LIVE_TERRORIST", "FACTION_HOSTILE", "STATUS_DEAD"]
-

Full example 1:

 - type: STR_MEDAL_FLANKSHOT_NAME
   description: STR_MEDAL_FLANKSHOT_DESCRIPTION
   sprite: 43
   criteria:
     killsWithCriteriaCareer: [3, 6, 9, 9, 9, 9, 12, 12, 12, 12]
   killCriteria:
     -
       1: ["SIDE_LEFT", "FACTION_HOSTILE", "STATUS_DEAD"]
     -
       1: ["SIDE_RIGHT", "FACTION_HOSTILE", "STATUS_DEAD"]

Full example 2:

 - type: STR_MEDAL_MERCY_CROSS_NAME
   description: STR_MEDAL_MERCY_CROSS_DESCRIPTION
   sprite: 35
   criteria:
     totalAllAliensStunned: [1, 1, 2, 2, 2, 2, 3, 3, 3, 3]

Scalar Criteria depend only on one number, and are generally the number of times some specific event has occured in a soldier's career:

Value Description Default
totalKills Total number of kills earned by the soldier. -
totalMissions Total number of missions in which the soldier participated. -
totalWins Total number of missions in which the soldier victorious. -
totalScore Total score earned by the soldier. -
totalStuns Total number of hostile enemies stunned by the soldier. -
totalBaseDefenseMissions Total number of base defense missions in which the soldier was victorious. -
totalTerrorMissions Total number of terror missions in which the soldier was victorious. -
totalNightMissions Total number of night missions in which the soldier was victorious. (Excludes base defense missions and alien base missions.) -
totalNightTerrorMissions Total number of night terror missions in which the soldier was victorious. -
totalMonthlyService Total number of months served by the soldier. -
totalFellUnconcious Total number of missions in which the soldier has fallen unconcious. -
totalShotAt10Times Total number of times a soldier was shot at in a mission, counted 10 at a time.

Example: On mission 1, the soldier was shot at 23 times; this increments the total twice. On mission 2, the soldier was shot at 18 times; this increments the total once. The total is three, not four, despite being shot at 41 times.

-
totalHit5Times Total number of times a soldier was hit in a mission, counted 10 at a time.

Example: On mission 1, the soldier was shot 8 times; this increments the total once. On mission 2, the soldier was shot 4 times; this does not increment the total. The total is one, not two, despite being shot 12 times.

-
totalFriendlyFired Total number of times this soldier was shot by a friendly soldier. Does not count if the soldier is KIA or MIA. -
total_lone_survivor Total number of missions in which a soldier was the only survivor.

Only awarded if this soldier was deployed with other soldiers, and that this soldier did not kill any friendly soldiers.

-
totalIronMan Total number of missions this soldier has done alone. -
totalImportantMissions Total number of non-UFO crash recovery missions in which the soldier was victorious. -
totalLongDistanceHits Total number of shots by the soldier that hit a target that was more than 30 tiles away. -
totalLowAccuracyHits Total number of shots by the soldier that hit a target who was futher away than the weapon's firing accuracy. -
totalReactionFire Total number of kills earned by the soldier that occured on the hostile turn, where the weapon was not a grenade or a proximity grenade. -
totalTimesWounded Total number of missions in which the soldier was wounded. -
totalDaysWounded Total number of days the soldier spent wounded. -
totalValientCrux Total number of missions in which the soldier was victorious, saved at least one civilian, and lost no civilians. -
isDead Total number of missions in which the soldier died. -
totalTrapKills Total number of kills earned by the soldier that occured on the hostile turn, where the weapon was a grenade, a proximity grenade, or a weapon with no BattleType. -
totalAlienBaseAssaults Total number of alien base missions in which the soldier was victorious. -
totalAllAliensKilled Total number of missions in which the soldier was victorious and the soldier killed every alien that died (at least one), and stunned every alien that was stunned. -
totalAllAliensStunned Total number of missions in which the soldier was victorious and the soldier stunned every alien that was stunned (at least one), and no aliens were killed. -
totalWoundsHealed Total number of times the soldier applied healing in the medikit. -
totalAllUFOs Value is 1 if the soldier participated in a mission against a UFO of each type. -
totalAllMissionTypes Value is 1 if the soldier participated in a mission of each type. -
totalStatGain Sum of all stat gains for the soldier. Bravery stat gains are divided by 10. -
totalRevives Total number of times this soldier revived another unit. The unit can hostile, friendly or neutral. -
totalSoldierRevives Total number of times this soldier revived another unit that started as friendly. -
totalHostileRevives Total number of times this soldier revived another unit that started as hostile. -
totalNeutralRevives Total number of times this soldier revived another unit that started as neutral. -
totalWholeMedikit Total number of times this soldier used one of each medikit functions.

Example: If in a single mission the soldier healed wounds 3 times, applied stimulant 2 times, and applied painkillers 4 times, then the total would increment by 2.

-
totalBraveryGain Sum of all bravery stat gains for the soldier. The stat is not divded by 10 here. -
bestOfRank If, upon death, this soldier had the highest score of any dead soldier of the same rank, the value of bestOfRank is equal to the score of the dead soldier. Otherwise it is 0. -
bestSoldier If, upon death, this soldier had the highest score of any dead soldier, the value of bestSoldier is True. Otherwise it is False. -
isMIA Total number of missions in which the soldier was left behind. -
totalMartyrKills Total number of kills earned by the soldier that occured on the same turn that the soldier killed him or herself, to a maximum of 10 per mission. -
totalPostMortemKills Total number of kills earned by the soldier that occured after the soldier died. -
globeTrotter Value is True is the soldier has participated in a mission that occured in each country. -
totalSlaveKills Total number of kills earned by the soldier via mind-control of another unit. -
RULESET_NAME RULESET_DESCRIPTION -

Noun Criteria function like scalar criteria, but keep separate tallies for each noun. They are incompatible with each other. If used together, the commendation will be given out repeatedly.

Value Description Default
totalKillsWithAWeapon Total number of kills with a specific weapon earned by the soldier. -
totalMissionsInARegion Total number of missions in a specific region in which the soldier participated. -
totalKillsByRace Total number of kills of a specific race earned by the soldier. -
totalKillsByRank Total number of kills of a specific rank earned by the soldier. -

Kill Criteria offer more control over the kinds of kills that which can be commended. Kill Criteria can consist of the following:

  • any race, rank, weapon, ammo (referenced by string for maximum moddability),
  • one of these statuses: STATUS_DEAD and STATUS_UNCONSCIOUS,
  • STATUS_PANICKED for a unit that has been psi-panicked,
  • STATUS_TURNING for a unit that has been mind controlled,
  • one of these factions: FACTION_HOSTILE, FACTION_NEUTRAL, FACTION_PLAYER,
  • one of these battle types: BT_FIREARM, BT_AMMO, BT_MELEE, BT_GRENADE, BT_PROXIMITYGRENADE, BT_MEDIKIT, BT_SCANNER, BT_MINDPROBE, BT_PSIAMP, BT_FLARE, BT_CORPSE,
  • one of these damage types: DT_AP, DT_IN, DT_HE, DT_LASER, DT_PLASMA, DT_STUN, DT_MELEE, DT_ACID, DT_SMOKE,
  • one of these sides: SIDE_FRONT, SIDE_LEFT, SIDE_RIGHT, SIDE_REAR, SIDE_UNDER,
  • one of these body parts: BODYPART_HEAD, BODYPART_TORSO, BODYPART_RIGHTARM, BODYPART_LEFTARM, BODYPART_RIGHTLEG, BODYPART_LEFTLEG.
Value Description Default
killsWithCriteriaCareer Total number of kills across a soldier's career that meet the specified criteria. -
killsWithCriteriaMission Total number of kills across a single mission of a soldier that meet the specified criteria. -
killsWithCriteriaTurn Total number of kills across a single turn of a soldier that meet the specified criteria. -