1. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  2. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  3. The Lich King demands your service! We've reached the 19th edition of the Icon Contest. Come along and make some chilling servants for the one true king.
    Dismiss Notice
  4. The 4th SFX Contest has started. Be sure to participate and have a fun factor in it.
    Dismiss Notice
  5. The poll for the 21st Terraining Contest is LIVE. Be sure to check out the entries and vote for one.
    Dismiss Notice
  6. The results are out! Check them out.
    Dismiss Notice
  7. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  8. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  9. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

[Systems] Chrono Technology

Discussion in 'The Lab' started by Daffa the Mage, Jun 3, 2016.

  1. Daffa the Mage

    Daffa the Mage

    Map Moderator

    Joined:
    Jan 30, 2013
    Messages:
    7,731
    Resources:
    28
    Packs:
    1
    Maps:
    8
    Spells:
    17
    Tutorials:
    2
    Resources:
    28
    Hey all, howdy? (mind late night)

    Anyway, I'm working on two stuffs based on Red Alert 2 Chrono Legionnaire unit and I intend to ask for some feedback before I sent it to the spell section (let's just say I'm being kind to the mods and reviewers).

    Chrono Gun
    Don't yell at me for using
    PauseUnit
    , I'll use that as template for Stun System later on. Just to ensure the core actually works.

    Description :
    Simulating Chrono Legionnaire attack from Red Alert 2. Prevent all units from attacking the target and "freeze" the target completely in time.
    Other unit of the same weapon can still attack the target. Damage is not applied unit the unit hits zero health, in that case "disappears".

    Requirements :
    Damage Engine by Bribe
    Unit Indexer by Bribe

    Notes :
    Due to nature of the system, cancelling an attack order might need to be executed several times if the last attack projectiles are yet to reach target due to auto attack enforcement.

    • CG Config
      • Events
        • Map initialization
      • Conditions
      • Actions
        • -------- Copy the Chrono Gun System ability and set this value to it --------
        • Set CG_FreezeAbility = Chrono Gun System
        • -------- Add this ability to all units that utilize this system via World Editor --------


    • CG Initialize
      • Events
        • Game - DamageEvent becomes Equal to 1.00
      • Conditions
        • (Level of CG_FreezeAbility for DamageEventSource) Equal to 1
      • Actions
        • Set CG_SourceCV = (Custom value of DamageEventSource)
        • Set CG_TargetCV = (Custom value of DamageEventTarget)
        • -------- Apply actual damage, freeze target --------
        • Set CG_Damage[CG_TargetCV] = (CG_Damage[CG_TargetCV] + DamageEventAmount)
        • Unit - Pause DamageEventTarget
        • Set CG_UnderChrono[CG_TargetCV] = True
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • (Life of DamageEventTarget) Less than CG_Damage[CG_TargetCV]
          • Then - Actions
            • -------- Apply shot --------
            • Set DamageEventAmount = CG_Damage[CG_TargetCV]
          • Else - Actions
            • -------- Cancel main damage --------
            • Set DamageEventAmount = 0.00
        • -------- Keylock --------
        • Set CG_UserAttachVictimID[CG_SourceCV] = CG_TargetCV
        • Set CG_UserAttachVictim[CG_SourceCV] = DamageEventTarget
        • Unit - Order DamageEventSource to Attack DamageEventTarget


    • CG Exclusion
      • Events
        • Game - DamageEvent becomes Equal to 1.00
      • Conditions
        • CG_UnderChrono[(Custom value of DamageEventTarget)] Equal to True
        • (Level of CG_FreezeAbility for DamageEventSource) Equal to 0
      • Actions
        • Set DamageEventAmount = 0.00


    • CG Release
      • Events
        • Unit - A unit Is issued an order targeting an object
        • Unit - A unit Is issued an order targeting a point
        • Unit - A unit Is issued an order with no target
        • Unit - A unit Dies
      • Conditions
        • (Level of CG_FreezeAbility for (Triggering unit)) Equal to 1
      • Actions
        • Set CG_User = (Triggering unit)
        • Set CG_SourceCV = (Custom value of CG_User)
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • CG_UserAttachVictimID[CG_SourceCV] Not equal to 0
          • Then - Actions
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • (CG_User is alive) Equal to True
              • Then - Actions
                • -------- Issued order --------
                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • (Issued order) Equal to (Order(attack))
                  • Then - Actions
                    • -------- To ensure not a reinstated attack order --------
                    • Set CG_Victim = (Target unit of issued order)
                    • Set CG_TargetCV = (Custom value of CG_Victim)
                    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      • If - Conditions
                        • CG_UserAttachVictimID[CG_SourceCV] Equal to CG_TargetCV
                      • Then - Actions
                        • Skip remaining actions
                      • Else - Actions
                  • Else - Actions
              • Else - Actions
                • -------- Died --------
            • Set CG_Victim = CG_UserAttachVictim[CG_SourceCV]
            • Set CG_TargetCV = (Custom value of CG_Victim)
            • Set CG_UnderChrono[CG_TargetCV] = False
            • Set CG_Damage[CG_TargetCV] = 0.00
            • Unit - Unpause CG_Victim
          • Else - Actions


    Credits :
    Red Alert 2
    Bribe


    Chrono Movement
    WIP
     

    Attached Files:

  2. LimitingBounds

    LimitingBounds

    Joined:
    May 12, 2016
    Messages:
    39
    Resources:
    0
    Resources:
    0
    For Chrono movement:

    -make a passive ability to be detected by the Chrono Trigger (lol)
    -set pseudo-timer arrays and make a function that makes them tick
    -make a insta-move action function triggered with a unit issued a point-target order event, considering that the ordered unit has the ability mentioned above and the pseudo-timer is expired
    -function also sets pseudo-timer to 1 second (the cooldown for the Chrono movement iirc)

    This is what I forsee you'll be doing with that wip. :xxd:
     
  3. Daffa the Mage

    Daffa the Mage

    Map Moderator

    Joined:
    Jan 30, 2013
    Messages:
    7,731
    Resources:
    28
    Packs:
    1
    Maps:
    8
    Spells:
    17
    Tutorials:
    2
    Resources:
    28
    Thanks for the suggestions, I'll try to see and use them as necessary :)
     
  4. Leo Akastenix

    Leo Akastenix

    Joined:
    Nov 27, 2014
    Messages:
    866
    Resources:
    0
    Resources:
    0
    WOOAAHH, i am confused yet impressed by the triggers.