home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 42 / CDGAMER42.iso / Egoboo / egoboo.exe / egoboo / modules / rogue.mod / objects / ironball.obj / script.txt < prev    next >
Text File  |  2000-03-23  |  6KB  |  270 lines

  1. //------------------------------------------------------------------------------
  2. // ZZ> Spawn the chain particles every frame
  3. IfCrushed
  4.   tmpx = selfx
  5.   tmpy = selfy
  6.   tmpdistance = selfz
  7.   tmpargument = 2
  8.   SpawnExactParticle
  9.   SpawnExactParticle
  10.   SpawnExactParticle
  11.   SpawnExactParticle
  12.   GoPoof
  13.   tmpargument = 4
  14.   SendMessageNear
  15. IfTargetIsSelf
  16.   GetState
  17. Else
  18.   // First figure out where to draw them
  19.  
  20.   // Chain link nearest to target, only move if out of range
  21.   tmpargument = 3
  22.   GetXY
  23.   tmpx = targetx - tmpx
  24.   tmpy = targety - tmpy
  25.   tmpdistance = xydistance
  26.   tmpturn = 128
  27.   IfDistanceIsMoreThanTurn
  28.     tmpdistance = 128
  29.   tmpx = tmpx * tmpdistance > 7
  30.   tmpy = tmpy * tmpdistance > 7
  31.   AddXY
  32.   tmpargument = 2
  33.   GetXY
  34.   tmpdistance = tmpx
  35.   tmpturn = tmpy
  36.   tmpargument = 3
  37.   GetXY
  38.   tmpx = tmpdistance - tmpx
  39.   tmpy = tmpturn - tmpy
  40.   tmpdistance = xydistance
  41.   tmpturn = 256
  42.   IfDistanceIsMoreThanTurn
  43.     tmpdistance = 256
  44.   tmpx = tmpx * tmpdistance > 8
  45.   tmpy = tmpy * tmpdistance > 8
  46.   AddXY
  47.  
  48.  
  49.   // Next one
  50.   tmpargument = 3
  51.   GetXY
  52.   tmpdistance = tmpx
  53.   tmpturn = tmpy
  54.   tmpargument = 2
  55.   GetXY
  56.   tmpx = tmpdistance - tmpx
  57.   tmpy = tmpturn - tmpy
  58.   tmpdistance = xydistance
  59.   tmpturn = 128
  60.   IfDistanceIsMoreThanTurn
  61.     tmpdistance = 128
  62.   tmpx = tmpx * tmpdistance > 7
  63.   tmpy = tmpy * tmpdistance > 7
  64.   AddXY
  65.   tmpargument = 1
  66.   GetXY
  67.   tmpdistance = tmpx
  68.   tmpturn = tmpy
  69.   tmpargument = 2
  70.   GetXY
  71.   tmpx = tmpdistance - tmpx
  72.   tmpy = tmpturn - tmpy
  73.   tmpdistance = xydistance
  74.   tmpturn = 256
  75.   IfDistanceIsMoreThanTurn
  76.     tmpdistance = 256
  77.   tmpx = tmpx * tmpdistance > 8
  78.   tmpy = tmpy * tmpdistance > 8
  79.   AddXY
  80.  
  81.  
  82.   // Next one
  83.   tmpargument = 2
  84.   GetXY
  85.   tmpdistance = tmpx
  86.   tmpturn = tmpy
  87.   tmpargument = 1
  88.   GetXY
  89.   tmpx = tmpdistance - tmpx
  90.   tmpy = tmpturn - tmpy
  91.   tmpdistance = xydistance
  92.   tmpturn = 128
  93.   IfDistanceIsMoreThanTurn
  94.     tmpdistance = 128
  95.   tmpx = tmpx * tmpdistance > 7
  96.   tmpy = tmpy * tmpdistance > 7
  97.   AddXY
  98.   tmpargument = 0
  99.   GetXY
  100.   tmpdistance = tmpx
  101.   tmpturn = tmpy
  102.   tmpargument = 1
  103.   GetXY
  104.   tmpx = tmpdistance - tmpx
  105.   tmpy = tmpturn - tmpy
  106.   tmpdistance = xydistance
  107.   tmpturn = 256
  108.   IfDistanceIsMoreThanTurn
  109.     tmpdistance = 256
  110.   tmpx = tmpx * tmpdistance > 8
  111.   tmpy = tmpy * tmpdistance > 8
  112.   AddXY
  113.  
  114.  
  115.   // Link nearest to ball
  116.   tmpargument = 1
  117.   GetXY
  118.   tmpdistance = tmpx
  119.   tmpturn = tmpy
  120.   tmpargument = 0
  121.   GetXY
  122.   tmpx = tmpdistance - tmpx
  123.   tmpy = tmpturn - tmpy
  124.   tmpdistance = xydistance
  125.   tmpturn = 128
  126.   IfDistanceIsMoreThanTurn
  127.     tmpdistance = 128
  128.   tmpx = tmpx * tmpdistance > 7
  129.   tmpy = tmpy * tmpdistance > 7
  130.   AddXY
  131.   tmpx = selfx
  132.   tmpy = selfy
  133.   tmpdistance = tmpx
  134.   tmpturn = tmpy
  135.   tmpargument = 0
  136.   GetXY
  137.   tmpx = tmpdistance - tmpx
  138.   tmpy = tmpturn - tmpy
  139.   tmpdistance = xydistance
  140.   tmpturn = 256
  141.   IfDistanceIsMoreThanTurn
  142.     tmpdistance = 256
  143.   tmpx = tmpx * tmpdistance > 8
  144.   tmpy = tmpy * tmpdistance > 8
  145.   AddXY
  146.  
  147.  
  148.   // Don't allow jumping
  149.   tmpx = targetz
  150.   tmpy = selfz + 60
  151.   IfXIsMoreThanY
  152.     StopTargetMovement
  153.  
  154.  
  155.   // Now check for pulled chain
  156.   tmpx = targetx - selfx
  157.   tmpy = targety - selfy
  158.   tmpdistance = xydistance
  159.   tmpturn = 180
  160.   IfDistanceIsMoreThanTurn
  161.     tmpturn = 225
  162.     IfDistanceIsMoreThanTurn
  163.       tmpx = targetx
  164.       tmpy = targety
  165.       Teleport
  166.     Else
  167.       tmpx = selfx - targetx > 6
  168.       tmpy = selfy - targety > 6
  169.       SetTargetToLowestTarget
  170.       AccelerateTarget
  171.       SetTargetToSelf
  172.       SetTargetToLowestTarget
  173.       tmpx = 0 - tmpx > 1
  174.       tmpy = 0 - tmpy > 1
  175.       IfTargetIsSelf
  176.         IfTimeOut
  177.           tmpargument = 1
  178.           tmpdistance = rand & 2047 + 10000
  179.           PlaySound
  180.           tmpargument = rand & 7 + 18
  181.           SetTime
  182.       AccelerateTarget
  183.       SetTargetToOldTarget
  184.  
  185.  
  186.   // Check for a crushed ball
  187.   tmpturn = 0
  188.   IfCrushed
  189.     tmpturn = 1
  190.  
  191.  
  192.   // Now draw them all
  193.   tmpargument = 3
  194.   GetXY
  195.   tmpargument = tmpturn
  196.   tmpdistance = targetaltitude > 1
  197.   tmpdistance = targetz - tmpdistance
  198.   SpawnExactParticle
  199.  
  200.  
  201.   tmpdistance = 0
  202.   tmpargument = 2
  203.   GetXY
  204.   tmpargument = tmpturn
  205.   SpawnExactParticle
  206.  
  207.   tmpargument = 1
  208.   GetXY
  209.   tmpargument = tmpturn
  210.   SpawnExactParticle
  211.  
  212.   tmpargument = 0
  213.   GetXY
  214.   tmpargument = tmpturn
  215.   tmpdistance = selfaltitude > 1
  216.   tmpdistance = selfz - tmpdistance
  217.   SpawnExactParticle
  218.  
  219.  
  220. //------------------------------------------------------------------------------
  221. // ZZ> This function...  Does stuff
  222. IfSpawned                // Make it able to be crushed in doors
  223.   MakeCrushValid              //
  224.   tmpargument = 15
  225.   SetTime
  226. IfStateIs0
  227.   // Drop it when first appearing
  228.   IfTimeOut
  229.     tmpargument = 1
  230.     SetState
  231.     DetachFromHolder
  232. IfDropped
  233.   UndoEnchant
  234. IfUsed
  235.   tmpargument = 50
  236.   SetReloadTime
  237. IfHitGround                // Make a sound
  238.   tmpargument = 0              //
  239.   tmpdistance = rand & 2047 + 10000      //
  240.   PlaySound                  //
  241. IfNotPutAway                // Say oops
  242.   tmpargument = 5              //
  243.   SendMessageNear              //
  244. IfGrabbed                // Tell them what they've won...
  245.   IfTargetIsSelf              //
  246.     tmpx = selfx                // Clear out the storage values
  247.     tmpy = selfy                //
  248.     tmpargument = 0                //
  249.     SetXY                    //
  250.     tmpargument = 1                //
  251.     SetXY                    //
  252.     tmpargument = 2                //
  253.     SetXY                    //
  254.     tmpargument = 3                //
  255.     SetXY                    //
  256.     SetTargetToWhoeverIsHolding            //
  257.     IfTargetIsAPlayer                //
  258.       tmpargument = 0                  //
  259.       SendMessageNear                  //
  260.   Else                      //
  261.     SetTargetToWhoeverIsHolding            //
  262.     IfTargetIsOldTarget                //
  263.       tmpargument = 1                  //
  264.     Else                    //
  265.       SetTargetToOldTarget              //
  266.       tmpargument = 2                  //
  267.     SendMessageNear                //
  268.   EnchantTarget
  269. End                    // All done
  270.