Project Perfect Mod Forums
:: Home :: Get Hosted :: PPM FAQ :: Forum FAQ :: Privacy Policy :: Search :: Memberlist :: Usergroups :: Register :: Profile :: Log in to check your private messages :: Log in ::


The time now is Thu Mar 28, 2024 10:01 am
All times are UTC + 0
Larger radius cursor for upgraded Special power?
Moderators: Global Moderators
Post new topic   Reply to topic Page 1 of 1 [7 Posts] Mark the topic unread ::  View previous topic :: View next topic
Author Message
Madin
Plasma Trooper


Joined: 05 Apr 2009

PostPosted: Fri Jun 27, 2014 10:32 am    Post subject:  Larger radius cursor for upgraded Special power?
Subject description: What is a good way to do this?
Reply with quote  Mark this post and the followings unread

I have a super weapon that upgrades itself so it can deliver stronger attacks over time. I am using the 'SpecialPowerDispatchSpecialPower' module along with upgrade requirements to do this.

The issue I am having is that if I want the attack to have a larger radius when upgraded, has far has I can tell there is no way to show that the radius is larger because the parent special power (which dispatches the child special powers which are divided and controlled via upgrades) controls the radius cursor. The child special powers having an increased radius cursor will make no difference, the parent special power takes precedent.

So a larger attack is possible, it is just that the players radius cursor will not show it has larger.

Is there a better way of achieving this?
I want the super weapon charge time to be continuous, which is to say that I do not believe that I can use a method that swaps the 'Gameobject' with another 'Gameobject' that looks the same via a 'ReplaceSelfUpgrade', because while this would allow for a complete new set of commands and special powers, it would also mean that the special powers timer would change (has far has I am aware, it would be a completely different special power after all).

Any ideas?

_________________

Back to top
View user's profile Send private message
Ju-Jin
Cyborg Firebomber


Joined: 23 Mar 2009
Location: Germany

PostPosted: Mon Jun 30, 2014 11:41 pm    Post subject: Reply with quote  Mark this post and the followings unread

Set up the special power which holds the timer in either your spellbook or the sw (might actually not be needed), then let the sw spawn a dummy (which gets replaced through the upgrades) which holds the actual usable special power and sync that up with the SHARED_SYNC flag (use a chained SP)

Example:
Special Powers:
Code:
   <SpecialPowerTemplate
      id="SpecialPower__NodCommanderLaunchCloakingField1"
      TargetType="LOCATION"
      Flags="IS_PLAYER_POWER WATER_OK NO_FORBIDDEN_OBJECTS"
      RadiusCursorRadius="=$NOD_COMMANDER_CLOAKING_FIELD_RADIUS"
      ForbiddenObjectRange="=$NOD_COMMANDER_CLOAKING_FIELD_RADIUS"
      EvaEventToPlayWhenSelectingTarget="SelectTarget">
      <ForbiddenObjectFilter
         Rule="ANY">
         <IncludeThing>AlienCrystalShield</IncludeThing>
      </ForbiddenObjectFilter>
      <GameDependency>
         <RequiredObject>_NodConstructionYard</RequiredObject>
      </GameDependency>
   </SpecialPowerTemplate>


Code:
   <SpecialPowerTemplate
      id="SpecialPower__NodCommanderLaunchCloakingField2"
      TargetType="LOCATION"
      Flags="IS_PLAYER_POWER WATER_OK NO_FORBIDDEN_OBJECTS"
      RadiusCursorRadius="=$NOD_COMMANDER_CLOAKING_FIELD_RADIUS * 2"
      ForbiddenObjectRange="=$NOD_COMMANDER_CLOAKING_FIELD_RADIUS * 2"
      EvaEventToPlayWhenSelectingTarget="SelectTarget">
      <ForbiddenObjectFilter
         Rule="ANY">
         <IncludeThing>AlienCrystalShield</IncludeThing>
      </ForbiddenObjectFilter>
      <GameDependency>
         <RequiredObject>_NodConstructionYard</RequiredObject>
      </GameDependency>
   </SpecialPowerTemplate>


Code:
   <SpecialPowerTemplate
      id="SpecialPower__NodCommanderLaunchCloakingFieldTimer"
      TargetType="NONE"
      Flags="IS_PLAYER_POWER SHARED_SYNC"
      ReloadTime="=$NOD_COMMANDER_LAUNCH_CLOAKING_FIELD_RECHARGE" />


Objects:
Code:
   <GameObject
      id="_NodCommanderCloakingField1Launcher"
      Side="NOD"
      EditorSorting="SYSTEM"
      KindOf="PRELOAD SALVAGER IMMOBILE IGNORES_SELECT_ALL NOT_AUTOACQUIRABLE CANNOT_BE_DETECTED NO_COLLIDE RESIST_EMP"
      RadarPriority="NOT_ON_RADAR"
      EditorName="NodCommanderCloakingField1Launcher">
      <ArmorSet
         Armor="NoArmor" />
      <Behaviors>
         <GrantUpgradeAreaOfEffectSpecialPower
            id="ModuleTag_LaunchCloakingField"
            SpecialPowerTemplate="SpecialPower__NodCommanderLaunchCloakingField1"
            UpdateModuleStartsAttack="true"
            TriggerFX="FX_NodCloakingField"
            Radius="=$NOD_COMMANDER_CLOAKING_FIELD_RADIUS">
            <AcceptObjectFilter
               Rule="ANY"
               Relationship="ALLIES"
               Include="INFANTRY VEHICLE" />
            <UpgradeTemplate>Upgrade__NodCloakingFieldInvisibility</UpgradeTemplate>
         </GrantUpgradeAreaOfEffectSpecialPower>
         <SpecialAbilityUpdate
            id="ModuleTag_LaunchCloakingFieldUpdate"
            SpecialPowerTemplate="SpecialPower__NodCommanderLaunchCloakingField1"
            Options="CHECK_CHAINED_COMMAND"
            ChainedButton="Command_SpecialPower__NodCommanderLaunchCloakingFieldTimer" />
         <SpecialPower
            id="ModuleTag_LaunchCloakingFieldTimer"
            SpecialPowerTemplate="SpecialPower__NodCommanderLaunchCloakingFieldTimer" />
         <ReplaceSelfUpgrade
            id="ModuleTag_ReplaceSelf">
            <TriggeredBy>Upgrade__NodCloakingField2</TriggeredBy>
            <ReplacementTemplate>_NodCommanderCloakingField2Launcher</ReplacementTemplate>
         </ReplaceSelfUpgrade>
      </Behaviors>
      <AI>
         <AIUpdate
            id="ModuleTag_AIUpdate"
            AutoAcquireEnemiesWhenIdle="NO" />
      </AI>
      <Body>
         <HighlanderBody
            id="ModuleTag_Body"
            MaxHealth="1.0"
            InitialHealth="1.0" />
      </Body>
   </GameObject>


Code:
   <GameObject
      id="_NodCommanderCloakingField2Launcher"
      Side="NOD"
      EditorSorting="SYSTEM"
      KindOf="PRELOAD SALVAGER IMMOBILE IGNORES_SELECT_ALL NOT_AUTOACQUIRABLE CANNOT_BE_DETECTED NO_COLLIDE RESIST_EMP"
      RadarPriority="NOT_ON_RADAR"
      EditorName="NodCommanderCloakingField2Launcher">
      <ArmorSet
         Armor="NoArmor" />
      <Behaviors>
         <GrantUpgradeAreaOfEffectSpecialPower
            id="ModuleTag_LaunchCloakingField"
            SpecialPowerTemplate="SpecialPower__NodCommanderLaunchCloakingField2"
            UpdateModuleStartsAttack="true"
            TriggerFX="FX_NodCloakingField"
            Radius="=$NOD_COMMANDER_CLOAKING_FIELD_RADIUS * 2">
            <AcceptObjectFilter
               Rule="ANY"
               Relationship="ALLIES"
               Include="INFANTRY VEHICLE" />
            <UpgradeTemplate>Upgrade__NodCloakingFieldInvisibility</UpgradeTemplate>
         </GrantUpgradeAreaOfEffectSpecialPower>
         <SpecialAbilityUpdate
            id="ModuleTag_LaunchCloakingFieldUpdate"
            SpecialPowerTemplate="SpecialPower__NodCommanderLaunchCloakingField2"
            Options="CHECK_CHAINED_COMMAND"
            ChainedButton="Command_SpecialPower__NodCommanderLaunchCloakingFieldTimer" />
         <SpecialPower
            id="ModuleTag_LaunchCloakingFieldTimer"
            SpecialPowerTemplate="SpecialPower__NodCommanderLaunchCloakingFieldTimer" />
         <ReplaceSelfUpgrade
            id="ModuleTag_ReplaceSelf">
            <TriggeredBy>Upgrade__NodCloakingField3</TriggeredBy>
            <ReplacementTemplate>_NodCommanderCloakingField3Launcher</ReplacementTemplate>
         </ReplaceSelfUpgrade>
      </Behaviors>
      <AI>
         <AIUpdate
            id="ModuleTag_AIUpdate"
            AutoAcquireEnemiesWhenIdle="NO" />
      </AI>
      <Body>
         <HighlanderBody
            id="ModuleTag_Body"
            MaxHealth="1.0"
            InitialHealth="1.0" />
      </Body>
   </GameObject>


The chained command:
Code:
   <LogicCommand
      id="Command_SpecialPower__NodCommanderLaunchCloakingFieldTimer"
      Type="SPECIAL_POWER">
      <SpecialPower>SpecialPower__NodCommanderLaunchCloakingFieldTimer</SpecialPower>
   </LogicCommand>

_________________

Back to top
View user's profile Send private message Skype Account
Madin
Plasma Trooper


Joined: 05 Apr 2009

PostPosted: Tue Jul 01, 2014 7:47 am    Post subject: Reply with quote  Mark this post and the followings unread

Wow!, this is some detailed information thanks!

I will try this out has soon has I have some time!

_________________

Back to top
View user's profile Send private message
Ju-Jin
Cyborg Firebomber


Joined: 23 Mar 2009
Location: Germany

PostPosted: Wed Jul 02, 2014 7:26 pm    Post subject: Reply with quote  Mark this post and the followings unread

Well I had it lying around from a mod I did some time ago #Tongue

_________________

Back to top
View user's profile Send private message Skype Account
Madin
Plasma Trooper


Joined: 05 Apr 2009

PostPosted: Fri Jul 04, 2014 4:12 pm    Post subject: Reply with quote  Mark this post and the followings unread

Works well except that there is a problem if it is a super weapon with a public timer (The timer will always show 'oo:oo' presumably because it cannot read the Define).

I guess there is no way around this using this method?

_________________

Back to top
View user's profile Send private message
Ju-Jin
Cyborg Firebomber


Joined: 23 Mar 2009
Location: Germany

PostPosted: Fri Jul 04, 2014 4:26 pm    Post subject: Reply with quote  Mark this post and the followings unread

You have to give the public timer to what in my example is SpecialPower__NodCommanderLaunchCloakingFieldTimer, not the power you want to actually launch.
The power with the weapon does not have a timer (so it displays 00:00). The command button only displays the time because of the timer power which is bound to it via the ChainedButton.

(btw if you want to ask a lot more questions you can add me on Skype (megumiazusa), might get faster that way)

_________________

Back to top
View user's profile Send private message Skype Account
Madin
Plasma Trooper


Joined: 05 Apr 2009

PostPosted: Fri Jul 04, 2014 5:00 pm    Post subject: Reply with quote  Mark this post and the followings unread

It does not show up at all if the public timer is in the reload control power

Code:
<SpecialPowerTemplate id="SpecialPower_IronCurtainTimer" ReloadTime="=$IRON_CURTAIN_RECHARGE" TargetType="NONE" Flags="IS_PLAYER_POWER SHARED_SYNC HAS_PUBLIC_TIMER" TimerImage="Button_IronCurtainTimer"/>


I do not have Skype, I would have to look into it.

_________________

Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic Page 1 of 1 [7 Posts] Mark the topic unread ::  View previous topic :: View next topic
 
Share on TwitterShare on FacebookShare on Google+Share on DiggShare on RedditShare on PInterestShare on Del.icio.usShare on Stumble Upon
Quick Reply
Username:


If you are visually impaired or cannot otherwise answer the challenges below please contact the Administrator for help.


Write only two of the following words separated by a sharp: Brotherhood, unity, peace! 

 
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © phpBB Group

[ Time: 0.1612s ][ Queries: 11 (0.0072s) ][ Debug on ]