Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 22.59 KB | None | 0 0
  1. -- htg_muscle --
  2. -- A  unit script for High Tech Geologists--
  3. -- by Firestorm --
  4.  
  5. -- s3o pieces
  6. local base = piece "base"
  7. local waist = piece "waist"
  8. local torso = piece "torso"
  9. local head = piece "head"
  10.  
  11. local rarm = piece "rarm"
  12. local rflare = piece "rflare"
  13. local larm = piece "larm"
  14. local lflare = piece "lflare"
  15. local rleg = piece "rleg"    
  16. local lleg = piece "lleg"
  17.  
  18. local linkpoint1 = piece "linkpoint1"
  19. local linkpoint2 = piece "linkpoint2"
  20. local linkpoint3 = piece "linkpoint3"
  21. local linkpoint4 = piece "linkpoint4"
  22.  
  23. -- Signals
  24. local SIG_idle = 1
  25. local SIG_on = 2
  26. local SIG_off = 4
  27. local SIG_stop = 8
  28. local SIG_walk = 16
  29. local SIG_swing = 32
  30. local SIG_putdown = 64
  31. local SIG_pickup = 128
  32. local SIG_fists = 256
  33. local SIG_aim1 = 512
  34. local SIG_aim2 = 1024
  35. local SIG_fire1 = 2048
  36. local SIG_fire2 = 4096
  37.  
  38. local attacking
  39.  
  40. local slots = {}
  41.  
  42. local maxSlots = 4
  43. local currSlot = 1
  44. local dropSlot = 1
  45.  
  46. -- Transport Slots (tanks FLOZi)
  47.  
  48. for i = 1, maxSlots do
  49. slots[i] = piece ("linkpoint" .. i )
  50. end
  51.  
  52.  
  53. -- Idle Animation
  54. local function idle_script()
  55.     SetSignalMask( SIG_idle )
  56.     local VAR_sleep = 120
  57.     --Spring.Echo('Executing Idle')
  58.     Sleep (0)
  59. end
  60.  
  61.  
  62. -- Transport Animation
  63. local function pick_up()
  64.     SetSignalMask( SIG_pickup )
  65.     local VAR_sleep = 120
  66.     local VAR_speed = 1
  67.     --Spring.Echo('Executing Pickup')
  68.     --frame1-9
  69.     Turn(torso, x_axis, math.rad(15), VAR_speed)
  70.     Turn(larm, x_axis, math.rad(-15), VAR_speed)
  71.     Turn(rarm, x_axis, math.rad(-15), VAR_speed)
  72.     Sleep(VAR_sleep)
  73.     Turn(torso, x_axis, math.rad(30), VAR_speed)
  74.     Turn(larm, x_axis, math.rad(-30), VAR_speed)
  75.     Turn(rarm, x_axis, math.rad(-30), VAR_speed)
  76.     Sleep(VAR_sleep)
  77.     Turn(torso, x_axis, math.rad(45), VAR_speed)
  78.     Turn(larm, x_axis, math.rad(-45), VAR_speed)
  79.     Turn(rarm, x_axis, math.rad(-45), VAR_speed)
  80.     Sleep(VAR_sleep)
  81.     Turn(torso, x_axis, math.rad(60), VAR_speed)
  82.     Turn(larm, x_axis, math.rad(-60), VAR_speed)
  83.     Turn(rarm, x_axis, math.rad(-60), VAR_speed)
  84.     Sleep(VAR_sleep)
  85.     --frame5 (arms z_axis)
  86.     Turn(larm, z_axis, math.rad(-25), VAR_speed)
  87.     Turn(rarm, z_axis, math.rad(25), VAR_speed)
  88.     Turn(torso, x_axis, math.rad(75), VAR_speed)
  89.     Turn(larm, x_axis, math.rad(-75), VAR_speed)
  90.     Turn(rarm, x_axis, math.rad(-75), VAR_speed)
  91.     Sleep(VAR_sleep)
  92.     Turn(torso, x_axis, math.rad(60), VAR_speed)
  93.     Turn(larm, x_axis, math.rad(-60), VAR_speed)
  94.     Turn(rarm, x_axis, math.rad(-60), VAR_speed)
  95.     Sleep(VAR_sleep)
  96.     Turn(torso, x_axis, math.rad(45), VAR_speed)
  97.     Turn(larm, x_axis, math.rad(-75), VAR_speed)
  98.     Turn(rarm, x_axis, math.rad(-75), VAR_speed)
  99.     Sleep(VAR_sleep)
  100.     Turn(torso, x_axis, math.rad(30), VAR_speed)
  101.     Turn(larm, x_axis, math.rad(-90), VAR_speed)
  102.     Turn(rarm, x_axis, math.rad(-90), VAR_speed)
  103.     Sleep(VAR_sleep)
  104.     Turn(torso, x_axis, math.rad(15), VAR_speed)
  105.     Turn(larm, x_axis, math.rad(-105), VAR_speed)
  106.     Turn(rarm, x_axis, math.rad(-105), VAR_speed)
  107.     Sleep(VAR_sleep)
  108.     --frame10-14
  109.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  110.     Turn(larm, x_axis, math.rad(-120), VAR_speed)
  111.     Turn(rarm, x_axis, math.rad(-120), VAR_speed)
  112.     Sleep(VAR_sleep)
  113.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  114.     Turn(larm, x_axis, math.rad(-135), VAR_speed)
  115.     Turn(rarm, x_axis, math.rad(-135), VAR_speed)
  116.     Sleep(VAR_sleep)
  117.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  118.     Turn(larm, x_axis, math.rad(-150), VAR_speed)
  119.     Turn(rarm, x_axis, math.rad(-150), VAR_speed)
  120.     Sleep(VAR_sleep)
  121.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  122.     Turn(larm, x_axis, math.rad(-165), VAR_speed)
  123.     Turn(rarm, x_axis, math.rad(-165), VAR_speed)
  124.     Sleep(VAR_sleep)
  125.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  126.     Turn(larm, x_axis, math.rad(-180), VAR_speed)
  127.     Turn(rarm, x_axis, math.rad(-180), VAR_speed)
  128.     Sleep(VAR_sleep)
  129.     --frame15-19
  130.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  131.     Turn(larm, x_axis, math.rad(-195), VAR_speed)
  132.     Turn(rarm, x_axis, math.rad(-195), VAR_speed)
  133.     Sleep(VAR_sleep)
  134.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  135.     Turn(larm, x_axis, math.rad(-210), VAR_speed)
  136.     Turn(rarm, x_axis, math.rad(-210), VAR_speed)
  137.     Sleep(VAR_sleep)
  138.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  139.     Turn(larm, x_axis, math.rad(-225), VAR_speed)
  140.     Turn(rarm, x_axis, math.rad(-225), VAR_speed)
  141.     Sleep(VAR_sleep)
  142.     --(frame18) (arms z_axis)
  143.     WaitForTurn(rarm, x_axis)
  144.     Turn(larm, z_axis, math.rad(0), VAR_speed)
  145.     Turn(rarm, z_axis, math.rad(0), VAR_speed)
  146.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  147.     Turn(larm, x_axis, math.rad(-210), VAR_speed)
  148.     Turn(rarm, x_axis, math.rad(-210), VAR_speed)
  149.     Sleep(VAR_sleep)
  150.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  151.     Turn(larm, x_axis, math.rad(-195), VAR_speed)
  152.     Turn(rarm, x_axis, math.rad(-195), VAR_speed)
  153.     Sleep(VAR_sleep)
  154.     --frame20-24
  155.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  156.     Turn(larm, x_axis, math.rad(-180), VAR_speed)
  157.     Turn(rarm, x_axis, math.rad(-180), VAR_speed)
  158.     Sleep(VAR_sleep)
  159.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  160.     Turn(larm, x_axis, math.rad(-165), VAR_speed)
  161.     Turn(rarm, x_axis, math.rad(-165), VAR_speed)
  162.     Sleep(VAR_sleep)
  163.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  164.     Turn(larm, x_axis, math.rad(-150), VAR_speed)
  165.     Turn(rarm, x_axis, math.rad(-150), VAR_speed)
  166.     Sleep(VAR_sleep)
  167.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  168.     Turn(larm, x_axis, math.rad(-135), VAR_speed)
  169.     Turn(rarm, x_axis, math.rad(-135), VAR_speed)
  170.     Sleep(VAR_sleep)
  171.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  172.     Turn(larm, x_axis, math.rad(-120), VAR_speed)
  173.     Turn(rarm, x_axis, math.rad(-120), VAR_speed)
  174.     Sleep(VAR_sleep)
  175.     --frame25-29
  176.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  177.     Turn(larm, x_axis, math.rad(-105), VAR_speed)
  178.     Turn(rarm, x_axis, math.rad(-105), VAR_speed)
  179.     Sleep(VAR_sleep)
  180.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  181.     Turn(larm, x_axis, math.rad(-90), VAR_speed)
  182.     Turn(rarm, x_axis, math.rad(-90), VAR_speed)
  183.     Sleep(VAR_sleep)
  184.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  185.     Turn(larm, x_axis, math.rad(-75), VAR_speed)
  186.     Turn(rarm, x_axis, math.rad(-75), VAR_speed)
  187.     Sleep(VAR_sleep)
  188.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  189.     Turn(larm, x_axis, math.rad(-60), VAR_speed)
  190.     Turn(rarm, x_axis, math.rad(-60), VAR_speed)
  191.     Sleep(VAR_sleep)
  192.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  193.     Turn(larm, x_axis, math.rad(-45), VAR_speed)
  194.     Turn(rarm, x_axis, math.rad(-45), VAR_speed)
  195.     Sleep(VAR_sleep)
  196.     -- frame 30-33
  197.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  198.     Turn(larm, x_axis, math.rad(-30), VAR_speed)
  199.     Turn(rarm, x_axis, math.rad(-30), VAR_speed)
  200.     Sleep(VAR_sleep)
  201.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  202.     Turn(larm, x_axis, math.rad(-15), VAR_speed)
  203.     Turn(rarm, x_axis, math.rad(-15), VAR_speed)
  204.     Sleep(VAR_sleep)
  205.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  206.     Turn(larm, x_axis, math.rad(0), VAR_speed)
  207.     Turn(rarm, x_axis, math.rad(0), VAR_speed)
  208.     Sleep(VAR_sleep)
  209.    
  210.     --StartThread( stop )
  211. end
  212.  
  213. local function put_down()
  214.     SetSignalMask( SIG_putdown )
  215.     local VAR_sleep = 120
  216.     local VAR_speed= 1
  217.     --Spring.Echo('Executing Putdown')
  218.     --frame1-9
  219.     Turn(torso, x_axis, math.rad(15), VAR_speed)
  220.     Turn(larm, x_axis, math.rad(-15), VAR_speed)
  221.     Turn(rarm, x_axis, math.rad(-15), VAR_speed)
  222.     Sleep(VAR_sleep)
  223.     Turn(torso, x_axis, math.rad(30), VAR_speed)
  224.     Turn(larm, x_axis, math.rad(-30), VAR_speed)
  225.     Turn(rarm, x_axis, math.rad(-30), VAR_speed)
  226.     Sleep(VAR_sleep)
  227.     Turn(torso, x_axis, math.rad(45), VAR_speed)
  228.     Turn(larm, x_axis, math.rad(-45), VAR_speed)
  229.     Turn(rarm, x_axis, math.rad(-45), VAR_speed)
  230.     Sleep(VAR_sleep)
  231.     Turn(torso, x_axis, math.rad(60), VAR_speed)
  232.     Turn(larm, x_axis, math.rad(-60), VAR_speed)
  233.     Turn(rarm, x_axis, math.rad(-60), VAR_speed)
  234.     Sleep(VAR_sleep)
  235.     --frame5 (arms z_axis)
  236.     Turn(larm, z_axis, math.rad(-25), VAR_speed)
  237.     Turn(rarm, z_axis, math.rad(25), VAR_speed)
  238.     Turn(torso, x_axis, math.rad(75), VAR_speed)
  239.     Turn(larm, x_axis, math.rad(-75), VAR_speed)
  240.     Turn(rarm, x_axis, math.rad(-75), VAR_speed)
  241.     Sleep(VAR_sleep)
  242.     Turn(torso, x_axis, math.rad(60), VAR_speed)
  243.     Turn(larm, x_axis, math.rad(-60), VAR_speed)
  244.     Turn(rarm, x_axis, math.rad(-60), VAR_speed)
  245.     Sleep(VAR_sleep)
  246.     Turn(torso, x_axis, math.rad(45), VAR_speed)
  247.     Turn(larm, x_axis, math.rad(-75), VAR_speed)
  248.     Turn(rarm, x_axis, math.rad(-75), VAR_speed)
  249.     Sleep(VAR_sleep)
  250.     Turn(torso, x_axis, math.rad(30), VAR_speed)
  251.     Turn(larm, x_axis, math.rad(-90), VAR_speed)
  252.     Turn(rarm, x_axis, math.rad(-90), VAR_speed)
  253.     Sleep(VAR_sleep)
  254.     Turn(torso, x_axis, math.rad(15), VAR_speed)
  255.     Turn(larm, x_axis, math.rad(-105), VAR_speed)
  256.     Turn(rarm, x_axis, math.rad(-105), VAR_speed)
  257.     Sleep(VAR_sleep)
  258.     --frame10-14
  259.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  260.     Turn(larm, x_axis, math.rad(-120), VAR_speed)
  261.     Turn(rarm, x_axis, math.rad(-120), VAR_speed)
  262.     Sleep(VAR_sleep)
  263.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  264.     Turn(larm, x_axis, math.rad(-135), VAR_speed)
  265.     Turn(rarm, x_axis, math.rad(-135), VAR_speed)
  266.     Sleep(VAR_sleep)
  267.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  268.     Turn(larm, x_axis, math.rad(-150), VAR_speed)
  269.     Turn(rarm, x_axis, math.rad(-150), VAR_speed)
  270.     Sleep(VAR_sleep)
  271.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  272.     Turn(larm, x_axis, math.rad(-165), VAR_speed)
  273.     Turn(rarm, x_axis, math.rad(-165), VAR_speed)
  274.     Sleep(VAR_sleep)
  275.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  276.     Turn(larm, x_axis, math.rad(-180), VAR_speed)
  277.     Turn(rarm, x_axis, math.rad(-180), VAR_speed)
  278.     Sleep(VAR_sleep)
  279.     --frame15-19
  280.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  281.     Turn(larm, x_axis, math.rad(-195), VAR_speed)
  282.     Turn(rarm, x_axis, math.rad(-195), VAR_speed)
  283.     Sleep(VAR_sleep)
  284.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  285.     Turn(larm, x_axis, math.rad(-210), VAR_speed)
  286.     Turn(rarm, x_axis, math.rad(-210), VAR_speed)
  287.     Sleep(VAR_sleep)
  288.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  289.     Turn(larm, x_axis, math.rad(-225), VAR_speed)
  290.     Turn(rarm, x_axis, math.rad(-225), VAR_speed)
  291.     Sleep(VAR_sleep)
  292.     --(frame18) (arms z_axis)
  293.     WaitForTurn(rarm, x_axis)
  294.     Turn(larm, z_axis, math.rad(0), VAR_speed)
  295.     Turn(rarm, z_axis, math.rad(0), VAR_speed)
  296.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  297.     Turn(larm, x_axis, math.rad(-210), VAR_speed)
  298.     Turn(rarm, x_axis, math.rad(-210), VAR_speed)
  299.     Sleep(VAR_sleep)
  300.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  301.     Turn(larm, x_axis, math.rad(-195), VAR_speed)
  302.     Turn(rarm, x_axis, math.rad(-195), VAR_speed)
  303.     Sleep(VAR_sleep)
  304.     --frame20-24
  305.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  306.     Turn(larm, x_axis, math.rad(-180), VAR_speed)
  307.     Turn(rarm, x_axis, math.rad(-180), VAR_speed)
  308.     Sleep(VAR_sleep)
  309.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  310.     Turn(larm, x_axis, math.rad(-165), VAR_speed)
  311.     Turn(rarm, x_axis, math.rad(-165), VAR_speed)
  312.     Sleep(VAR_sleep)
  313.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  314.     Turn(larm, x_axis, math.rad(-150), VAR_speed)
  315.     Turn(rarm, x_axis, math.rad(-150), VAR_speed)
  316.     Sleep(VAR_sleep)
  317.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  318.     Turn(larm, x_axis, math.rad(-135), VAR_speed)
  319.     Turn(rarm, x_axis, math.rad(-135), VAR_speed)
  320.     Sleep(VAR_sleep)
  321.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  322.     Turn(larm, x_axis, math.rad(-120), VAR_speed)
  323.     Turn(rarm, x_axis, math.rad(-120), VAR_speed)
  324.     Sleep(VAR_sleep)
  325.     --frame25-29
  326.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  327.     Turn(larm, x_axis, math.rad(-105), VAR_speed)
  328.     Turn(rarm, x_axis, math.rad(-105), VAR_speed)
  329.     Sleep(VAR_sleep)
  330.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  331.     Turn(larm, x_axis, math.rad(-90), VAR_speed)
  332.     Turn(rarm, x_axis, math.rad(-90), VAR_speed)
  333.     Sleep(VAR_sleep)
  334.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  335.     Turn(larm, x_axis, math.rad(-75), VAR_speed)
  336.     Turn(rarm, x_axis, math.rad(-75), VAR_speed)
  337.     Sleep(VAR_sleep)
  338.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  339.     Turn(larm, x_axis, math.rad(-60), VAR_speed)
  340.     Turn(rarm, x_axis, math.rad(-60), VAR_speed)
  341.     Sleep(VAR_sleep)
  342.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  343.     Turn(larm, x_axis, math.rad(-45), VAR_speed)
  344.     Turn(rarm, x_axis, math.rad(-45), VAR_speed)
  345.     Sleep(VAR_sleep)
  346.     -- frame 30-33
  347.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  348.     Turn(larm, x_axis, math.rad(-30), VAR_speed)
  349.     Turn(rarm, x_axis, math.rad(-30), VAR_speed)
  350.     Sleep(VAR_sleep)
  351.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  352.     Turn(larm, x_axis, math.rad(-15), VAR_speed)
  353.     Turn(rarm, x_axis, math.rad(-15), VAR_speed)
  354.     Sleep(VAR_sleep)
  355.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  356.     Turn(larm, x_axis, math.rad(0), VAR_speed)
  357.     Turn(rarm, x_axis, math.rad(0), VAR_speed)
  358.     Sleep(VAR_sleep)
  359.     --StartThread( stop )
  360. end
  361.  
  362.  
  363. -- Dying Animation
  364. local function unit_dying()
  365.     local VAR_sleep = 120
  366.     Spring.Echo('The unit is going down')
  367.  
  368.     Hide(head)
  369.  
  370.     Turn(waist, x_axis, math.rad(-.439560))
  371.     Sleep(sleepvar)
  372.     Turn(waist, x_axis, math.rad(-1.0))
  373.     Move(waist, y_axis, -5.000000)
  374.     Move(waist, x_axis, -5.000000)
  375.     Sleep(sleepvar)
  376.     Turn(waist, x_axis, math.rad(-1.439560))
  377.     Move(waist, y_axis, -10.000000)
  378.     Move(waist, x_axis, -10.000000)
  379.     Sleep(sleepvar)
  380.     Move(waist, y_axis, -15.000000)
  381.     Move(waist, x_axis, -15.000000)
  382.     Sleep(VAR_sleep)
  383.     Explode(head, SFX.SHATTER)
  384.     Sleep(VAR_sleep)
  385.    
  386. end
  387.  
  388.  
  389. -- Walk Animation
  390. local function walk()
  391.     SetSignalMask( SIG_walk )
  392.     local VAR_sleep = 120
  393.     local VAR_speed = 1
  394.    
  395.     --Spring.Echo('The unit should be walking now')
  396.     while true do
  397.  
  398.         --frame1
  399.         Move(waist, y_axis, math.rad(0), 0)
  400.         Turn(waist, x_axis, math.rad(0), 0)
  401.         Turn(torso, x_axis, math.rad(0), 0)
  402.         Turn(lleg, x_axis, math.rad(15), VAR_speed)
  403.         Turn(rleg, x_axis, math.rad(-15), VAR_speed)
  404.         Sleep(VAR_sleep)
  405.         --frame2
  406.         Move(waist, y_axis, math.rad(0), 0)
  407.         Turn(waist, x_axis, math.rad(0), 0)
  408.         Turn(torso, x_axis, math.rad(0), 0)
  409.         Turn(lleg, x_axis, math.rad(30), VAR_speed)
  410.         Turn(rleg, x_axis, math.rad(-30), VAR_speed)
  411.         Sleep(VAR_sleep)
  412.         --frame3
  413.         Move(waist, y_axis, math.rad(0), 0)
  414.         Turn(waist, x_axis, math.rad(0), 0)
  415.         Turn(torso, x_axis, math.rad(0), 0)
  416.         Turn(lleg, x_axis, math.rad(45), VAR_speed)
  417.         Turn(rleg, x_axis, math.rad(-45), VAR_speed)
  418.         Sleep(VAR_sleep)
  419.         --frame4
  420.         Move(waist, y_axis, math.rad(0), 0)
  421.         Turn(waist, x_axis, math.rad(0), 0)
  422.         Turn(torso, x_axis, math.rad(0), 0)
  423.         Turn(lleg, x_axis, math.rad(30), VAR_speed)
  424.         Turn(rleg, x_axis, math.rad(-30), VAR_speed)
  425.         Sleep(VAR_sleep)
  426.         --frame5
  427.         Move(waist, y_axis, math.rad(0), 0)
  428.         Turn(waist, x_axis, math.rad(0), 0)
  429.         Turn(torso, x_axis, math.rad(0), 0)
  430.         Turn(lleg, x_axis, math.rad(15), VAR_speed)
  431.         Turn(rleg, x_axis, math.rad(-15), VAR_speed)
  432.         Sleep(VAR_sleep)
  433.         --frame6
  434.         Move(waist, y_axis, math.rad(0), 0)
  435.         Turn(waist, x_axis, math.rad(0), 0)
  436.         Turn(torso, x_axis, math.rad(0), 0)
  437.         Turn(lleg, x_axis, math.rad(0.0000), VAR_speed)
  438.         Turn(rleg, x_axis, math.rad(0.0000), VAR_speed)
  439.         Sleep(VAR_sleep)
  440.         --frame7
  441.         Move(waist, y_axis, math.rad(0), 0)
  442.         Turn(waist, x_axis, math.rad(0), 0)
  443.         Turn(torso, x_axis, math.rad(0), 0)
  444.         Turn(lleg, x_axis, math.rad(-15), VAR_speed)
  445.         Turn(rleg, x_axis, math.rad(15), VAR_speed)
  446.         Sleep(VAR_sleep)
  447.         --frame8
  448.         Move(waist, y_axis, math.rad(0), 0)
  449.         Turn(waist, x_axis, math.rad(0), 0)
  450.         Turn(torso, x_axis, math.rad(0), 0)
  451.         Turn(lleg, x_axis, math.rad(-30), VAR_speed)
  452.         Turn(rleg, x_axis, math.rad(30), VAR_speed)
  453.         Sleep(VAR_sleep)
  454.         --frame9
  455.         Move(waist, y_axis, math.rad(0), 0)
  456.         Turn(waist, x_axis, math.rad(0), 0)
  457.         Turn(torso, x_axis, math.rad(0), 0)
  458.         Turn(lleg, x_axis, math.rad(-45), VAR_speed)
  459.         Turn(rleg, x_axis, math.rad(45), VAR_speed)
  460.         Sleep(VAR_sleep)
  461.         --frame10
  462.         Move(waist, y_axis, math.rad(0), 0)
  463.         Turn(waist, x_axis, math.rad(0), 0)
  464.         Turn(torso, x_axis, math.rad(0), 0)
  465.         Turn(lleg, x_axis, math.rad(-30), VAR_speed)
  466.         Turn(rleg, x_axis, math.rad(30), VAR_speed)
  467.         Sleep(VAR_sleep)
  468.         --frame11
  469.         Move(waist, y_axis, math.rad(0), 0)
  470.         Turn(waist, x_axis, math.rad(0), 0)
  471.         Turn(torso, x_axis, math.rad(0), 0)
  472.         Turn(lleg, x_axis, math.rad(-15), VAR_speed)
  473.         Turn(rleg, x_axis, math.rad(15), VAR_speed)
  474.         Sleep(VAR_sleep)
  475.         --frame12
  476.         Move(waist, y_axis, math.rad(0), 0)
  477.         Turn(waist, x_axis, math.rad(0), 0)
  478.         Turn(torso, x_axis, math.rad(0), 0)
  479.         Turn(lleg, x_axis, math.rad(0), VAR_speed)
  480.         Turn(rleg, x_axis, math.rad(0), VAR_speed)
  481.     end
  482. end    
  483.  
  484.  
  485. -- Arm Swing animation
  486. local function arm_swing()
  487.     SetSignalMask( SIG_swing )
  488.     local VAR_sleep = 120
  489.     local VAR_speed = 1
  490.  
  491.     while true do
  492.         --frame1
  493.         Turn(larm, x_axis, math.rad(-15), VAR_speed)
  494.         Turn(rarm, x_axis, math.rad(15), VAR_speed)
  495.         Sleep(VAR_sleep)
  496.         --frame2
  497.         Turn(larm, x_axis, math.rad(-30), VAR_speed)
  498.         Turn(rarm, x_axis, math.rad(30), VAR_speed)
  499.         Sleep(VAR_sleep)
  500.         --frame3
  501.         Turn(larm, x_axis, math.rad(-45), VAR_speed)
  502.         Turn(rarm, x_axis, math.rad(45), VAR_speed)
  503.         Sleep(VAR_sleep)
  504.         --frame4
  505.         Turn(larm, x_axis, math.rad(-30), VAR_speed)
  506.         Turn(rarm, x_axis, math.rad(30), VAR_speed)
  507.         Sleep(VAR_sleep)
  508.         --frame5
  509.         Turn(larm, x_axis, math.rad(-15), VAR_speed)
  510.         Turn(rarm, x_axis, math.rad(15), VAR_speed)
  511.         Sleep(VAR_sleep)
  512.         --frame6
  513.         Turn(larm, x_axis, math.rad(0.0000), VAR_speed)
  514.         Turn(rarm, x_axis, math.rad(0.0000), VAR_speed)
  515.         Sleep(VAR_sleep)
  516.         --frame7
  517.         Turn(larm, x_axis, math.rad(15), VAR_speed)
  518.         Turn(rarm, x_axis, math.rad(-15), VAR_speed)
  519.         Sleep(VAR_sleep)
  520.         --frame8
  521.         Turn(larm, x_axis, math.rad(30), VAR_speed)
  522.         Turn(rarm, x_axis, math.rad(-30), VAR_speed)
  523.         Sleep(VAR_sleep)
  524.         --frame9
  525.         Turn(larm, x_axis, math.rad(45), VAR_speed)
  526.         Turn(rarm, x_axis, math.rad(-45), VAR_speed)
  527.         Sleep(VAR_sleep)
  528.         --frame10
  529.         Turn(larm, x_axis, math.rad(30), VAR_speed)
  530.         Turn(rarm, x_axis, math.rad(-30), VAR_speed)
  531.         Sleep(VAR_sleep)
  532.         --frame11
  533.         Turn(larm, x_axis, math.rad(15), VAR_speed)
  534.         Turn(rarm, x_axis, math.rad(-15), VAR_speed)
  535.         Sleep(VAR_sleep)
  536.         --frame12
  537.         Turn(larm, x_axis, math.rad(0), VAR_speed)
  538.         Turn(rarm, x_axis, math.rad(0), VAR_speed)
  539.         Sleep(VAR_sleep)
  540.     end
  541. end
  542.  
  543.  
  544. -- Stop Actions
  545. local function stop()
  546.         SetSignalMask( SIG_stop )
  547.         --Signal( SIG_idle )
  548.         --Signal( SIG_off )
  549.         --Signal( SIG_on )
  550.         Signal( SIG_swing )
  551.         --Signal( SIG_pickup
  552.         --Signal( SIG_putdown )
  553.         Signal( SIG_walk )
  554.         --Signal( SIG_fists )
  555.         Signal( SIG_stop )
  556.        
  557.         local VAR_speed = 1
  558.         --Spring.Echo('The unit should have stopped now')
  559.                
  560.         Move(waist, x_axis, 0, VAR_speed)
  561.         Move(waist, y_axis, 0, VAR_speed)
  562.         Move(waist, z_axis, 0, VAR_speed)
  563.         Move(head, x_axis, 0, VAR_speed)
  564.         Move(head, y_axis, 0, VAR_speed)
  565.         Move(head, z_axis, 0, VAR_speed)
  566.         Move(torso, x_axis, 0, VAR_speed)
  567.         Move(torso, y_axis, 0, VAR_speed)
  568.         Move(torso, z_axis, 0, VAR_speed)
  569.        
  570.         Move(larm, x_axis, 0, VAR_speed)
  571.         Move(larm, y_axis, 0, VAR_speed)
  572.         Move(larm, z_axis, 0, VAR_speed)
  573.         Move(rarm, x_axis, 0, VAR_speed)
  574.         Move(rarm, y_axis, 0, VAR_speed)
  575.         Move(rarm, z_axis, 0, VAR_speed)
  576.        
  577.         Move(rleg, x_axis, 0, VAR_speed)
  578.         Move(rleg, y_axis, 0, VAR_speed)
  579.         Move(rleg, z_axis, 0, VAR_speed)
  580.         Move(lleg, x_axis, 0, VAR_speed)
  581.         Move(lleg, y_axis, 0, VAR_speed)
  582.         Move(lleg, z_axis, 0, VAR_speed)
  583.        
  584.         Turn(lleg, x_axis, math.rad(0), VAR_speed)
  585.         Turn(rleg, x_axis, math.rad(0), VAR_speed)
  586.         Turn(larm, x_axis, math.rad(0), VAR_speed)
  587.         Turn(larm, y_axis, math.rad(0), VAR_speed)
  588.         Turn(rarm, x_axis, math.rad(0), VAR_speed)
  589.         Turn(rarm, y_axis, math.rad(0), VAR_speed)
  590.        
  591.         Turn(waist, x_axis, math.rad(0), VAR_speed)
  592.         Turn(torso, x_axis, math.rad(0), VAR_speed)
  593.         Turn(head, x_axis, math.rad(0), VAR_speed)
  594.        
  595.         Turn(waist, y_axis, math.rad(0), VAR_speed)
  596.         Turn(torso, y_axis, math.rad(0), VAR_speed)
  597.         Turn(head, y_axis, math.rad(0), VAR_speed)
  598.         Sleep(1)
  599.         Signal( SIG_stop )
  600. end
  601.  
  602. ------
  603.  
  604. -- Activation Animation (test)
  605. function turn_on()
  606.     SetSignalMask( SIG_on )
  607.     Spring.Echo('The unit is now activated')
  608.     Spin(head, y_axis, 1, 2)
  609. end
  610.  
  611.  
  612. -- Deactivation Animation (test)
  613. function turn_off()
  614.     SetSignalMask( SIG_off )
  615.     Spring.Echo('The unit is now deactivated')
  616.     StopSpin(head, y_axis, 2)
  617. end
  618.  
  619.  
  620. -- Attack Animation for arms
  621. local function RestoreAfterDelay(unitID)
  622.     local VAR_speed = 2
  623.     Sleep(1500)
  624.     Turn(torso, x_axis, math.rad(0), VAR_speed)
  625.     Turn(larm, x_axis, math.rad(0), VAR_speed)
  626.     Turn(rarm, x_axis, math.rad(0), VAR_speed)
  627.     Turn(larm, y_axis, math.rad(0), VAR_speed)
  628.     Turn(rarm, y_axis, math.rad(0), VAR_speed)
  629. end
  630.  
  631. local function swing1()
  632.     Turn(larm, y_axis, math.rad(45), 4)
  633.     WaitForTurn(larm, y_axis)
  634.     Turn(larm, y_axis, math.rad(-45), 6)
  635.     WaitForTurn(larm, y_axis)
  636.     Turn(larm, y_axis, math.rad(0), 2)
  637.     end
  638.  
  639. local function swing2()
  640.     Turn(torso, y_axis, math.rad(-15), 4)
  641.     Turn(rarm, y_axis, math.rad(-45), 4)
  642.     WaitForTurn(rarm, y_axis)
  643.     Turn(rarm, y_axis, math.rad(45), 6)
  644.     WaitForTurn(rarm, y_axis)
  645.     Turn(rarm, y_axis, math.rad(0), 2)
  646.     end
  647.  
  648. ------
  649.  
  650. -- Call-Ins
  651.  
  652. ------
  653.  
  654. function script.Create()
  655.     attacking = false  
  656.     currSlot = 1
  657.     dropSlot = 1
  658. end
  659.  
  660. ------
  661.  
  662. function script.StartMoving()
  663.     StartThread( walk )
  664.     StartThread( arm_swing )
  665. end
  666.  
  667.  
  668. function script.StopMoving()
  669.     StartThread( stop )
  670. end
  671.  
  672. ------
  673.  
  674. function script.Activate()
  675.    StartThread( turn_on )
  676. end
  677.  
  678.  
  679. function script.Deactivate()
  680.    StartThread( turn_off )
  681. end
  682.  
  683. ------
  684.  
  685. function script.TransportPickup ( passengerID )
  686.     SetUnitValue(COB.BUSY, 1)
  687.     pick_up()
  688.     Spring.UnitScript.AttachUnit(slots[currSlot], passengerID)
  689.     currSlot = currSlot + 1
  690.     if currSlot > 4 then
  691.     currSlot = 1
  692.     end
  693.     SetUnitValue(COB.BUSY, 0)
  694. end
  695.  
  696.  
  697. function script.TransportDrop ( passengerID, x, y, z )
  698.     SetUnitValue(COB.BUSY, 1)
  699.     put_down()
  700.     dropSlot = 1
  701.         repeat
  702.         UnitScript.DropUnit(passengerID, x, y, z )
  703.         dropSlot = dropSlot + 1
  704.         until dropSlot > 4
  705.     dropSlot = 1
  706.     SetUnitValue(COB.BUSY, 0)
  707. end
  708.  
  709. ------
  710.  
  711. function script.QueryWeapon1() return lflare end
  712.  
  713. function script.QueryWeapon2() return rflare end
  714.    
  715. function script.AimFromWeapon1() return torso end
  716.  
  717. function script.AimFromWeapon2() return torso end
  718.    
  719. function script.AimWeapon1( heading, pitch )
  720.     Signal( SIG_aim1 )
  721.     SetSignalMask( SIG_aim1 )
  722.     Turn(larm, x_axis, math.rad(-90), 2)
  723.     WaitForTurn(larm, x_axis)
  724.    
  725.     Turn(torso, y_axis, heading, math.rad(150))
  726.     WaitForTurn(torso, y_axis)
  727.     StartThread( RestoreAfterDelay )
  728.     return true
  729. end
  730.  
  731. function script.AimWeapon2( heading, pitch )
  732.     Signal( SIG_aim2 )
  733.     SetSignalMask( SIG_aim2 )
  734.     Turn(rarm, x_axis, math.rad(-90), 2)
  735.     WaitForTurn(rarm, x_axis)
  736.    
  737.     Turn(torso, y_axis, -pitch, math.rad(90))
  738.     --WaitForTurn(torso, x_axis)
  739.     StartThread( RestoreAfterDelay )
  740.     return true
  741. end
  742.    
  743. function script.FireWeapon1()
  744.     swing1()
  745.     Sleep(5)
  746. end
  747.  
  748. function script.FireWeapon2()
  749.     swing2()
  750.     Sleep(5)
  751. end
  752.  
  753. ------
  754.  
  755. function script.Killed()
  756.     unit_dying()
  757.     return 0
  758. end
  759.  
  760. ------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement