Guest

Untitled

By: Larington on Aug 18th, 2011  |  syntax: None  |  size: 4.45 KB  |  hits: 79  |  expires: Never
download  |  raw  |  embed  |  report abuse
Copied
  1. // concatenation of CombatHexGridNameTextField.text + X Num + Y Num
  2. // X Num and Y Num change depending on if we're filling the node name or
  3. //connectingNodeNW
  4. //connectingNodeNN
  5. //connectingNodeNE
  6. //connectingNodeSW
  7. //connectingNodeSS
  8. //connectingNodeSE
  9.  
  10.  
  11. //xPosTextField.text and yPosTextField.text
  12. //CombatHexGridNameTextField.text
  13.  
  14. //x = 1
  15. //connectingNodeNW = -1;
  16. //connectingNodeSW = -1;
  17.  
  18. //x = xPosTextField.text
  19. //connectingNodeNE = -1;
  20. //connectingNodeSE = -1;
  21.  
  22. //y = 1
  23. //connectingNodeNN = -1;
  24.  
  25. //y = 1 and x = odd number
  26. //connectingNodeNW = -1;
  27. //connectingNodeNN = -1;
  28. //connectingNodeNE = -1;
  29.  
  30. function BeginHexCreation()
  31. {
  32.    %simGroupName = CombatHexGridNameTextField.getText();
  33.    %obj = new SimGroup(%simGroupName)
  34.       {
  35.          canSave = "1";
  36.          canSaveDynamicFields = "1";
  37.       };
  38.       MissionGroup.add(%obj);
  39.  
  40.    
  41.    %xGridMaxPos = xPosTextField.getValue();
  42.    %yGridMaxPos = yPosTextField.getValue();
  43.  
  44.    %hexOffsetValue = 0;
  45.    
  46.    %combatNodeXWorldPos = 20;
  47.    %combatNodeYWorldPos = 20;
  48.    %variableCombatNodeYWorldPos = %combatNodeYWorldPos;
  49.    %combatNodeZWorldPos = 240.1;
  50.    %combatNodePosition = %combatNodeXWorldPos SPC %CombatNodeYWorldPos SPC %combatNodeZWorldPos;
  51.    %hexOffset = true;
  52.  
  53.    %ORIGINcombatNodeXWorldPos = %combatNodeXWorldPos;
  54.  
  55.    %xGridPos = 1;
  56.    %yGridPos = 1;
  57.    
  58.    while(%yGridPos<=%yGridMaxPos)
  59.    {
  60.    %hexOffset = true;
  61.    %combatNodeXWorldPos = %ORIGINcombatNodeXWorldPos;
  62.    
  63.    
  64.    while(%xGridPos<=%xGridMaxPos)
  65.    {
  66.      
  67.    %newCombatNodeName = CombatHexGridNameTextField.getValue() @ "X" @ %xGridPos @ "Y" @ %yGridPos;
  68.    
  69.    //Turns out the connecting node names are different depending on if %xGridPos is odd or even
  70.    if(!((%xGridPos /2)==1))
  71.    {
  72.       %connectingNodeNWName = CombatHexGridNameTextField.text @ "X" @ %xGridPos-1 @ "Y" @ %yGridPos-1;
  73.       %connectingNodeNNName = CombatHexGridNameTextField.text @ "X" @ %xGridPos @ "Y" @ %yGridPos-1;
  74.       %connectingNodeNEName = CombatHexGridNameTextField.text @ "X" @ %xGridPos+1 @ "Y" @ %yGridPos-1;
  75.       %connectingNodeSWName = CombatHexGridNameTextField.text @ "X" @ %xGridPos-1 @ "Y" @ %yGridPos;
  76.       %connectingNodeSSName = CombatHexGridNameTextField.text @ "X" @ %xGridPos @ "Y" @ %yGridPos+1;
  77.       %connectingNodeSEName = CombatHexGridNameTextField.text @ "X" @ %xGridPos+1 @ "Y" @ %yGridPos;
  78.    }
  79.    else
  80.    {
  81.       %connectingNodeNWName = CombatHexGridNameTextField.text @ "X" @ %xGridPos-1 @ "Y" @ %yGridPos;
  82.       %connectingNodeNNName = CombatHexGridNameTextField.text @ "X" @ %xGridPos @ "Y" @ %yGridPos-1;
  83.       %connectingNodeNEName = CombatHexGridNameTextField.text @ "X" @ %xGridPos+1 @ "Y" @ %yGridPos;
  84.       %connectingNodeSWName = CombatHexGridNameTextField.text @ "X" @ %xGridPos-1 @ "Y" @ %yGridPos+1;
  85.       %connectingNodeSSName = CombatHexGridNameTextField.text @ "X" @ %xGridPos @ "Y" @ %yGridPos+1;
  86.       %connectingNodeSEName = CombatHexGridNameTextField.text @ "X" @ %xGridPos+1 @ "Y" @ %yGridPos+1;
  87.    }
  88.    
  89.    if(%xGridPos==1) //This if prevents the offset triggering when it shouldn't be due to odd numbered width
  90.    {
  91.       %hexOffsetValue = 0;
  92.    }
  93.    %variableCombatNodeYWorldPos = %combatNodeYWorldPos + %hexOffsetValue;
  94.    %combatNodePosition = %combatNodeXWorldPos SPC %variableCombatNodeYWorldPos SPC %combatNodeZWorldPos;
  95.    
  96.    new StaticShape(%newCombatNodeName) {
  97.          dataBlock = "CombatNode";
  98.          parentGroup = %simGroupName;
  99.          position = %combatNodePosition;
  100.          rotation = "1 0 0 0";
  101.          scale = "1 1 1";
  102.          canSave = "1";
  103.          canSaveDynamicFields = "1";
  104.             connectingNodeNW = %connectingNodeNWName;
  105.             connectingNodeNN = %connectingNodeNNName;
  106.             connectingNodeNE = %connectingNodeNEName;
  107.             connectingNodeSW = %connectingNodeSWName;
  108.             connectingNodeSS = %connectingNodeSSName;
  109.             connectingNodeSE = %connectingNodeSEName;
  110.             occupant = "None";
  111.       };
  112.    echo("Created at X: " @ %combatNodeXWorldPos @ " Y: " @ %variableCombatNodeYWorldPos);
  113.    
  114.    if(%hexOffset$=true)
  115.    {
  116.       %hexOffset = false;
  117.       %hexOffsetValue = -2;
  118.    }
  119.    else
  120.    {
  121.       %hexOffset = true;
  122.       %hexOffsetValue = 0;
  123.    }
  124.    
  125.    %combatNodeXWorldPos = %combatNodeXWorldPos + 3;
  126.    %xGridPos = %xGridPos +1;
  127.    
  128.    }
  129.    %combatNodeYWorldPos = %combatNodeYWorldPos -4;  
  130.    
  131.    
  132.    
  133.    %xGridPos = 1;
  134.    %yGridPos = %yGridPos +1;
  135.    
  136.    
  137.    
  138.    }
  139. }