1. datablock RTSUnitData(archerBlock : UnitBaseBlock)
  2. {
  3.    shapeFile = "~/data/shapes/elf/elf.dts";
  4.    RTSUnitTypeName = "archer";
  5.    baseDamage = 32; //48;
  6.    attackDelay = 22;
  7.    damagePlus = 3;
  8.    armor = 2;  
  9.    moveSpeed = 4.5;  
  10.    range = 34;
  11.    maxDamage = 220;
  12.    vision = 150;
  13.    isMelee = false;
  14.    boundingBox = "2.0 2.0 2.0";
  15.    repairRate=0.1;  
  16. };
  17.  
  18. function archerBlock::onAttack(%this, %attacker, %target)
  19. {
  20.    %damage = %attacker.getDataBlock().baseDamage;
  21.    if (%attacker.getNetModifier().baseDamage)
  22.       %damage *= %attacker.getNetModifier().baseDamage;
  23.  
  24.    %armor  = %target.getDataBlock().armor;
  25.    if (%target.getNetModifier().armor)
  26.       %armor *= %target.getNetModifier().armor;
  27.      
  28.    if(%damage > %armor)
  29.       %damage -= %armor;
  30.    else
  31.       %damage = 0;
  32.  
  33.   %target.damage(%attacker,0,%damage,"RANGED");
  34. }