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