Power Bits

From OuroDev

This is just my notes on power defs. It won't include stuff for boosts right now.

Power category.powerset.power_name
{
	Name                             "power_name"//must match the last part of the power's full name.
	DisplayName                      "Display Name"//Power name shown in UI. Can be pstring or a plain string. Mapserver will give BAD TRANSLATION errors if you use a plain string.
	DisplayShortHelp                 "ShortHelp"//Short and long help strings. If they aren't defined for the target, it'll use the regular ones.
	DisplayHelp                      "LongHelp"
	DisplayTargetHelp                "TargetHelp"
	DisplayTargetShortHelp           "TargetShortHelp"
	DisplayAttackerAttack            "AttackerAttack"//Message displayed as chat to attacker when the power is executed
	DisplayAttackerAttackFloater     "Floater"//Floating message when attack is executed
	DisplayAttackerHit               "AttackerHit"//Message in chat to attacker when attack hits
	DisplayVictimHit                 "VictimHit"//Message to victim in chat when hit
	DisplayConfirm                   "Confirm"//Message displayed to target to confirm power
	FloatRewarded                    "Rewarded"//Message floated on screen when this power is granted as reward.
	DisplayPowerDefenseFloat         "whiff"//Message to float when this power is the defensive cause of a missed attack if attribmod doesn't specify its own float.
	IconName                         "power_icon.tga"//name of this power's icon
	Type                             kType//Power type: kAuto, kToggle or kClick
	NumAllowed                       0//Max number of copies of this power. Only used for Temp powers.
	AttackTypes                      kAttack_Type1, kAttack_Type2//Attack types of the power. Each one has a separate Defense value for hit rolls, though Toxic has no defense, and can only be resisted or not hit due to defense against another type the power has.
	BuyRequires                      Inherent.Inherent.Brawl $archetype @Class_Mastermind == ||//Requirements for power eligibility. If empty, only level is required. Else, it's a postfix expressions: arguments, then operator. This line is equivalent to ($archetype is @Class_Mastermind) or (has) Inherent.Inherent.Brawl.
	ActivateRequires                 filler.powerset.power//As above, but for activating rather than choosing or auto-issuing.
	TargetRequires                   $archetype @Class_Blaster !=//Requirements for target to be valid. If empty, there are no requirements.
	RewardRequires                   category.set.power//Requirement to be awarded the power through the reward system. If blank, there are no requirements.
	AuctionRequires                  category.set.power//As above, but for auctioning.
	RewardFallback                   //the power that will be awarded if this power's requirements aren't met. If blank, none will be awarded.
	Accuracy                         0.1//Chance to hit.
	NearGround                       kFalse//True or false: Does this power require you to be near the ground?
	TargetNearGround                 kTrue//As above, but for the target instead of caster. Assume false when missing
	CastableAfterDeath               kTrue//Boolean. Can this be cast when the caster has no HP? Assume false when missing
	CastThroughHold                  kFalse//These lines determine if the power can be used held, slept, stunned or terrorized. Assume false if missing.
	CastThroughSleep                 kFalse
	CastThroughStun                  kFalse
	CastThroughTerrorize             kFalse
	ToggleIgnoreHold                 kFalse//These lines determine if the power is detoggled when held, slept or stunned. Assume false if missing. Toggles only.
	ToggleIgnoreSleep                kFalse
	ToggleIgnoreStun                 kFalse
	ShootThroughUntouchable          kTrue//Can this power ignore untouchability?
	InterruptLikeSleep               kFalse//If true, this power is only interrupted by things that interrupt sleep: Damage, Healing, KB/KD/KU, Repel
	AIReport                         kNever//When to report a hit to AI: kNever, kAlways, kHitOnly,kMissOnly
	EffectArea                       kCharacter//Effect area type. See section "Effect Areas"
	MaxTargetsHit                    5//Maximum number of targets for a cone or sphere. If available targets exceed possible targets, then the most distant one fromthe source are ignored.
	Radius                           11//Radius in feet from target that the power effects.
	Arc                              3.14//Arc of the power's area. THIS IS IN RADIANS. NOT DEGREES. 
	BoxOffset                        //These are used to define a box offset relative to target and size. Used for the Box area.
	BoxSize
	Range                            //Power Range in feet.
	RangeSecondary                   //Range to secondary target on success
	TimeToActivate                   //Time in seconds from click to activate. 0 for Auto, Should be Interrupt Time + Animation Time for the FX of the power.
	RechargeTime                     10000//time in seconds to recharge
	Activate Period                  10//Time in seconds between automatic activations when the power is set to auto (green ring)
	EnduranceCost                    1//Cost in endurance. Appears to use double this value per second for toggles.
	InsightCost                      //Neither of these are used. Looks like they were intended for an earlier version of the invention system.
	IdeaCost
	TimeToConfirm                    100//Time in seconds for target to confirm power. Usually used for team TPs.
	SelfConfirm                      1//If 1, will ask the caster for confirmation. Default behavior excludes caster.
	ConfirmRequires                  Inherent.Fitness.Stamina//If the target fails this requirement, they auto-confirm.
	DestroyOnLimit                   kFalse//If true, the power is revoked if it reaches the usage limit.
	StackingUsage                    kFalse//If true, this power will extend existing powers when granted multiple times
	NumCharges                       1//Number of charges
	MaxNumCharges                    4//Maximum number of charges allowed
	UsageTime                        10//How long in seconds the power can be used. Toggle only.
	MaxUsageTime                     12//Maximum use time the power can be extended to in seconds.
	Lifetime                         300//Power's lifetime in seconds.
	MaxLifetime                      3000//How much the lifetime can be extended.
	LifetimeInGame                   30//As above, but only counting ingame time.
	MaxLifetimeInGame                30000
	InterruptTime                    45//The window from clicking that the power can be interrupted.
	TargetVisibility                 kNone//Required visibility of target to activate. kNone or kLineOfSight
	Target                           kFoe//What kinds of entities this can target. See section Power Target Types
	TargetSecondary                  kMyPet//As above, but for secondary targets. Default to kNone.
	EntsAutoHit                      kFoe, kMyPet//What kinds of targets don't require a hit roll to be hit? Uses Target's target types.
	EntsAffected                     kFoe,kMyPet//entities that can be affect by one or more effects of this power. Uses Target's target types.
	TargetsThroughVisionPhase        kFalse//If true, can target, affect, autohit thngs in different vision phases. Default to false.
	BoostsAllowed                    kRecovery//Types of boosts allowed in this power. See section Boost Types
	GroupMembership                  kStealthGroup//List of power groups this power belongs to. Only one of the powers in a power group can be on at a time. Using another power from the same group shuts off any other powers which are on.
	ModesRequired                    kModeName//If any modes are listed, you need to be in one or more modes to activate the power.
	ModesDisallowed                  kMode, kMode2, kModeETC//As above, but if you are in any of those modes, you CAN'T use the power
	AIGroups                         kAI_Group_A, kAI_Group_B//AI groups this power belongs to so the AI knows how to use it.
	IgnoreStrength                   kFalse//If true, ignore all strenght modifiers when calculating power strength. Default false.
	ShowBuffIcon                     kTrue//Show buff icon if true.
	ShowInInventory                  kDefault//Show this power in power list? kNever, kDefault, kAlways, kIfUsable, kIfOwned
	ShowInManage                     kTrue//if true, show in enhancement management screen.
	ShowInInfo                       kTrue//Show in player info if true.
	Deletable                        kFalse//If true and a Temp power, it can be deleted.
	Tradeable                        kFalse//If true, it can be traded to other players.
	MaxBoosts                        6//Maximum number of enhancment slots in this power, including basic enhancement. Default 6. Temp powers should have zero.
	DoNotSave                        kFalse//If true, this power won't be saved to the DB, meaning mapmoves, logouts and disconnects will wipe it out. Good for zone-only temp powers.         
	ToggleDroppable                  kNever//Can this toggle power be dropped by a kDropToggle AttribMod? kSometimes, kAlways, kFirst, kLast or kNever. default kSometimes
	StrengthsDisallowed              kRange, kRechargeTime//Strengths on this power that simply cannot be modified.
	ProcMainTargetOnly               kFalse//if true, only main target is hit by attached procs.
	AnimMainTargetOnly               kFalse//if True, only main target is animated and gets FX.
	HighlightEval                    cur.ToHit source> 12 <//If this expression is true, highlight the power.
	HighlightIcon                    //If highlighted, show this icon.
	HighlightRing                    100 100 0 255//If highlighted, show a ring with this RGBA color around the power
	TravelSuppression                0//If nonzero, add this to combat travel power suppression time
	PreferenceMultiplier             1.0//Seems to be used for weighting preference for AI.
	DontSetStance                    1//May have something to do with AI or Mastermind pet stance? Default 1.
	PointValue                       0//Value of power. Point value is only used in AE.
	PointMultiplier                  0
	ChainIntoPower                   NULL//Immediately forces the user to activate the note power. Mostly used for critters with wind-up powers like War Walkers.
	InstanceLocked                   1//Seems to determine if the power is only active in a specific instance.
	IsEnvironmentHit                 kFalse//Not exactly sure what it does, but it seems to be attached to emanator powers.
	ShuffleTargets                   kFalse//Seems to randomly shuffle targets of the power.
	ForceLevelBought                 -1//If greater than -1, forces the power to be counted as the level shown plus 1 for exemplaring. (Mostly just there to diable incarnate powers wqhen exemplared below 45).
	RefreshesOnActivePlayerChange    kFalse//Refreshes the power if the active player on the team changes.
	PowerRedirector                  kFalse//If true, this power redirects to one or more other powers under certain conditions. Most frequently seen in snipes post-i24.
	Cancelable                       kTrue//Not sure what it does, not well documented. May have to do with cancelling powers during activation.
	IgnoreToggleMaxDistance          kFalse//If true, ignore the normal maximum distance between toggle source and target.
	ServerTrayPriority               0//Seems to be tied to the popup tray for temp powers that are in some missions.
	AbusiveBuff                      kFalse//If true, attrib mods applied by this power will be cleared whenever entering a map that uses eRAT_ClearAbusiveBuffs.
	PositionCenter                   //Not certain what these do. Seem to be related to positional targeting, but are barely used at all.
	PositionDistance
	PositionHeight
	PositionYaw
	FaceTarget                       kFalse//if True, face the target when firing.
	VisualFX                         "path\to\power\fx\file.pfx"//the pfx file for the power.
	Include                          path\to\power\fx\file.pfx//This actually contains the FX info.
	
	AttribMod//This will probably need a whole section to itself.
	{...}	
}


Modes

A lot of the below is supposition, as very few modes are referenced in the source code. If any of this is found to be accurate or you have more information, please edit appropriately.

  • kDisable_All is obviously when all powers are disabled (such as a few of the missions where you control another character)
  • kDefiant appears to be linked to the Blaster's Defiance
  • kDisable_Pool, kDisable_Inspiration_Large and kDisable_Epic are for disabling all pool powers and epic pools respectively, and are usually found only on those powers.
  • kArena is for powers that don't function in arena matches.
  • kDisable_Inspiration, kDisable_Inspiration_Small, kDisable_Inspiration_Medium, kDisable_Inspiration_Large and kDisable_Inspiration_Special are for inspirations specifically. I won't cover making new inspirations in this article, but may do so in a separate article later.
  • kPeacebringer_Blaster_Mode, kPeacebringer_Tanker_Mode, kWarshade_Blaster_Mode and kWarshade_Tanker_Mode are for powers that are disabled when you are in the Peacebringer or Warshade transformations (Squids == Blaster Mode, Lobsters == Tanker Mode). A lot of these are travel or temp powers.
  • kProwlerMode and kHunterMode appear to be related to the unreleased Primalist archetype, and seem to be only found in their defs.
  • kDisable_Toggle for when toggles are to be disabled.
  • kDisable_Travel for disabling travel powers.
  • kDisable_Temp for disabling temporary powers.
  • kCoOpTeam: I think this has to do with teams of differing alignments (hero/villain/praetorian), and I've only found it on Team Teleport type powers. I think it's to prevent aligned zone breaking workaraounds with co-op teams.
  • kDisable_Walk: For disabling the Walk toggle, as well as the vanity pets and vanity travel powers
  • kDisable_SetBonus: Disables set bonuses. Only used for Set Enhancements, which this article also doesn't cover. Fun fact: All enhancements in the game code are considered powers, and are internally called boosts!

Attack Types

  • kAOE_Attack
  • kCold_Attack
  • kEnergy_Attack
  • kFire_Attack
  • kLethal_Attack
  • kMelee_Attack
  • kNegative_Energy_Attack
  • kPsionic_Attack
  • kRanged_Attack
  • kSmashing_Attack
  • kToxic_Attack

Power Target types

  • kNone: No target. Mostly used for powers that don't autohit anything.
  • kCaster: The caster (even if dead)
  • kPlayer: Any player characters except the caster
  • kPlayerHero: Any living player of type Hero except the caster
  • kPlayerVillain: Any living player of type Villain except the caster
  • kDeadPlayer: Any dead player characters INCLUDING caster
  • kDeadPlayerFriend: Any dead friendly players except the caster
  • kDeadPlayerFoe: Any dead hostile players except the caster
  • kTeammate: Any teammate or teammate's pet except the caster
  • kDeadTeammate: Any dead teammate or teammate's dead pet except the caster
  • kDeadOrAliveTeammate: Any teammate or teammate's pet except the caster, dead or alive
  • kVillain: Any AI-controlled evil villain except the caster
  • kDeadVillain: Any dead AI-controlled evil villain INCLUDING the caster
  • kNPC: Any NPC but villains
  • kEnemy: Seemingly deprecated. See kVillain
  • kDeadOrAliveFriend: Any Friendly or Friendly's pet except the caster, dead or alive
  • kDeadFriend: Any Friendly on the same "team" except the caster
  • kFriend: Any Friendly except the caster
  • kDeadOrAliveFoe: Any hostile except the caster, alive or dead
  • kDeadFoe: Any dead hostile except the caster
  • kFoe: Any unfriendly except the caster
  • kLocation: A specific location (the "target halo" for placeable powers)
  • kTeleport: as kLocation, but with constraints for teleporting
  • kAny: Any living entity.
  • kDeadOrAliveMyPet: Any target where the source is the owner (i.e. the caster's pets, or any of their pets, and so on, alive or dead)
  • kDeadMyPet: Any dead target where the source is the owner (i.e. the caster's dead pets, or any of their pets' dead pets, and so on)
  • kMyPet: Any living target where the source is the owner (i.e. the caster's living pets, or any of their pets' living pets, and so on)
  • kMyOwner: The caster's master's master's master's... up to the top level.
  • kMyCreator: The caster's immediate master, ignoring levels above.
  • kMyCreation: The source's living pets, but not any of their pets' pets
  • kDeadMyCreation: The source's dead pets, but not any of their pets' dead pets
  • kDeadOrAliveMyCreation: The source's pets, alive or dead, but not any of their pets' pets
  • kLeaguemate: Any living leaguemate and their pets except the caster
  • kDeadLeaguemate: Any dead leaguemate and all leaguemate's dead pets except the caster
  • kDeadOrAliveLeaguemate: All leaguemates and their pets, dead or alive except the caster
  • kPosition: A position relative to an entity specified by the designer

Effect Areas

  • kCharacter: Any targeted entity
  • kCone: A cone centered around the ray connecting the source to the target.
  • kSphere: A sphere surrounding the target.
  • kLocation: A single spot on the ground.
  • kVolume: In the same volume as the caster. Seems like it's used for environmental hazards like lava or acid.
  • kNamedVolume: In a volume named the same as the one the caster is in (not yet implemented)
  • kMap: Everybody on the same map as the caster. Mostly used by raid bosses and the like.
  • kRoom: In the same Tray (Room) as the caster. I have no idea what that means, and only one power uses it, Pets.Raid_Disruptor_Pylon_Kill.Destroy.
  • kTouch: Not sure what it does, code comments just say "Capsules touch". Seems similar to kVolume.
  • kBox: A box positioned relative to the target, oriented along the regular xyz axes. Doesn't appear to be used yet.

Boost Types

These are the actual enhancement boosts that are found in powers. There are a couple of other boost types, but those are specific to Incarnate powers, or are used to flag what origins can slot a given boost. There's also the Hamidon boost type, which apply to all the IO multi-aspects. (Hamidon, Titan and Hydra enhancements).

  • kAccuracy_Boost
  • kDamage_Boost
  • kEnduranceDiscount_Boost
  • kRange_Boost
  • kRecharge_Boost
  • kDebuff_Defense_Boost
  • kStunned_Boost
  • kImmobilized_Boost
  • kKnockback_Boost
  • kBuff_ToHit_Boost
  • kTaunt_Boost
  • kHeal_Boost
  • kSlow_Boost
  • kDebuff_ToHit_Boost
  • kInterrupt_Boost
  • kHold_Boost
  • kRecovery_Boost
  • kSleep_Boost
  • kFear_Boost
  • kBuff_Defense_Boost
  • kConfuse_Boost
  • kRes_Damage_Boost
  • kSpeedrunning_Boost
  • kJump_Boost
  • kSpeedFlying_Boost
  • kIntangible_Boost
  • kSpeedRunning_Boost
  • kDeBuff_ToHit_Boost
  • kDeBuff_Defense_Boost