It is currently 26 Apr 2024, 10:21
   
Text Size

Some infos into a config file

Moderator: CCGHQ Admins

Some infos into a config file

Postby NeoAnderson » 22 Oct 2014, 16:58

I was looking into Core wad unpacked i see the file: \DATA_CORE_unpacked\DATA_CORE\DATA_ALL_PLATFORMS\SPECIALFX\SPECIALFX\DEFAULTS.XML
This is a config file for FX EMITTERS...


DEFAULTS.XML | Open
Code: Select all
<?xml version="1.0"?>

<!-- The triggers: -->
<!--
BEGINNING_OF_STEP,                     // X Info: player (will be called for each player in turn)
END_OF_STEP,                            // X Info: player (will be called for each player in turn)
BEGINNING_OF_TURN,                      // X Info: player (will be called for each player in turn)
END_OF_TURN,                            // X Info: player (will be called for each player in turn)
ATTACKERS_DECLARED,                     // X Info: player (will be called for each player in turn)
BLOCKERS_DECLARED,                      // X Info: player (will be called for each player in turn)
COMBAT_DAMAGE_PUSHED,                   // X Info: player (will be called for each player in turn)
ACTIVATED_ABILITY_PLAYED,               // X Info: object, ability
CREATURE_TOOK_DAMAGE,                   // X Info: object, damage amount
PLAYER_TOOK_DAMAGE,                     // X Info: object, damage amount
PLAYER_LOST_LIFE,                       // X Info: player, life-loss amount
PLAYER_GAINED_LIFE,                     // X Info: player, life-loss amount
PLAYER_LIFE_CHANGED,                    // X Info: player, life-loss amount
ATTACKING_AND_ISNT_BLOCKED,             // X Info: object
ATTACKING,                              // X Info: object
AURA_ATTACHED,                          // X Info: object, aura
EQUIPMENT_ATTACHED,                     // X Info: object, equipment
BECAME_BLOCKED,                         // X Info: object (once per attacker, per blocker)
BECAME_TAPPED,                          // X Info: object
BECAME_TAPPED_FOR_MANA,                 // - Info: object
BECAME_TARGET,                          // X Info: object
BECAME_UNTAPPED,                        // X Info: object
BLOCKING,                               // X Info: object
CHAMPIONED,                             // ? Info: object
CLASH,                                  // ? Info: player1, player2
CONTROLLER_CHANGED,                     // X Info: object
COUNTERS_CHANGED,                       // X Info: counter type, amount difference
CYCLED,                                 // ? Info: object
CREATURE_DEALT_COMBAT_DAMAGE,             // X Info: object, amount
CREATURE_DEALT_COMBAT_DAMAGE_TO_PLAYER,    // X Info: object, player, amount
DESTROYED,                              // X Info: object
DISCARD,                                // X Info: object
DREW_CARD,                              // X Info: player
KICKER_PAID,                            // - Info: object
LOST_CLASH,                             // ? Info: player
PAY_CUMULATIVE_UPKEEP,                  // - Info: object
PAY_ECHO,                               // - Info: object
SPELL_OR_ABILITY_CAUSED_SHUFFLE,           // X Info: player
STATE_BASED_EFFECTS,                    // X Info: player (will be called for each player in turn)
TARGETS_CHOSEN,                         // X Info: object
TURNED_FACE_UP,                         // - Info: object
UNATTACHED_FROM_CREATURE,               // X Info: object
WAS_BLOCKED_BY,                         // X Info: object, blocker
WON_CLASH,                              // ? Info: player
HIT_GRAVEYARD,                          // X Info: object
ZONECHANGE,                             // X Info: object
SACRIFICE,                              // X Info: object
SPELL_PLAYED,                           // X Info: object
SPELL_RESOLVED,                         // X Info: object
ABILITY_PLAYED,                         // X Info: object, ability
ABILITY_RESOLVED,                       // X Info: object, ability
LAND_PLAYED,                            // X Info: object
COMES_INTO_PLAY,                        // X Info: object
WAS_BLOCKED,                            // X Info: object (once per attacker that was blocked)
CARD_CONSIDERED_FOR_TARGETTING,            // X Info: object, source of targetting
PLAYER_CONSIDERED_FOR_TARGETTING,          // X Info: player, source of targetting
EVASION_TEST,                           // X Info: attacker, blocker
SPELL_BEING_COUNTERED,                  // X Info: object
CREATURE_DEALT_COMBAT_DAMAGE_TO_CREATURE,   // X Info: object, object, amount
STACK_PUSHED,                           // X Info: stack object                             // NOT FOR USE FOR SFX TRIGGERS
STACK_POPPED,                           // X Info: stack object                             // NOT FOR USE FOR SFX TRIGGERS
-->
<!-- 
You can combine triggers by using the "|" symbol, i.e.
BEGINNING_OF_STEP|BEGINNING_OF_TURN
max number of combined triggers is 5

for the emitters, you need to have a corresponding emitter in
Content#/SpellFX/Emitters, so if the emitter you wanted was
"fireEmitter", there'd have to be a "fireEmitter.CNT" in the folder,
otherwise, that emitter is ditched for the specialFX. if a specialFX has
no emitters, it's ditched.

only one emitter of the same name can exist (in the
Content#/SpellFX/Emitters folder), but you can use that
emitter in different specialFX, or in the same specialFX and give it different
triggers. in fact, you could give it the same triggers, i don't really care

most of the attributes listed below can be left out completely, so you
don't have to include them if you don't need them. if they're not found,
then the emitter will use default behaviour. read the specific attributes
to see what these are

a simple specialFX:
<SpecialFX name="fire" >
  <Emitter name="fireEmitter" start="BEGINNING_OF_TURN" finish="END_OF_TURN" />
</SpecialFX>

you can omit the finish trigger. if you do, it's assumed that the emitter
is a timed one that runs out itself. if you put it in, it assumes that it's
a looped emitter that stops when the trigger is hit
i.e:
   <Emitter name="looped" start="BEGINNING_OF_STEP" />
      
there is a special case for the trigger ABILITY_PLAYED where you can specify
what type of ability you want to trigger on by passing it in square brackets
before that ([STATIC / TRIGGERED / ACTIVATED]). omitting this will trigger it
no matter the ability type, so this is an optional refinement
i.e:
   <Emitter name="trigger_ability" start="[TRIGGERED]ABILITY_PLAYED" />
      
=================================================================================
ATTRIBUTES QUICK GLANCE
=================================================================================
SPECIAL_FX ATTRIBUTE:   {killOnStackPop         = "[0 (false) / 1 (true)]"}
EMITTER ATTRIBUTE:      {dontAddEndTurnTrigger   = "[0 (false) / 1 (true)]"}
EMITTER ATTRIBUTE:      {watchStackForEnd      = "[0 (false) / 1 (true)]"}
EMITTER ATTRIBUTE:      {finishTime            = "[0.0 - 1.0]"}
EMITTER ATTRIBUTE:      {watchStackForMove      = "[0 (false) / 1 (true)]"}
EMITTER ATTRIBUTE:      {moveTime            = "[0.0 - 1.0]"}
EMITTER ATTRIBUTE:      {tweenMove            = "[0 (false) / 1 (true)]"}
EMITTER ATTRIBUTE:      {start               = "[ONSTART[#] / ONSTOP[#] / ONCREATE"]} (# = number of emitter to watch)
EMITTER ATTRIBUTE:      {xAmount            = "[0 (false) / 1 (true)]"}
EMITTER ATTRIBUTE:      {sound               = "[(path to sound)]"}
EMITTER ATTRIBUTE:      {soundLoops            = "[0 (false) / 1 (true)]"}
EMITTER ATTRIBUTE:      {getTargetFromTrigger   = "[0 (false) / 1 (true)]"}
EMITTER ATTRIBUTE:      {selfTarget            = "[0 (false) / 1 (true)]"}
EMITTER ATTRIBUTE:      {startZoneChange      = "[BATTLEFIELD / REMOVED_FROM_GAME / PHASED_OUT / LIBRARY / GRAVEYARD / HAND / STACK / CEASED_TO_EXIST]"}
EMITTER ATTRIBUTE:      {endZoneChange         = "[BATTLEFIELD / REMOVED_FROM_GAME / PHASED_OUT / LIBRARY / GRAVEYARD / HAND / STACK / CEASED_TO_EXIST]"}
EMITTER ATTRIBUTE:      {attachToChild         = "[name_of_child_lump]"}
=================================================================================

*********************************************************************************
SPECIAL_FX ATTRIBUTE: {killOnStackPop="[0 (false) / 1 (true)]"}
*********************************************************************************
killOnStackPop is a special bool that kills the special effect if it's stack
object is popped. this is important for attack type special effects. i.e. if your
attack special effect has a build up that trigger on ATTACKING, then if the card
is blocking, it won't get this trigger, and when it comes to see if the sfx
is finished, it'll return false (as all the emitter haven't fired yet),
thus you'll get phantom effects then next attack phase. it makes sense in my head
i.e.:
   <SpecialFX name="default_attack" killOnStackPop="1" >
      ...
   </SpecialFX>

*********************************************************************************
EMITTER ATTRIBUTE: {dontAddEndTurnTrigger="[0 (false) / 1 (true)]"}
*********************************************************************************
by default, all emitters get the END_OF_TURN trigger added to their end triggers
so if something goes tits up, the effect won't play on for ages. if you want to
stop this being added, then add dontAddEndTurnTrigger="1" to the emitter tag.
this is automatically true for any emitter that watches the stack either for
moving for ending. only do this for effects that you definetly know won't screw
up, or if you want an effect to last longer than one turn
i.e.:
   <Emitter name="no_end_trigger" dontAddEndTurnTrigger="1" />

*********************************************************************************
EMITTER ATTRIBUTE: {watchStackForEnd="[0 (false) / 1 (true)]"}
EMITTER ATTRIBUTE: {finishTime="[0.0 - 1.0]"}
*********************************************************************************
emitters can watch the stack for their end trigger (only use it for effects
that are likely to have stack objects, like in casting a spell). the stack
timer runs between 0-1, so the finishTime is clamped between those values
i.e.:
   <Emitter name="stack_end" start="BEGINNING_OF_STEP" watchStackForEnd="1" finishTime="0.9" />

*********************************************************************************
EMITTER ATTRIBUTE: {watchStackForMove="[0 (false) / 1 (true)]"}
EMITTER ATTRIBUTE: {moveTime="[0.0 - 1.0]"}
EMITTER ATTRIBUTE: {tweenMove="[0 (false) / 1 (true)]"}
*********************************************************************************
emitters can watch the stack for their move trigger (if the sfx has an
attractor). the stack timer runs between 0-1, so the moveTime is clamped
between those values - it will move the distance between it's starting pos
and it's ending pos in the remainder of the time - i.e. if moveTime is 0.9,
then the attractor will move in the last 10% of the stack timer. it's helpful
if these effects are continuous rather than timed, so they'll be killed when
the time runs up. if this is set, then watchStackForEnd is always true, and
finishTime is always 1.0f
if you want the attractor to move immediately, then set tweenMove to 0 (it's
1 by default)
i.e.:
   <Emitter name="stack_move" start="BEGINNING_OF_STEP" watchStackForMove="1" moveTime="0.0" tweenMove="0" />

*********************************************************************************
EMITTER ATTRIBUTE: {start="[ONSTART[#] / ONSTOP[#] / ONCREATE]"} (# = number of emitter to watch)
*********************************************************************************
There's also special triggers, ONSTART, ONSTOP and ONCREATE. these are followed by
the number of the emitter that you're watching (starting at 0). e.g.
<Emitter name="someName" start="ONSTOP0" /> makes an emitter called
"someName" that starts when emitter 0 stops. the exception is ONCREATE
which just plays the effect as soon as it's created

*********************************************************************************
EMITTER ATTRIBUTE: {xAmount="[0 (false) / 1 (true)]"}
*********************************************************************************
xAmount means that it'll get the number of emitters from a stack object (with
a default of 1) - i.e. use it on something like COMBAT_DAMAGE_PUSHED - if it's
blocked by more than 1 creature, it'll fire off an emitter effect for each one
i.e.:
   <Emitter name="attack" start="COMBAT_DAMAGE_PUSHED" xAmount="1" />

*********************************************************************************
EMITTER ATTRIBUTE: {sound="[(path to sound)]"}
*********************************************************************************
with the sound, if a sound is provided with an effect, specify it here using
the full path, minus the filename. i.e. "data\sounds\some_sound". it'll get
stopped automatically (provided it doesn't run out before hand) when the effect
stops.
i.e.:
   <Emitter name="sound_effect" sound="data\sounds\whistle" />

*********************************************************************************
EMITTER ATTRIBUTE: {soundLoops="[0 (false) / 1 (true)]"}
*********************************************************************************
if you want the sound to loop, then set soundLoops to 1. the default is 0 obv.
i.e.:
      <Emitter name="repeating_sound" sound="data\sounds\machinegun" soundLoops="1" />

*********************************************************************************
EMITTER ATTRIBUTE: {getTargetFromTrigger="[0 (false) / 1 (true)]"}
*********************************************************************************
getTargetFromTrigger is a bool that is used for spells that require a target to
move their attractor, but they can't get it from the stack object, as is the
case with triggered / activiated abilities
i.e.:
      <Emitter name="life_gain" start="PLAYER_GAINED_LIFE"  getTargetFromTrigger="1" />

*********************************************************************************
EMITTER ATTRIBUTE: {selfTarget="[0 (false) / 1 (true)]"}
*********************************************************************************
selfTarget is different from getTargetFromTrigger in that it'll only fire if the
target of the spell is the owner of the card the sfx is attached to. This is
necessary for cards like wurms tooth where the player gains a life. if two
players have it down (for the same colour), then when someone plays a relevant spell,
both sfx's will target the first player to gain life, which is wrong
i.e.:
      <Emitter name="life_gain" start="PLAYER_GAINED_LIFE"  selfTarget="1" />
          
*********************************************************************************
EMITTER ATTRIBUTE: {startZoneChange="[NOWHERE_YET / BATTLEFIELD / REMOVED_FROM_GAME / PHASED_OUT / LIBRARY / GRAVEYARD / HAND / STACK / CEASED_TO_EXIST]"}
EMITTER ATTRIBUTE: {endZoneChange="[NOWHERE_YET / BATTLEFIELD / REMOVED_FROM_GAME / PHASED_OUT / LIBRARY / GRAVEYARD / HAND / STACK / CEASED_TO_EXIST]"}
*********************************************************************************
startZoneChange and endZoneChange is used to trigger effects such as a card hitting the
graveyard etc. you can chain zone together using the "|" symbol. the max number of zones is 8,
which means that it would fire pretty much every time the card breathed.
These emitters have a special optional zone, so you can check that they're coming from that
zone. This is specified by putting that zone in [] brackets before the zone in question.
e.g. startZoneChange="[BATTLEFIELD]GRAVEYARD" would only trigger if the card hit the
graveyard from in play
NOTE: NOWHERE_YET is only recommended for using as a coming from zone
i.e.:
      <Emitter name="changed_zone" startZoneChange="BATTLEFIELD" endZoneChange="GRAVEYARD|CEASED_TO_EXIST" />
      <Emitter name="unsummon" startZoneChange="[BATTLEFIELD]HAND" />
          
*********************************************************************************
EMITTER ATTRIBUTE: {attachToChild="[name_of_child_lump]"}
*********************************************************************************
attachToChild is used where you want to attach the emitter to a child lump of the card
instead of the card itself. One example of this would be in the buff and nerf emitters
where you would attach the emitter to the power and toughness display rather than the
card, to show that the power and toughness has increased / decreased. This isn't
something that'll get used much but still.
NOTE: "_PT0" is the name of the power / toughness model
i.e.:
      <Emitter name="power_toughness_change" start="CREATURE_TOOK_DAMAGE" attachToChild="_PT0" />
          
-->

<SFXSpecialFX>

   <SpecialFX name="default_cast">
      <Emitter name="default_resolving" start="SPELL_PUSHED" kicked="0" watchStackForEnd="1" finishTime="0.99" dontAddEndTurnTrigger="1" sound="default_resolving" rumbleTarget="CASTER" lowStrength="0.6f" lowDuration="0.5" lowDecay="1" />
      <Emitter name="default_cast" start="ONSTOP0" dontAddEndTurnTrigger="1" sound="default_cast" rumbleTarget="CASTER" highStrength="0.5f" highDuration="0.8" highDecay="1" />
   </SpecialFX>

  <SpecialFX name="default_kicked">
    <Emitter name="resolving_kicked" start="SPELL_PUSHED" kicked="1" watchStackForEnd="1" finishTime="0.99" dontAddEndTurnTrigger="1" sound="default_resolving" rumbleTarget="CASTER" lowStrength="0.6f" lowDuration="0.5" lowDecay="1" />
    <Emitter name="default_cast" start="ONSTOP0" dontAddEndTurnTrigger="1" sound="default_cast" rumbleTarget="CASTER" highStrength="0.5f" highDuration="0.8" highDecay="1" />
  </SpecialFX>

  <SpecialFX name="default_sick">
    <Emitter name="sick" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>
 
  <SpecialFX name="default_mythic_foil">
    <Emitter name="mythic_foil" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>
 
   <SpecialFX name="default_attack">
    <Emitter name="blade_1_T" start="COMBAT_DAMAGE_PUSHED"  watchStackForMove="1" tweenMove="0"  waitToFinish="1"  playOnTarget="1" sound="Blade_Small" />
   </SpecialFX>

   <SpecialFX name="default_change_controller">
      <Emitter name="default_change_controller" start="CONTROLLER_CHANGED" sound="default_changecontroller" />
   </SpecialFX>

   <SpecialFX name="default_destroy">
      <Emitter name="default_destroy" startZoneChange="GRAVEYARD" dontAddEndTurnTrigger="1" />
   </SpecialFX>

   <SpecialFX name="default_change_zone">
      <Emitter name="default_move_zone" startZoneChange="BATTLEFIELD | REMOVED_FROM_GAME | PHASED_OUT | LIBRARY | HAND | STACK | CEASED_TO_EXIST" dontAddEndTurnTrigger="1" />
   </SpecialFX>

   <SpecialFX name="default_unsummon">
      <Emitter name="default_unsummon" startZoneChange="[BATTLEFIELD]HAND | [STACK]HAND" dontAddEndTurnTrigger="1" />
   </SpecialFX>

   <SpecialFX name="default_resurrect">
      <Emitter name="default_resurrect" startZoneChange="[GRAVEYARD]BATTLEFIELD | [GRAVEYARD]HAND" dontAddEndTurnTrigger="1" />
   </SpecialFX>

   <SpecialFX name="default_activated_ability">
      <Emitter name="default_resolving" start="[ACTIVATED]ABILITY_PLAYED" watchStackForEnd="1" finishTime="0.99" dontAddEndTurnTrigger="1" sound="default_resolving" />
      <Emitter name="default_activated_ability" start="ONSTOP0" dontAddEndTurnTrigger="1" rumbleTarget="EVERYONE" highStrength="0.3f" highDuration="0.5" highDecay="1" sound="default_activated_ability" />
   </SpecialFX>

   <SpecialFX name="default_triggered_ability">
      <Emitter name="default_resolving" start="[TRIGGERED]ABILITY_PLAYED" watchStackForEnd="1" finishTime="0.99" dontAddEndTurnTrigger="1" sound="default_resolving" />
      <Emitter name="default_triggered_ability" start="ONSTOP0" dontAddEndTurnTrigger="1" sound="default_triggered_ability" />
   </SpecialFX>

   <SpecialFX name="default_buff">
      <Emitter name="default_buff" start="ONCREATE" attachToChild="_PT0" dontAddEndTurnTrigger="1" />
   </SpecialFX>

   <SpecialFX name="default_nerf">
      <Emitter name="default_nerf" start="ONCREATE" attachToChild="_PT0" dontAddEndTurnTrigger="1" />
   </SpecialFX>

   <SpecialFX name="default_token_spawn">
      <Emitter name="default_token_spawn" startZoneChange="[CEASED_TO_EXIST]BATTLEFIELD" dontAddEndTurnTrigger="1" sound="token_spawn" />
   </SpecialFX>

   <SpecialFX name="default_token_destroy">
      <Emitter name="default_token_destroy" startZoneChange="[BATTLEFIELD]CEASED_TO_EXIST" dontAddEndTurnTrigger="1" sound="token_destroy" />
   </SpecialFX>

   <SpecialFX name="stop" >
      <Emitter name="cast" start="ONCREATE" dontAddEndTurnTrigger="1" sound="continue" />
   </SpecialFX>

   <SpecialFX name="continue" >
      <Emitter name="cast" start="ONCREATE" dontAddEndTurnTrigger="1" sound="continue" />
   </SpecialFX>

  <!-- Current turn large/small -->
  <SpecialFX name="on_current_turn" >
    <Emitter name="turn_avatar" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="on_current_turn2" >
    <Emitter name="turn_avatar" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="on_current_turn3" >
    <Emitter name="turn_avatar" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="mini_on_current_turn" >
    <Emitter name="turn_avatar_mini" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="mini_on_current_turn2" >
    <Emitter name="turn_avatar_mini" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="mini_on_current_turn3" >
    <Emitter name="turn_avatar_mini" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>
 
  <!-- Current turn combat large/small -->
  <SpecialFX name="on_combat_turn" >
    <Emitter name="combat_avatar" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="on_combat_turn2" >
    <Emitter name="combat_avatar" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="on_combat_turn3" >
    <Emitter name="combat_avatar" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="mini_on_combat_turn" >
    <Emitter name="combat_avatar_mini" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="mini_on_combat_turn2" >
    <Emitter name="combat_avatar_mini" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="mini_on_combat_turn3" >
    <Emitter name="combat_avatar_mini" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <!-- Interrupting player large/small -->
  <SpecialFX name="on_interrupt_timer" >
    <Emitter name="timer_avatar" start="ONCREATE" dontAddEndTurnTrigger="1" />
  </SpecialFX>

  <SpecialFX name="mini_on_interrupt_timer" >
    <Emitter name="timer_avatar_mini" start="ONCREATE" dontAddEndTurnTrigger="1" />
  </SpecialFX>
 
  <!-- Game won large/small -->
  <SpecialFX name="game_won_avatar" >
    <Emitter name="game_win_avatar" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="game_won_avatar2" >
    <Emitter name="game_win_avatar" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="game_won_avatar3" >
    <Emitter name="game_win_avatar" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="mini_game_won_avatar" >
    <Emitter name="game_win_avatar_mini" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="mini_game_won_avatar2" >
    <Emitter name="game_win_avatar_mini" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="mini_game_won_avatar3" >
    <Emitter name="game_win_avatar_mini" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <!-- Game lost large/small -->
  <SpecialFX name="game_lost_avatar" >
    <Emitter name="game_lose_avatar" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="game_lost_avatar2" >
    <Emitter name="game_lose_avatar" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="game_lost_avatar3" >
    <Emitter name="game_lose_avatar" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="mini_game_lost_avatar" >
    <Emitter name="game_lose_avatar_mini" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="mini_game_lost_avatar2" >
    <Emitter name="game_lose_avatar_mini" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="mini_game_lost_avatar3" >
    <Emitter name="game_lose_avatar_mini" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <!-- Global win/lose -->
  <SpecialFX name="game_win_board" >
    <Emitter name="game_win_global" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="game_lose_board" >
    <Emitter name="game_lose_global" start="ONCREATE" dontAddEndTurnTrigger="1"  />
  </SpecialFX>

  <SpecialFX name="planeswalk" >
    <Emitter name="planeswalk" start="ONCREATE" dontAddEndTurnTrigger="1" attachToFace="1" sound="planechange"/>
  </SpecialFX>
 
  <SpecialFX name="chaos_roll" >
    <Emitter name="chaos_roll" start="ONCREATE" dontAddEndTurnTrigger="1" attachToFace="1" sound="chaos"/>
  </SpecialFX>

</SFXSpecialFX>
I see some interesting things...but i am not sure they are rally implemented.
For Example :The trigger ABILITY_PLAYED, // X Info: object, ability
Does it returns also the ability???

I also see something like :EMITTER ATTRIBUTE: {startZoneChange="[NOWHERE_YET / BATTLEFIELD / REMOVED_FROM_GAME / PHASED_OUT / LIBRARY / GRAVEYARD / HAND / STACK / CEASED_TO_EXIST]"}
Does the ZONE_PHASED_OUT really exist??
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Some infos into a config file

Postby migookman » 22 Oct 2014, 17:51

Very interesting discovery.
User avatar
migookman
 
Posts: 135
Joined: 05 Aug 2014, 06:37
Has thanked: 21 times
Been thanked: 28 times

Re: Some infos into a config file

Postby thefiremind » 22 Oct 2014, 18:04

Some of the files in the core are leftovers from previous versions, where maybe some new things were added without deleting old ones that aren't used anymore. That file is probably there since DotP2010, where abilities could be pointed. I started modding with DotP2012 so I don't know exactly how it worked, but when I tried to use the old DotP2010 damage prevention code (with no result) sumomole showed me a piece of code with an Effect() pointer.

About ZONE_PHASED_OUT, you should already know (from that MTGSalvation link) that the phased-out zone existed in Magic rules, but at some point they removed it because a zone change that didn't count as a zone change was confusing.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 721 times

Re: Some infos into a config file

Postby NeoAnderson » 22 Oct 2014, 18:34

thefiremind wrote:Some of the files in the core are leftovers from previous versions, where maybe some new things were added without deleting old ones that aren't used anymore. That file is probably there since DotP2010, where abilities could be pointed. I started modding with DotP2012 so I don't know exactly how it worked, but when I tried to use the old DotP2010 damage prevention code (with no result) sumomole showed me a piece of code with an Effect() pointer.

About ZONE_PHASED_OUT, you should already know (from that MTGSalvation link) that the phased-out zone existed in Magic rules, but at some point they removed it because a zone change that didn't count as a zone change was confusing.
I know that the rules has changed and Phase out is a state of the card, not a zone change. My question is just if it is still implemented, anyway i already tested and it seems to not be present anymore.
About the first point i will try to take a look to old magic modding post, i would check if the abilities can be pointed.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Some infos into a config file

Postby RiiakShiNal » 22 Oct 2014, 22:41

In DotP 2010 we could point to abilities, though that didn't give us much information as it was mainly just a pointer to pass to certain functions (I started modding with DotP 2010, skipped DotP 2012 though). In later versions that was removed and it was no longer possible to get a pointer to an effect (they probably moved the pointer handling into the core).
RiiakShiNal
Programmer
 
Posts: 2185
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Some infos into a config file

Postby NeoAnderson » 23 Oct 2014, 01:16

RiiakShiNal wrote:In DotP 2010 we could point to abilities, though that didn't give us much information as it was mainly just a pointer to pass to certain functions (I started modding with DotP 2010, skipped DotP 2012 though). In later versions that was removed and it was no longer possible to get a pointer to an effect (they probably moved the pointer handling into the core).
Thx for pointing it Riiak i will not waste more time about it. :wink:
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times


Return to Programming Talk

Who is online

Users browsing this forum: No registered users and 39 guests

cron

Who is online

In total there are 39 users online :: 0 registered, 0 hidden and 39 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 39 guests

Login Form