package_74 alternativa.tanks.game.weapons

This commit is contained in:
Pyogenics
2025-01-29 18:28:12 +00:00
parent 265c7f1cea
commit dd3607c71e
40 changed files with 256 additions and 255 deletions

View File

@@ -15,4 +15,5 @@ package_17 platform.clients.fp10.libraries.alternativaprotocol
package_20 alternativa.tanks.game.subsystems.eventsystem package_20 alternativa.tanks.game.subsystems.eventsystem
package_22 alternativa.tanks.game.subsystems.inputsystem package_22 alternativa.tanks.game.subsystems.inputsystem
package_26 alternativa.tanks.game.utils.objectpool package_26 alternativa.tanks.game.utils.objectpool
package_74 alternativa.tanks.game.weapons
package_100 alternativa.tanks.game.weapons.ammunition.plasma package_100 alternativa.tanks.game.weapons.ammunition.plasma

View File

@@ -58,13 +58,13 @@ package alternativa.tanks
import package_72.name_264; import package_72.name_264;
import package_72.name_295; import package_72.name_295;
import package_73.name_293; import package_73.name_293;
import package_74.class_14; import alternativa.tanks.game.weapons.IGenericAmmunition;
import package_74.name_240; import alternativa.tanks.game.weapons.SimpleTargetEvaluator;
import package_74.name_263; import alternativa.tanks.game.weapons.InstantShotWeaponComponent;
import package_74.name_283; import alternativa.tanks.game.weapons.EnergyShotWeaponComponent;
import package_74.name_286; import alternativa.tanks.game.weapons.ContinuousActionGunPlatformComponent;
import package_74.name_307; import alternativa.tanks.game.weapons.WeaponConst;
import package_74.name_327; import alternativa.tanks.game.weapons.IWeaponDistanceWeakening;
import package_75.name_236; import package_75.name_236;
import package_75.name_309; import package_75.name_309;
import package_76.name_256; import package_76.name_256;
@@ -739,10 +739,10 @@ package alternativa.tanks
var _loc18_:class_5 = null; var _loc18_:class_5 = null;
var _loc3_:Number = 10000000 / 3; var _loc3_:Number = 10000000 / 3;
var _loc4_:name_256 = this.gameKernel.method_112().name_246().collisionDetector; var _loc4_:name_256 = this.gameKernel.method_112().name_246().collisionDetector;
var _loc5_:name_240 = new name_240(); var _loc5_:SimpleTargetEvaluator = new SimpleTargetEvaluator();
var _loc6_:name_261 = new name_261(Math.PI / 9,20,Math.PI / 9,20,_loc4_,_loc5_); var _loc6_:name_261 = new name_261(Math.PI / 9,20,Math.PI / 9,20,_loc4_,_loc5_);
_loc6_.name_310(this.gameKernel.method_112().name_246().collisionDetector); _loc6_.name_310(this.gameKernel.method_112().name_246().collisionDetector);
_loc6_.name_303(new name_240()); _loc6_.name_303(new SimpleTargetEvaluator());
var _loc7_:Vector.<name_129> = this.var_64.getFrames("thunder/explosion"); var _loc7_:Vector.<name_129> = this.var_64.getFrames("thunder/explosion");
var _loc8_:name_44 = this.gameKernel.name_5(); var _loc8_:name_44 = this.gameKernel.name_5();
for each(_loc9_ in _loc7_) for each(_loc9_ in _loc7_)
@@ -763,8 +763,8 @@ package alternativa.tanks
_loc8_.method_29(_loc12_); _loc8_.method_29(_loc12_);
_loc8_.method_29(_loc13_); _loc8_.method_29(_loc13_);
name_270.init(_loc12_,_loc13_); name_270.init(_loc12_,_loc13_);
var _loc14_:class_14 = new name_269(this.gameKernel,1000,10000000,200,100,0.5,null,_loc10_); var _loc14_:IGenericAmmunition = new name_269(this.gameKernel,1000,10000000,200,100,0.5,null,_loc10_);
var _loc15_:name_263 = new name_263(1000,_loc3_,_loc6_,_loc14_,new name_274(this.config.soundsLibrary.name_297("smoky/shot")),true); var _loc15_:InstantShotWeaponComponent = new InstantShotWeaponComponent(1000,_loc3_,_loc6_,_loc14_,new name_274(this.config.soundsLibrary.name_297("smoky/shot")),true);
_loc15_.name_308 = true; _loc15_.name_308 = true;
param1.name_60(_loc15_); param1.name_60(_loc15_);
var _loc16_:BitmapData = new BitmapData(20,20,false,0); var _loc16_:BitmapData = new BitmapData(20,20,false,0);
@@ -781,10 +781,10 @@ package alternativa.tanks
var _loc11_:int = 0; var _loc11_:int = 0;
var _loc18_:class_5 = null; var _loc18_:class_5 = null;
var _loc4_:name_256 = this.gameKernel.method_112().name_246().collisionDetector; var _loc4_:name_256 = this.gameKernel.method_112().name_246().collisionDetector;
var _loc5_:name_240 = new name_240(); var _loc5_:SimpleTargetEvaluator = new SimpleTargetEvaluator();
var _loc6_:name_261 = new name_261(Math.PI / 9,20,Math.PI / 9,20,_loc4_,_loc5_); var _loc6_:name_261 = new name_261(Math.PI / 9,20,Math.PI / 9,20,_loc4_,_loc5_);
_loc6_.name_310(this.gameKernel.method_112().name_246().collisionDetector); _loc6_.name_310(this.gameKernel.method_112().name_246().collisionDetector);
_loc6_.name_303(new name_240()); _loc6_.name_303(new SimpleTargetEvaluator());
var _loc7_:Vector.<name_129> = this.var_64.getFrames("thunder/explosion"); var _loc7_:Vector.<name_129> = this.var_64.getFrames("thunder/explosion");
var _loc8_:name_44 = this.gameKernel.name_5(); var _loc8_:name_44 = this.gameKernel.name_5();
for each(_loc9_ in _loc7_) for each(_loc9_ in _loc7_)
@@ -805,8 +805,8 @@ package alternativa.tanks
_loc8_.method_29(_loc12_); _loc8_.method_29(_loc12_);
_loc8_.method_29(_loc13_); _loc8_.method_29(_loc13_);
name_270.init(_loc12_,_loc13_); name_270.init(_loc12_,_loc13_);
var _loc14_:class_14 = new name_269(this.gameKernel,1000,10000000,200,100,0.5,null,_loc10_); var _loc14_:IGenericAmmunition = new name_269(this.gameKernel,1000,10000000,200,100,0.5,null,_loc10_);
var _loc15_:name_263 = new name_263(1000,3333333.3333333335,_loc6_,_loc14_,new name_274(this.config.soundsLibrary.name_297("thunder/shot")),true); var _loc15_:InstantShotWeaponComponent = new InstantShotWeaponComponent(1000,3333333.3333333335,_loc6_,_loc14_,new name_274(this.config.soundsLibrary.name_297("thunder/shot")),true);
_loc15_.name_308 = true; _loc15_.name_308 = true;
param1.name_60(_loc15_); param1.name_60(_loc15_);
var _loc16_:BitmapData = new BitmapData(20,20,false,0); var _loc16_:BitmapData = new BitmapData(20,20,false,0);
@@ -826,10 +826,10 @@ package alternativa.tanks
private function createEnergyGun(param1:Entity) : void private function createEnergyGun(param1:Entity) : void
{ {
var _loc9_:name_256 = this.gameKernel.method_112().name_246().collisionDetector; var _loc9_:name_256 = this.gameKernel.method_112().name_246().collisionDetector;
var _loc10_:name_240 = new name_240(); var _loc10_:SimpleTargetEvaluator = new SimpleTargetEvaluator();
var _loc11_:name_280 = new name_280(Math.PI / 4,20,Math.PI / 4,20,100,_loc9_,_loc10_); var _loc11_:name_280 = new name_280(Math.PI / 4,20,Math.PI / 4,20,100,_loc9_,_loc10_);
var _loc13_:Number = name_307.BASE_FORCE; var _loc13_:Number = WeaponConst.BASE_FORCE;
var _loc14_:name_327 = new name_267(2000,4000,0.5); var _loc14_:IWeaponDistanceWeakening = new name_267(2000,4000,0.5);
var _loc15_:BitmapData = this.config.var_37.name_244("plasma/charge") as BitmapData; var _loc15_:BitmapData = this.config.var_37.name_244("plasma/charge") as BitmapData;
var _loc16_:Vector.<BitmapData> = name_251.name_272(_loc15_,_loc15_.height); var _loc16_:Vector.<BitmapData> = name_251.name_272(_loc15_,_loc15_.height);
var _loc17_:Vector.<class_4> = this.getMaterialStrip(_loc16_); var _loc17_:Vector.<class_4> = this.getMaterialStrip(_loc16_);
@@ -840,7 +840,7 @@ package alternativa.tanks
var _loc22_:name_349 = new PlasmaRoundEffectsFactory(this.gameKernel,_loc17_,_loc19_,_loc20_); var _loc22_:name_349 = new PlasmaRoundEffectsFactory(this.gameKernel,_loc17_,_loc19_,_loc20_);
var _loc23_:name_296 = new name_296(50,2000,100,_loc13_,_loc14_,_loc22_,null); var _loc23_:name_296 = new name_296(50,2000,100,_loc13_,_loc14_,_loc22_,null);
param1.name_60(_loc23_); param1.name_60(_loc23_);
var _loc24_:name_283 = new name_283(1000,1000,1000,1000,0,8000,_loc11_,null,true); var _loc24_:EnergyShotWeaponComponent = new EnergyShotWeaponComponent(1000,1000,1000,1000,0,8000,_loc11_,null,true);
param1.name_60(_loc24_); param1.name_60(_loc24_);
var _loc25_:BitmapData = new BitmapData(20,20,false,0); var _loc25_:BitmapData = new BitmapData(20,20,false,0);
_loc25_.perlinNoise(20,20,3,13,false,true); _loc25_.perlinNoise(20,20,3,13,false,true);
@@ -851,7 +851,7 @@ package alternativa.tanks
private function createContinuousActionGun(param1:Entity) : void private function createContinuousActionGun(param1:Entity) : void
{ {
var _loc5_:name_286 = new name_286(1000,1,15,true); var _loc5_:ContinuousActionGunPlatformComponent = new ContinuousActionGunPlatformComponent(1000,1,15,true);
param1.name_60(_loc5_); param1.name_60(_loc5_);
var _loc7_:Number = 30 * Math.PI / 180; var _loc7_:Number = 30 * Math.PI / 180;
var _loc10_:name_262 = this.getFlamethrowerSFXData(); var _loc10_:name_262 = this.getFlamethrowerSFXData();
@@ -864,7 +864,7 @@ package alternativa.tanks
_loc16_.method_29(_loc18_); _loc16_.method_29(_loc18_);
name_265.init(_loc17_,_loc18_); name_265.init(_loc17_,_loc18_);
var _loc19_:name_256 = this.gameKernel.method_112().name_246().collisionDetector; var _loc19_:name_256 = this.gameKernel.method_112().name_246().collisionDetector;
var _loc20_:name_326 = name_240.INSTANCE; var _loc20_:name_326 = SimpleTargetEvaluator.INSTANCE;
var _loc21_:name_282 = new name_282(3000,_loc7_,10,10,_loc19_,_loc20_); var _loc21_:name_282 = new name_282(3000,_loc7_,10,10,_loc19_,_loc20_);
var _loc22_:name_287 = new name_287(this.config.soundsLibrary.name_297("flamethrower/shot")); var _loc22_:name_287 = new name_287(this.config.soundsLibrary.name_297("flamethrower/shot"));
var _loc23_:name_281 = new name_281(1000,100,_loc21_,_loc22_,true,false); var _loc23_:name_281 = new name_281(1000,100,_loc21_,_loc22_,true,false);
@@ -1181,8 +1181,8 @@ import package_71.name_234;
import package_72.class_12; import package_72.class_12;
import package_72.name_239; import package_72.name_239;
import package_73.class_13; import package_73.class_13;
import package_74.class_14; import alternativa.tanks.game.weapons.IGenericAmmunition;
import package_74.name_233; import alternativa.tanks.game.weapons.IGenericRound;
import package_75.class_15; import package_75.class_15;
import package_76.name_235; import package_76.name_235;
import package_87.name_267; import package_87.name_267;
@@ -1229,7 +1229,7 @@ class DummyTurretCallback implements class_10
} }
} }
class PointHitRoundAmmo implements class_14 class PointHitRoundAmmo implements IGenericAmmunition
{ {
private var impactForce:Number; private var impactForce:Number;
@@ -1254,7 +1254,7 @@ class PointHitRoundAmmo implements class_14
this.weaponHitEffects = new WeaponHitEffects(null,_loc2_,param1); this.weaponHitEffects = new WeaponHitEffects(null,_loc2_,param1);
} }
public function getRound() : name_233 public function getRound() : IGenericRound
{ {
return new name_304(this.impactForce,this.weaponDistanceWeakening,this.weaponHitEffects); return new name_304(this.impactForce,this.weaponDistanceWeakening,this.weaponHitEffects);
} }

View File

@@ -11,7 +11,7 @@ package alternativa.tanks.game.usertitle.component
import package_45.name_182; import package_45.name_182;
import package_46.name_194; import package_46.name_194;
import package_71.name_252; import package_71.name_252;
import package_74.class_25; import alternativa.tanks.game.weapons.IWeapon;
import package_75.name_236; import package_75.name_236;
public class name_245 extends EntityComponent implements name_82 public class name_245 extends EntityComponent implements name_82
@@ -24,7 +24,7 @@ package alternativa.tanks.game.usertitle.component
private var chassisComponent:name_236; private var chassisComponent:name_236;
private var var_442:class_25; private var var_442:IWeapon;
private var localPlayer:Boolean; private var localPlayer:Boolean;
@@ -76,7 +76,7 @@ package alternativa.tanks.game.usertitle.component
override public function initComponent() : void override public function initComponent() : void
{ {
this.chassisComponent = name_236(entity.getComponentStrict(name_236)); this.chassisComponent = name_236(entity.getComponentStrict(name_236));
this.var_442 = class_25(entity.getComponent(class_25)); this.var_442 = IWeapon(entity.getComponent(IWeapon));
this.var_424 = new name_488(); this.var_424 = new name_488();
this.var_506 = new name_609(this); this.var_506 = new name_609(this);
this.var_424.name_486(entity,name_252.SET_ACTIVATING_STATE,this.var_506); this.var_424.name_486(entity,name_252.SET_ACTIVATING_STATE,this.var_506);

View File

@@ -1,4 +1,4 @@
package package_74 package alternativa.tanks.game.weapons
{ {
import alternativa.tanks.game.EntityComponent; import alternativa.tanks.game.EntityComponent;
import alternativa.tanks.game.GameKernel; import alternativa.tanks.game.GameKernel;
@@ -10,7 +10,7 @@ package package_74
import alternativa.osgi.OSGi; import alternativa.osgi.OSGi;
import package_71.name_252; import package_71.name_252;
public class name_286 extends EntityComponent implements class_25, class_24, name_477 public class ContinuousActionGunPlatformComponent extends EntityComponent implements IWeapon, IBasicWeapon, name_477
{ {
private var energyCapacity:Number; private var energyCapacity:Number;
@@ -18,7 +18,7 @@ package package_74
private var energyRecoveryRate:Number; private var energyRecoveryRate:Number;
private var var_442:name_508; private var var_442:IContinuousActionWeapon;
private var baseTime:Number; private var baseTime:Number;
@@ -36,7 +36,7 @@ package package_74
private var var_440:name_184; private var var_440:name_184;
public function name_286(energyCapacity:Number, energyDrainRate:Number, energyRecoveryRate:Number, isLocal:Boolean) public function ContinuousActionGunPlatformComponent(energyCapacity:Number, energyDrainRate:Number, energyRecoveryRate:Number, isLocal:Boolean)
{ {
super(); super();
this.energyCapacity = energyCapacity; this.energyCapacity = energyCapacity;
@@ -60,30 +60,30 @@ package package_74
{ {
if(this.var_438) if(this.var_438)
{ {
this.method_397().log("gun","ContinuousActionGunPlatformComponent::enabled() activating"); this.getLogger().log("gun","ContinuousActionGunPlatformComponent::enabled() activating");
this.method_402(); this.activate();
this.method_403(); this.enableLogic();
} }
} }
else else
{ {
this.method_397().log("gun","ContinuousActionGunPlatformComponent::enabled() deactivating"); this.getLogger().log("gun","ContinuousActionGunPlatformComponent::enabled() deactivating");
this.method_399(); this.deactivate();
this.method_401(); this.disableLogic();
} }
} }
} }
override public function initComponent() : void override public function initComponent() : void
{ {
this.var_442 = name_508(entity.getComponentStrict(name_508)); this.var_442 = IContinuousActionWeapon(entity.getComponentStrict(IContinuousActionWeapon));
if(this.isLocal) if(this.isLocal)
{ {
entity.addEventHandler(name_252.SET_ACTIVE_STATE,this.setActiveState); entity.addEventHandler(name_252.SET_ACTIVE_STATE,this.setActiveState);
entity.addEventHandler(name_252.SET_ACTIVATING_STATE,this.setActivatingState); entity.addEventHandler(name_252.SET_ACTIVATING_STATE,this.setActivatingState);
entity.addEventHandler(name_252.SET_DEAD_STATE,this.method_400); entity.addEventHandler(name_252.SET_DEAD_STATE,this.setInactiveState);
entity.addEventHandler(name_252.SET_RESPAWN_STATE,this.method_400); entity.addEventHandler(name_252.SET_RESPAWN_STATE,this.setInactiveState);
entity.addEventHandler(GameEvents.BATTLE_FINISHED,this.method_400); entity.addEventHandler(GameEvents.BATTLE_FINISHED,this.setInactiveState);
} }
} }
@@ -101,17 +101,17 @@ package package_74
public function method_396() : Number public function method_396() : Number
{ {
return this.method_398(name_182.timeSeconds,this.var_437) / this.energyCapacity; return this.getCurrentEnergy(name_182.timeSeconds,this.var_437) / this.energyCapacity;
} }
public function method_394() : void public function method_394() : void
{ {
if(!this.var_438) if(!this.var_438)
{ {
this.method_397().log("gun","ContinuousActionGunPlatformComponent::pullTrigger()"); this.getLogger().log("gun","ContinuousActionGunPlatformComponent::pullTrigger()");
this.var_438 = true; this.var_438 = true;
this.method_402(); this.activate();
this.method_403(); this.enableLogic();
} }
} }
@@ -119,14 +119,14 @@ package package_74
{ {
if(this.var_438) if(this.var_438)
{ {
this.method_397().log("gun","ContinuousActionGunPlatformComponent::releaseTrigger()"); this.getLogger().log("gun","ContinuousActionGunPlatformComponent::releaseTrigger()");
this.var_438 = false; this.var_438 = false;
this.method_399(); this.deactivate();
this.method_401(); this.disableLogic();
} }
} }
private function method_397() : name_160 private function getLogger() : name_160
{ {
return name_160(OSGi.name_8().name_30(name_160)); return name_160(OSGi.name_8().name_30(name_160));
} }
@@ -137,19 +137,19 @@ package package_74
public function runLogic() : void public function runLogic() : void
{ {
var currentEnergy:Number = this.method_398(name_182.timeSeconds,this.var_437); var currentEnergy:Number = this.getCurrentEnergy(name_182.timeSeconds,this.var_437);
if(currentEnergy > 0) if(currentEnergy > 0)
{ {
this.var_442.update(); this.var_442.update();
} }
else else
{ {
this.method_399(); this.deactivate();
this.method_401(); this.disableLogic();
} }
} }
private function method_398(time:Number, active:Boolean) : Number private function getCurrentEnergy(time:Number, active:Boolean) : Number
{ {
var energy:Number = NaN; var energy:Number = NaN;
if(active) if(active)
@@ -171,7 +171,7 @@ package package_74
return energy; return energy;
} }
private function method_403() : void private function enableLogic() : void
{ {
if(!this.var_441 && this.var_439) if(!this.var_441 && this.var_439)
{ {
@@ -180,7 +180,7 @@ package package_74
} }
} }
private function method_401() : void private function disableLogic() : void
{ {
if(this.var_441) if(this.var_441)
{ {
@@ -189,7 +189,7 @@ package package_74
} }
} }
private function method_402() : void private function activate() : void
{ {
var now:Number = NaN; var now:Number = NaN;
var currentEnergy:Number = NaN; var currentEnergy:Number = NaN;
@@ -198,12 +198,12 @@ package package_74
this.var_437 = true; this.var_437 = true;
this.var_442.start(); this.var_442.start();
now = name_182.timeSeconds; now = name_182.timeSeconds;
currentEnergy = this.method_398(now,false); currentEnergy = this.getCurrentEnergy(now,false);
this.baseTime = now - (this.energyCapacity - currentEnergy) / this.energyDrainRate; this.baseTime = now - (this.energyCapacity - currentEnergy) / this.energyDrainRate;
} }
} }
private function method_399() : void private function deactivate() : void
{ {
var now:Number = NaN; var now:Number = NaN;
if(this.var_437) if(this.var_437)
@@ -211,7 +211,7 @@ package package_74
this.var_437 = false; this.var_437 = false;
this.var_442.stop(); this.var_442.stop();
now = name_182.timeSeconds; now = name_182.timeSeconds;
this.baseTime = now - this.method_398(now,true) / this.energyRecoveryRate; this.baseTime = now - this.getCurrentEnergy(now,true) / this.energyRecoveryRate;
} }
} }
@@ -220,7 +220,7 @@ package package_74
this.name_308 = true; this.name_308 = true;
} }
private function method_400(eventType:String, eventData:*) : void private function setInactiveState(eventType:String, eventData:*) : void
{ {
this.name_308 = false; this.name_308 = false;
} }

View File

@@ -0,0 +1,15 @@
package alternativa.tanks.game.weapons
{
public class EnergyShotType
{
public static const NORMAL_SHOT:EnergyShotType = new EnergyShotType();
public static const CLOSE_SHOT:EnergyShotType = new EnergyShotType();
public function EnergyShotType()
{
super();
}
}
}

View File

@@ -1,4 +1,4 @@
package package_74 package alternativa.tanks.game.weapons
{ {
import alternativa.tanks.game.EntityComponent; import alternativa.tanks.game.EntityComponent;
import alternativa.tanks.game.GameKernel; import alternativa.tanks.game.GameKernel;
@@ -18,7 +18,7 @@ package package_74
import package_90.name_273; import package_90.name_273;
import package_92.name_271; import package_92.name_271;
public class name_283 extends EntityComponent implements class_24, class_25, name_477 public class EnergyShotWeaponComponent extends EntityComponent implements IBasicWeapon, IWeapon, name_477
{ {
private static const COLLISION_MASK:int = name_257.STATIC | name_257.WEAPON; private static const COLLISION_MASK:int = name_257.STATIC | name_257.WEAPON;
@@ -50,9 +50,9 @@ package package_74
private var targetingSystem:name_622; private var targetingSystem:name_622;
private var ammunition:class_23; private var ammunition:IEnergyAmmunition;
private var callback:name_621; private var callback:IEnergyShotWeaponCallback;
private var isActive:Boolean; private var isActive:Boolean;
@@ -82,7 +82,7 @@ package package_74
private var barrelIndex:int; private var barrelIndex:int;
public function name_283(energyCapacity:Number, energyPerShot:Number, energyRechargeRate:Number, reloadTime:int, recoilForce:Number, maxRange:Number, targetingSystem:name_622, callback:name_621, isActive:Boolean) public function EnergyShotWeaponComponent(energyCapacity:Number, energyPerShot:Number, energyRechargeRate:Number, reloadTime:int, recoilForce:Number, maxRange:Number, targetingSystem:name_622, callback:IEnergyShotWeaponCallback, isActive:Boolean)
{ {
super(); super();
this.energyCapacity = energyCapacity; this.energyCapacity = energyCapacity;
@@ -96,7 +96,7 @@ package package_74
this.isActive = isActive; this.isActive = isActive;
} }
public function method_383(callback:name_621) : void public function method_383(callback:IEnergyShotWeaponCallback) : void
{ {
this.callback = callback; this.callback = callback;
} }
@@ -111,14 +111,14 @@ package package_74
this.var_445 = class_15(entity.getComponentStrict(class_15)); this.var_445 = class_15(entity.getComponentStrict(class_15));
this.chassisComponent = name_236(entity.getComponentStrict(name_236)); this.chassisComponent = name_236(entity.getComponentStrict(name_236));
this.var_447 = class_26(entity.getComponentStrict(class_26)); this.var_447 = class_26(entity.getComponentStrict(class_26));
this.ammunition = class_23(entity.getComponentStrict(class_23)); this.ammunition = IEnergyAmmunition(entity.getComponentStrict(IEnergyAmmunition));
if(this.isActive) if(this.isActive)
{ {
entity.addEventHandler(name_252.SET_ACTIVE_STATE,this.setActiveState); entity.addEventHandler(name_252.SET_ACTIVE_STATE,this.setActiveState);
entity.addEventHandler(name_252.SET_ACTIVATING_STATE,this.method_400); entity.addEventHandler(name_252.SET_ACTIVATING_STATE,this.setInactiveState);
entity.addEventHandler(name_252.SET_DEAD_STATE,this.method_400); entity.addEventHandler(name_252.SET_DEAD_STATE,this.setInactiveState);
entity.addEventHandler(name_252.SET_RESPAWN_STATE,this.method_400); entity.addEventHandler(name_252.SET_RESPAWN_STATE,this.setInactiveState);
entity.addEventHandler(GameEvents.BATTLE_FINISHED,this.method_400); entity.addEventHandler(GameEvents.BATTLE_FINISHED,this.setInactiveState);
} }
} }
@@ -141,7 +141,7 @@ package package_74
this.var_438 = true; this.var_438 = true;
if(this.var_439) if(this.var_439)
{ {
this.method_403(); this.enableLogic();
} }
} }
} }
@@ -151,7 +151,7 @@ package package_74
if(this.var_438) if(this.var_438)
{ {
this.var_438 = false; this.var_438 = false;
this.method_401(); this.disableLogic();
} }
} }
@@ -162,7 +162,7 @@ package package_74
public function method_396() : Number public function method_396() : Number
{ {
return this.method_398(name_182.time,this.baseTime) / this.energyCapacity; return this.getCurrentEnergy(name_182.time,this.baseTime) / this.energyCapacity;
} }
public function runLogic() : void public function runLogic() : void
@@ -171,10 +171,10 @@ package package_74
var shotId:int = 0; var shotId:int = 0;
var shooterBody:name_271 = null; var shooterBody:name_271 = null;
var collisionDetector:name_256 = null; var collisionDetector:name_256 = null;
var shotType:name_496 = null; var shotType:EnergyShotType = null;
var round:name_233 = null; var round:IGenericRound = null;
var now:int = name_182.time; var now:int = name_182.time;
var currentEnergy:Number = this.method_398(now,this.baseTime); var currentEnergy:Number = this.getCurrentEnergy(now,this.baseTime);
if(now >= this.var_446 && currentEnergy >= this.energyPerShot) if(now >= this.var_446 && currentEnergy >= this.energyPerShot)
{ {
this.var_446 = now + this.reloadTime; this.var_446 = now + this.reloadTime;
@@ -188,16 +188,16 @@ package package_74
filter.body = shooterBody; filter.body = shooterBody;
if(collisionDetector.raycast(barrelOrigin,gunDirection,COLLISION_MASK,barrelLength + 0.01,filter,rayHit)) if(collisionDetector.raycast(barrelOrigin,gunDirection,COLLISION_MASK,barrelLength + 0.01,filter,rayHit))
{ {
shotType = name_496.CLOSE_SHOT; shotType = EnergyShotType.CLOSE_SHOT;
shotDirection.copy(gunDirection); shotDirection.copy(gunDirection);
} }
else else
{ {
shotType = name_496.NORMAL_SHOT; shotType = EnergyShotType.NORMAL_SHOT;
this.targetingSystem.name_624(shooterBody,muzzlePosition,gunDirection,gunElevationAxis,this.maxRange,shotDirection); this.targetingSystem.name_624(shooterBody,muzzlePosition,gunDirection,gunElevationAxis,this.maxRange,shotDirection);
} }
filter.body = null; filter.body = null;
this.method_415(shotType,this.barrelIndex,barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis); this.doShowShotEffects(shotType,this.barrelIndex,barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis);
if(this.callback != null) if(this.callback != null)
{ {
this.callback.name_623(shotId,shotType,shotDirection,this.barrelIndex); this.callback.name_623(shotId,shotType,shotDirection,this.barrelIndex);
@@ -208,14 +208,14 @@ package package_74
} }
} }
public function method_372(shotId:int, shotType:name_496, shotDirection:name_194, barrelIndex:int) : void public function method_372(shotId:int, shotType:EnergyShotType, shotDirection:name_194, barrelIndex:int) : void
{ {
var shooterBody:name_271 = this.chassisComponent.getBody(); var shooterBody:name_271 = this.chassisComponent.getBody();
var barrelLength:Number = Number(this.var_445.getBarrelLength(barrelIndex)); var barrelLength:Number = Number(this.var_445.getBarrelLength(barrelIndex));
this.var_445.getGunData(barrelIndex,barrelOrigin,gunDirection,gunElevationAxis); this.var_445.getGunData(barrelIndex,barrelOrigin,gunDirection,gunElevationAxis);
muzzlePosition.copy(barrelOrigin).method_362(barrelLength,gunDirection); muzzlePosition.copy(barrelOrigin).method_362(barrelLength,gunDirection);
this.method_415(shotType,barrelIndex,barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis); this.doShowShotEffects(shotType,barrelIndex,barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis);
var round:name_233 = this.ammunition.getRound(shotType,this.maxRange); var round:IGenericRound = this.ammunition.getRound(shotType,this.maxRange);
round.method_372(this.gameKernel,shotId,shooterBody,barrelOrigin,barrelLength,shotDirection,muzzlePosition); round.method_372(this.gameKernel,shotId,shooterBody,barrelOrigin,barrelLength,shotDirection,muzzlePosition);
} }
@@ -233,21 +233,21 @@ package package_74
{ {
if(this.var_438) if(this.var_438)
{ {
this.method_403(); this.enableLogic();
} }
} }
else else
{ {
this.method_401(); this.disableLogic();
} }
} }
} }
private function method_415(shotType:name_496, barrelIndex:int, barrelOrigin:name_194, muzzlePosition:name_194, gunDirection:name_194, gunElevationAxis:name_194) : void private function doShowShotEffects(shotType:EnergyShotType, barrelIndex:int, barrelOrigin:name_194, muzzlePosition:name_194, gunDirection:name_194, gunElevationAxis:name_194) : void
{ {
recoilForceVector.copy(gunDirection).scale(-this.recoilForce); recoilForceVector.copy(gunDirection).scale(-this.recoilForce);
this.chassisComponent.getBody().name_525(barrelOrigin,recoilForceVector); this.chassisComponent.getBody().name_525(barrelOrigin,recoilForceVector);
if(shotType == name_496.NORMAL_SHOT) if(shotType == EnergyShotType.NORMAL_SHOT)
{ {
this.var_447.method_411(barrelIndex,barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis); this.var_447.method_411(barrelIndex,barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis);
} }
@@ -258,12 +258,12 @@ package package_74
this.name_308 = true; this.name_308 = true;
} }
private function method_400(eventType:String, eventData:*) : void private function setInactiveState(eventType:String, eventData:*) : void
{ {
this.name_308 = false; this.name_308 = false;
} }
private function method_403() : void private function enableLogic() : void
{ {
if(!this.var_441) if(!this.var_441)
{ {
@@ -272,7 +272,7 @@ package package_74
} }
} }
private function method_401() : void private function disableLogic() : void
{ {
if(this.var_441) if(this.var_441)
{ {
@@ -281,7 +281,7 @@ package package_74
} }
} }
private function method_398(time:int, baseTime:int) : Number private function getCurrentEnergy(time:int, baseTime:int) : Number
{ {
var energy:Number = 0.001 * (time - baseTime) * this.energyRechargeRate; var energy:Number = 0.001 * (time - baseTime) * this.energyRechargeRate;
if(energy < 0) if(energy < 0)

View File

@@ -1,6 +1,6 @@
package package_74 package alternativa.tanks.game.weapons
{ {
public interface class_24 public interface IBasicWeapon
{ {
function method_394() : void; function method_394() : void;

View File

@@ -1,6 +1,6 @@
package package_74 package alternativa.tanks.game.weapons
{ {
public interface name_508 public interface IContinuousActionWeapon
{ {
function start() : void; function start() : void;

View File

@@ -0,0 +1,8 @@
package alternativa.tanks.game.weapons
{
public interface IEnergyAmmunition
{
function getRound(param1:EnergyShotType, param2:Number) : IGenericRound;
}
}

View File

@@ -0,0 +1,10 @@
package alternativa.tanks.game.weapons
{
import package_46.name_194;
public interface IEnergyShotWeaponCallback
{
function name_623(param1:int, param2:EnergyShotType, param3:name_194, param4:int) : void;
}
}

View File

@@ -0,0 +1,8 @@
package alternativa.tanks.game.weapons
{
public interface IGenericAmmunition
{
function getRound() : IGenericRound;
}
}

View File

@@ -1,10 +1,10 @@
package package_74 package alternativa.tanks.game.weapons
{ {
import alternativa.tanks.game.GameKernel; import alternativa.tanks.game.GameKernel;
import package_46.name_194; import package_46.name_194;
import package_92.name_271; import package_92.name_271;
public interface name_233 public interface IGenericRound
{ {
function method_372(param1:GameKernel, param2:int, param3:name_271, param4:name_194, param5:Number, param6:name_194, param7:name_194) : void; function method_372(param1:GameKernel, param2:int, param3:name_271, param4:name_194, param5:Number, param6:name_194, param7:name_194) : void;
} }

View File

@@ -1,9 +1,9 @@
package package_74 package alternativa.tanks.game.weapons
{ {
import package_46.name_194; import package_46.name_194;
import package_92.name_271; import package_92.name_271;
public interface name_524 public interface IGenericTargetingSystem
{ {
function name_527(param1:name_271, param2:name_194, param3:name_194, param4:name_194, param5:Number, param6:name_194, param7:Number, param8:name_194) : void; function name_527(param1:name_271, param2:name_194, param3:name_194, param4:name_194, param5:Number, param6:name_194, param7:Number, param8:name_194) : void;
} }

View File

@@ -0,0 +1,8 @@
package alternativa.tanks.game.weapons
{
public interface IInstantShotWeaponCallback
{
function name_526() : void;
}
}

View File

@@ -0,0 +1,8 @@
package alternativa.tanks.game.weapons
{
public interface IWeapon
{
function method_396() : Number;
}
}

View File

@@ -1,6 +1,6 @@
package package_74 package alternativa.tanks.game.weapons
{ {
public interface name_327 public interface IWeaponDistanceWeakening
{ {
function name_554(param1:Number) : Number; function name_554(param1:Number) : Number;

View File

@@ -1,4 +1,4 @@
package package_74 package alternativa.tanks.game.weapons
{ {
import alternativa.tanks.game.EntityComponent; import alternativa.tanks.game.EntityComponent;
import alternativa.tanks.game.GameKernel; import alternativa.tanks.game.GameKernel;
@@ -14,7 +14,7 @@ package package_74
import package_75.name_236; import package_75.name_236;
import package_92.name_271; import package_92.name_271;
public class name_263 extends EntityComponent implements class_25, class_24, name_477 public class InstantShotWeaponComponent extends EntityComponent implements IWeapon, IBasicWeapon, name_477
{ {
private static var barrelOrigin:name_194 = new name_194(); private static var barrelOrigin:name_194 = new name_194();
@@ -34,11 +34,11 @@ package package_74
private var recoilForce:Number; private var recoilForce:Number;
private var targetingSystem:name_524; private var targetingSystem:IGenericTargetingSystem;
private var ammunition:class_14; private var ammunition:IGenericAmmunition;
private var callback:name_523; private var callback:IInstantShotWeaponCallback;
private var var_446:int; private var var_446:int;
@@ -62,7 +62,7 @@ package package_74
private var isActive:Boolean; private var isActive:Boolean;
public function name_263(reloadTime:int, recoilForce:Number, targetingSystem:name_524, ammunition:class_14, callback:name_523, isActive:Boolean) public function InstantShotWeaponComponent(reloadTime:int, recoilForce:Number, targetingSystem:IGenericTargetingSystem, ammunition:IGenericAmmunition, callback:IInstantShotWeaponCallback, isActive:Boolean)
{ {
super(); super();
this.reloadTime = reloadTime; this.reloadTime = reloadTime;
@@ -81,10 +81,10 @@ package package_74
if(this.isActive) if(this.isActive)
{ {
entity.addEventHandler(name_252.SET_ACTIVE_STATE,this.setActiveState); entity.addEventHandler(name_252.SET_ACTIVE_STATE,this.setActiveState);
entity.addEventHandler(name_252.SET_ACTIVATING_STATE,this.method_400); entity.addEventHandler(name_252.SET_ACTIVATING_STATE,this.setInactiveState);
entity.addEventHandler(name_252.SET_DEAD_STATE,this.method_400); entity.addEventHandler(name_252.SET_DEAD_STATE,this.setInactiveState);
entity.addEventHandler(name_252.SET_RESPAWN_STATE,this.method_400); entity.addEventHandler(name_252.SET_RESPAWN_STATE,this.setInactiveState);
entity.addEventHandler(GameEvents.BATTLE_FINISHED,this.method_400); entity.addEventHandler(GameEvents.BATTLE_FINISHED,this.setInactiveState);
} }
} }
@@ -93,7 +93,7 @@ package package_74
this.name_308 = true; this.name_308 = true;
} }
private function method_400(eventType:String, eventData:*) : void private function setInactiveState(eventType:String, eventData:*) : void
{ {
this.name_308 = false; this.name_308 = false;
} }
@@ -123,7 +123,7 @@ package package_74
this.var_438 = true; this.var_438 = true;
if(this.var_439) if(this.var_439)
{ {
this.method_403(); this.enableLogic();
} }
} }
} }
@@ -133,7 +133,7 @@ package package_74
if(this.var_438) if(this.var_438)
{ {
this.var_438 = false; this.var_438 = false;
this.method_401(); this.disableLogic();
} }
} }
@@ -156,11 +156,11 @@ package package_74
this.var_445.getGunData(BARREL_INDEX,barrelOrigin,gunDirection,gunElevationAxis); this.var_445.getGunData(BARREL_INDEX,barrelOrigin,gunDirection,gunElevationAxis);
var barrelLength:Number = Number(this.var_445.getBarrelLength(BARREL_INDEX)); var barrelLength:Number = Number(this.var_445.getBarrelLength(BARREL_INDEX));
muzzlePosition.copy(barrelOrigin).method_362(barrelLength,gunDirection); muzzlePosition.copy(barrelOrigin).method_362(barrelLength,gunDirection);
this.method_415(barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis); this.doShowShotEffects(barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis);
var shotId:int = this.var_448++; var shotId:int = this.var_448++;
var shooterBody:name_271 = this.chassisComponent.getBody(); var shooterBody:name_271 = this.chassisComponent.getBody();
this.targetingSystem.name_527(shooterBody,muzzlePosition,barrelOrigin,gunDirection,barrelLength,gunElevationAxis,name_501.BIG_VALUE,shotDirection); this.targetingSystem.name_527(shooterBody,muzzlePosition,barrelOrigin,gunDirection,barrelLength,gunElevationAxis,name_501.BIG_VALUE,shotDirection);
var round:name_233 = this.ammunition.getRound(); var round:IGenericRound = this.ammunition.getRound();
round.method_372(this.gameKernel,shotId,shooterBody,barrelOrigin,barrelLength,shotDirection,muzzlePosition); round.method_372(this.gameKernel,shotId,shooterBody,barrelOrigin,barrelLength,shotDirection,muzzlePosition);
} }
@@ -178,12 +178,12 @@ package package_74
{ {
if(this.var_438) if(this.var_438)
{ {
this.method_403(); this.enableLogic();
} }
} }
else else
{ {
this.method_401(); this.disableLogic();
} }
} }
} }
@@ -192,17 +192,17 @@ package package_74
{ {
this.var_445.getGunData(BARREL_INDEX,barrelOrigin,gunDirection,gunElevationAxis); this.var_445.getGunData(BARREL_INDEX,barrelOrigin,gunDirection,gunElevationAxis);
muzzlePosition.copy(barrelOrigin).method_362(this.var_445.getBarrelLength(BARREL_INDEX),gunDirection); muzzlePosition.copy(barrelOrigin).method_362(this.var_445.getBarrelLength(BARREL_INDEX),gunDirection);
this.method_415(barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis); this.doShowShotEffects(barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis);
} }
private function method_415(barrelOrigin:name_194, muzzlePosition:name_194, gunDirection:name_194, gunElevationAxis:name_194) : void private function doShowShotEffects(barrelOrigin:name_194, muzzlePosition:name_194, gunDirection:name_194, gunElevationAxis:name_194) : void
{ {
recoilForceVector.copy(gunDirection).scale(-this.recoilForce); recoilForceVector.copy(gunDirection).scale(-this.recoilForce);
this.chassisComponent.getBody().name_525(barrelOrigin,recoilForceVector); this.chassisComponent.getBody().name_525(barrelOrigin,recoilForceVector);
this.var_447.method_411(BARREL_INDEX,barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis); this.var_447.method_411(BARREL_INDEX,barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis);
} }
private function method_403() : void private function enableLogic() : void
{ {
if(!this.var_441) if(!this.var_441)
{ {
@@ -211,7 +211,7 @@ package package_74
} }
} }
private function method_401() : void private function disableLogic() : void
{ {
if(this.var_441) if(this.var_441)
{ {

View File

@@ -1,13 +1,13 @@
package package_74 package alternativa.tanks.game.weapons
{ {
import package_79.name_326; import package_79.name_326;
import package_92.name_271; import package_92.name_271;
public class name_240 implements name_326 public class SimpleTargetEvaluator implements name_326
{ {
public static const INSTANCE:name_240 = new name_240(); public static const INSTANCE:SimpleTargetEvaluator = new SimpleTargetEvaluator();
public function name_240() public function SimpleTargetEvaluator()
{ {
super(); super();
} }

View File

@@ -0,0 +1,13 @@
package alternativa.tanks.game.weapons
{
public class WeaponConst
{
public static const BASE_FORCE:Number = 5000000;
public function WeaponConst()
{
super();
}
}
}

View File

@@ -1,9 +1,9 @@
package package_74 package alternativa.tanks.game.weapons
{ {
import package_46.name_194; import package_46.name_194;
import package_92.name_271; import package_92.name_271;
public class name_553 public class WeaponHit
{ {
public var distance:Number; public var distance:Number;
@@ -15,7 +15,7 @@ package package_74
public var normal:name_194 = new name_194(); public var normal:name_194 = new name_194();
public function name_553() public function WeaponHit()
{ {
super(); super();
} }

View File

@@ -5,16 +5,16 @@ package package_101
import package_27.name_501; import package_27.name_501;
import package_46.name_194; import package_46.name_194;
import package_72.class_12; import package_72.class_12;
import package_74.name_233; import alternativa.tanks.game.weapons.IGenericRound;
import package_74.name_327; import alternativa.tanks.game.weapons.IWeaponDistanceWeakening;
import package_74.name_553; import alternativa.tanks.game.weapons.WeaponHit;
import package_76.name_256; import package_76.name_256;
import package_86.name_257; import package_86.name_257;
import package_86.name_540; import package_86.name_540;
import package_90.name_273; import package_90.name_273;
import package_92.name_271; import package_92.name_271;
public class name_304 implements name_233 public class name_304 implements IGenericRound
{ {
private static const COLLISION_MASK:int = name_257.STATIC | name_257.WEAPON; private static const COLLISION_MASK:int = name_257.STATIC | name_257.WEAPON;
@@ -24,17 +24,17 @@ package package_101
private static var rayHit:name_273 = new name_273(); private static var rayHit:name_273 = new name_273();
private static var hitInfo:name_553 = new name_553(); private static var hitInfo:WeaponHit = new WeaponHit();
private var impactForce:Number; private var impactForce:Number;
private var weakening:name_327; private var weakening:IWeaponDistanceWeakening;
private var effects:class_12; private var effects:class_12;
private var callback:name_552; private var callback:name_552;
public function name_304(impactForce:Number, weakening:name_327, effects:class_12) public function name_304(impactForce:Number, weakening:IWeaponDistanceWeakening, effects:class_12)
{ {
super(); super();
this.impactForce = impactForce; this.impactForce = impactForce;

View File

@@ -5,9 +5,9 @@ package package_118
import package_27.name_501; import package_27.name_501;
import package_46.name_194; import package_46.name_194;
import package_72.class_12; import package_72.class_12;
import package_74.name_233; import alternativa.tanks.game.weapons.IGenericRound;
import package_74.name_327; import alternativa.tanks.game.weapons.IWeaponDistanceWeakening;
import package_74.name_553; import alternativa.tanks.game.weapons.WeaponHit;
import package_86.name_257; import package_86.name_257;
import package_86.name_468; import package_86.name_468;
import package_86.name_540; import package_86.name_540;
@@ -15,7 +15,7 @@ package package_118
import package_90.name_273; import package_90.name_273;
import package_92.name_271; import package_92.name_271;
public class name_550 implements name_233 public class name_550 implements IGenericRound
{ {
private static const HIT_POINT_CORRECTION:Number = 1; private static const HIT_POINT_CORRECTION:Number = 1;
@@ -23,17 +23,17 @@ package package_118
private static var force:name_194 = new name_194(); private static var force:name_194 = new name_194();
private static var splashHits:Vector.<name_553> = new Vector.<name_553>(); private static var splashHits:Vector.<WeaponHit> = new Vector.<WeaponHit>();
private static var rayHit:name_273 = new name_273(); private static var rayHit:name_273 = new name_273();
private static var filter:name_540 = new name_540(); private static var filter:name_540 = new name_540();
private static var hitInfo:name_553 = new name_553(); private static var hitInfo:WeaponHit = new WeaponHit();
private var directImpactForce:Number; private var directImpactForce:Number;
private var weakening:name_327; private var weakening:IWeaponDistanceWeakening;
private var splashDamage:class_37; private var splashDamage:class_37;
@@ -45,7 +45,7 @@ package package_118
private var callback:name_552; private var callback:name_552;
public function name_550(directImpactForce:Number, weakening:name_327, splashDamage:class_37, effects:class_12, collisionDetector:name_468, splashTargetFilter:class_38) public function name_550(directImpactForce:Number, weakening:IWeaponDistanceWeakening, splashDamage:class_37, effects:class_12, collisionDetector:name_468, splashTargetFilter:class_38)
{ {
super(); super();
this.directImpactForce = directImpactForce; this.directImpactForce = directImpactForce;
@@ -114,12 +114,12 @@ package package_118
this.effects.createEffects(hitPosition,weakeningCoefficient,this.splashDamage.radius); this.effects.createEffects(hitPosition,weakeningCoefficient,this.splashDamage.radius);
} }
private function method_760(hitPosition:name_194, primaryTarget:name_271, impactForce:Number, splashHits:Vector.<name_553>) : void private function method_760(hitPosition:name_194, primaryTarget:name_271, impactForce:Number, splashHits:Vector.<WeaponHit>) : void
{ {
var bodyDistance:name_654 = null; var bodyDistance:name_654 = null;
var targetBody:name_271 = null; var targetBody:name_271 = null;
var splashImpactForce:Number = NaN; var splashImpactForce:Number = NaN;
var weaponHit:name_553 = null; var weaponHit:WeaponHit = null;
this.splashTargetFilter.method_759(primaryTarget); this.splashTargetFilter.method_759(primaryTarget);
var objectsInRadius:Vector.<name_654> = this.collisionDetector.method_651(hitPosition,this.splashDamage.radius,this.splashTargetFilter); var objectsInRadius:Vector.<name_654> = this.collisionDetector.method_651(hitPosition,this.splashDamage.radius,this.splashTargetFilter);
this.splashTargetFilter.method_759(null); this.splashTargetFilter.method_759(null);
@@ -133,7 +133,7 @@ package package_118
targetBody.name_585(force); targetBody.name_585(force);
if(splashHits != null) if(splashHits != null)
{ {
weaponHit = new name_553(); weaponHit = new WeaponHit();
weaponHit.distance = bodyDistance.distance; weaponHit.distance = bodyDistance.distance;
weaponHit.body = targetBody; weaponHit.body = targetBody;
splashHits.push(weaponHit); splashHits.push(weaponHit);

View File

@@ -1,10 +1,10 @@
package package_119 package package_119
{ {
import package_74.name_553; import alternativa.tanks.game.weapons.WeaponHit;
public interface name_552 public interface name_552
{ {
function name_555(param1:int, param2:name_553, param3:Vector.<name_553>) : void; function name_555(param1:int, param2:WeaponHit, param3:Vector.<WeaponHit>) : void;
} }
} }

View File

@@ -7,7 +7,7 @@ package package_71
import alternativa.tanks.game.subsystems.inputsystem.KeyboardEventType; import alternativa.tanks.game.subsystems.inputsystem.KeyboardEventType;
import alternativa.tanks.game.subsystems.inputsystem.IInput; import alternativa.tanks.game.subsystems.inputsystem.IInput;
import package_42.name_477; import package_42.name_477;
import package_74.class_24; import alternativa.tanks.game.weapons.IBasicWeapon;
public class name_315 extends EntityComponent implements name_477 public class name_315 extends EntityComponent implements name_477
{ {
@@ -17,7 +17,7 @@ package package_71
private var name_308:Boolean; private var name_308:Boolean;
private var var_442:class_24; private var var_442:IBasicWeapon;
private var var_508:Boolean; private var var_508:Boolean;
@@ -30,7 +30,7 @@ package package_71
override public function initComponent() : void override public function initComponent() : void
{ {
this.var_442 = class_24(entity.getComponentStrict(class_24)); this.var_442 = IBasicWeapon(entity.getComponentStrict(IBasicWeapon));
entity.addEventHandler(name_252.SET_ACTIVATING_STATE,this.method_408); entity.addEventHandler(name_252.SET_ACTIVATING_STATE,this.method_408);
entity.addEventHandler(name_252.SET_DEAD_STATE,this.method_408); entity.addEventHandler(name_252.SET_DEAD_STATE,this.method_408);
entity.addEventHandler(name_252.SET_RESPAWN_STATE,this.method_408); entity.addEventHandler(name_252.SET_RESPAWN_STATE,this.method_408);

View File

@@ -1,8 +0,0 @@
package package_74
{
public interface class_14
{
function getRound() : name_233;
}
}

View File

@@ -1,8 +0,0 @@
package package_74
{
public interface class_23
{
function getRound(param1:name_496, param2:Number) : name_233;
}
}

View File

@@ -1,8 +0,0 @@
package package_74
{
public interface class_25
{
function method_396() : Number;
}
}

View File

@@ -1,13 +0,0 @@
package package_74
{
public class name_307
{
public static const BASE_FORCE:Number = 5000000;
public function name_307()
{
super();
}
}
}

View File

@@ -1,15 +0,0 @@
package package_74
{
public class name_496
{
public static const NORMAL_SHOT:name_496 = new name_496();
public static const CLOSE_SHOT:name_496 = new name_496();
public function name_496()
{
super();
}
}
}

View File

@@ -1,8 +0,0 @@
package package_74
{
public interface name_523
{
function name_526() : void;
}
}

View File

@@ -1,10 +0,0 @@
package package_74
{
import package_46.name_194;
public interface name_621
{
function name_623(param1:int, param2:name_496, param3:name_194, param4:int) : void;
}
}

View File

@@ -2,14 +2,14 @@ package package_79
{ {
import package_46.Matrix3; import package_46.Matrix3;
import package_46.name_194; import package_46.name_194;
import package_74.name_524; import alternativa.tanks.game.weapons.IGenericTargetingSystem;
import package_76.name_256; import package_76.name_256;
import package_86.name_257; import package_86.name_257;
import package_86.name_540; import package_86.name_540;
import package_90.name_273; import package_90.name_273;
import package_92.name_271; import package_92.name_271;
public class name_261 implements name_524 public class name_261 implements IGenericTargetingSystem
{ {
private static var collisionMask:int = name_257.STATIC | name_257.WEAPON; private static var collisionMask:int = name_257.STATIC | name_257.WEAPON;

View File

@@ -5,13 +5,13 @@ package package_79
import package_120.name_606; import package_120.name_606;
import package_46.Matrix3; import package_46.Matrix3;
import package_46.name_194; import package_46.name_194;
import package_74.name_524; import alternativa.tanks.game.weapons.IGenericTargetingSystem;
import package_76.name_256; import package_76.name_256;
import package_86.name_257; import package_86.name_257;
import package_90.name_273; import package_90.name_273;
import package_92.name_271; import package_92.name_271;
public class name_291 implements name_524 public class name_291 implements IGenericTargetingSystem
{ {
private const COLLISION_MASK:int = name_257.WEAPON | name_257.STATIC; private const COLLISION_MASK:int = name_257.WEAPON | name_257.STATIC;

View File

@@ -1,9 +1,9 @@
package package_80 package package_80
{ {
import flash.media.Sound; import flash.media.Sound;
import package_74.name_523; import alternativa.tanks.game.weapons.IInstantShotWeaponCallback;
public class name_274 implements name_523 public class name_274 implements IInstantShotWeaponCallback
{ {
private var shotSound:Sound; private var shotSound:Sound;

View File

@@ -4,12 +4,12 @@ package package_83
import package_118.name_550; import package_118.name_550;
import package_119.name_552; import package_119.name_552;
import package_4.class_4; import package_4.class_4;
import package_74.class_14; import alternativa.tanks.game.weapons.IGenericAmmunition;
import package_74.name_233; import alternativa.tanks.game.weapons.IGenericRound;
import package_86.name_468; import package_86.name_468;
import package_87.name_267; import package_87.name_267;
public class name_269 implements class_14 public class name_269 implements IGenericAmmunition
{ {
private var var_468:name_550; private var var_468:name_550;
@@ -25,7 +25,7 @@ package package_83
this.var_468.method_383(callback); this.var_468.method_383(callback);
} }
public function getRound() : name_233 public function getRound() : IGenericRound
{ {
return this.var_468; return this.var_468;
} }

View File

@@ -1,8 +1,8 @@
package package_87 package package_87
{ {
import package_74.name_327; import alternativa.tanks.game.weapons.IWeaponDistanceWeakening;
public class name_267 implements name_327 public class name_267 implements IWeaponDistanceWeakening
{ {
private var maximumDamageRadius:Number; private var maximumDamageRadius:Number;

View File

@@ -2,12 +2,12 @@ package package_91
{ {
import alternativa.tanks.game.EntityComponent; import alternativa.tanks.game.EntityComponent;
import alternativa.tanks.game.Entity; import alternativa.tanks.game.Entity;
import package_74.class_23; import alternativa.tanks.game.weapons.IEnergyAmmunition;
import package_74.name_233; import alternativa.tanks.game.weapons.IGenericRound;
import package_74.name_327; import alternativa.tanks.game.weapons.IWeaponDistanceWeakening;
import package_74.name_496; import alternativa.tanks.game.weapons.EnergyShotType;
public class name_296 extends EntityComponent implements class_23 public class name_296 extends EntityComponent implements IEnergyAmmunition
{ {
private static var poolSize:int; private static var poolSize:int;
@@ -19,7 +19,7 @@ package package_91
private var effectsFactory:name_349; private var effectsFactory:name_349;
public function name_296(radius:Number, roundSpeed:Number, maxRicochets:uint, impactForce:Number, weakening:name_327, effectsFactory:name_349, callback:name_499) public function name_296(radius:Number, roundSpeed:Number, maxRicochets:uint, impactForce:Number, weakening:IWeaponDistanceWeakening, effectsFactory:name_349, callback:name_499)
{ {
super(); super();
this.roundData = new name_498(radius,roundSpeed,maxRicochets,impactForce,weakening); this.roundData = new name_498(radius,roundSpeed,maxRicochets,impactForce,weakening);
@@ -33,7 +33,7 @@ package package_91
pool[_loc2_] = entity; pool[_loc2_] = entity;
} }
public function getRound(shotType:name_496, maxRange:Number) : name_233 public function getRound(shotType:EnergyShotType, maxRange:Number) : IGenericRound
{ {
var roundEntity:Entity = null; var roundEntity:Entity = null;
if(poolSize == 0) if(poolSize == 0)

View File

@@ -8,8 +8,8 @@ package package_91
import package_45.name_182; import package_45.name_182;
import package_46.Matrix3; import package_46.Matrix3;
import package_46.name_194; import package_46.name_194;
import package_74.name_233; import alternativa.tanks.game.weapons.IGenericRound;
import package_74.name_496; import alternativa.tanks.game.weapons.EnergyShotType;
import package_76.name_235; import package_76.name_235;
import package_76.name_256; import package_76.name_256;
import package_76.name_631; import package_76.name_631;
@@ -17,7 +17,7 @@ package package_91
import package_90.name_273; import package_90.name_273;
import package_92.name_271; import package_92.name_271;
public class name_497 extends EntityComponent implements name_465, name_233, name_631 public class name_497 extends EntityComponent implements name_465, IGenericRound, name_631
{ {
private static const NUM_PERIPHERAL_RAYS:int = 8; private static const NUM_PERIPHERAL_RAYS:int = 8;
@@ -55,7 +55,7 @@ package package_91
private var effect:name_522; private var effect:name_522;
private var shotType:name_496; private var shotType:EnergyShotType;
private var ricochetCount:int; private var ricochetCount:int;
@@ -73,7 +73,7 @@ package package_91
} }
} }
public function init(shotType:name_496, roundData:name_498, maxRange:Number, effectsFactory:name_349, callback:name_499) : void public function init(shotType:EnergyShotType, roundData:name_498, maxRange:Number, effectsFactory:name_349, callback:name_499) : void
{ {
this.shotType = shotType; this.shotType = shotType;
this.roundData = roundData; this.roundData = roundData;
@@ -93,7 +93,7 @@ package package_91
var physicsSystem:name_178 = gameKernel.method_112(); var physicsSystem:name_178 = gameKernel.method_112();
this.collisionDetector = physicsSystem.name_246().collisionDetector; this.collisionDetector = physicsSystem.name_246().collisionDetector;
physicsSystem.addControllerBefore(this); physicsSystem.addControllerBefore(this);
if(this.shotType == name_496.NORMAL_SHOT) if(this.shotType == EnergyShotType.NORMAL_SHOT)
{ {
physicsSystem.method_330(this); physicsSystem.method_330(this);
this.effect = this.effectsFactory.method_414(); this.effect = this.effectsFactory.method_414();
@@ -232,10 +232,10 @@ package package_91
this.var_621 = 0; this.var_621 = 0;
switch(this.shotType) switch(this.shotType)
{ {
case name_496.CLOSE_SHOT: case EnergyShotType.CLOSE_SHOT:
this.var_620.copy(barrelOrigin); this.var_620.copy(barrelOrigin);
break; break;
case name_496.NORMAL_SHOT: case EnergyShotType.NORMAL_SHOT:
this.var_620.copy(muzzlePosition); this.var_620.copy(muzzlePosition);
} }
this.method_705(this.var_620,shotDirection,this.roundData.radius); this.method_705(this.var_620,shotDirection,this.roundData.radius);

View File

@@ -1,6 +1,6 @@
package package_91 package package_91
{ {
import package_74.name_327; import alternativa.tanks.game.weapons.IWeaponDistanceWeakening;
public class name_498 public class name_498
{ {
@@ -12,9 +12,9 @@ package package_91
public var impactForce:Number; public var impactForce:Number;
public var weakening:name_327; public var weakening:IWeaponDistanceWeakening;
public function name_498(radius:Number, speed:Number, maxRicochets:uint, impactForce:Number, weakening:name_327) public function name_498(radius:Number, speed:Number, maxRicochets:uint, impactForce:Number, weakening:IWeaponDistanceWeakening)
{ {
super(); super();
this.radius = radius; this.radius = radius;

View File

@@ -4,12 +4,12 @@ package package_95
import alternativa.tanks.game.EntityComponent; import alternativa.tanks.game.EntityComponent;
import alternativa.tanks.game.GameKernel; import alternativa.tanks.game.GameKernel;
import package_46.name_194; import package_46.name_194;
import package_74.name_508; import alternativa.tanks.game.weapons.IContinuousActionWeapon;
import package_75.class_15; import package_75.class_15;
import package_75.name_236; import package_75.name_236;
import package_79.name_282; import package_79.name_282;
public class name_281 extends EntityComponent implements name_508 public class name_281 extends EntityComponent implements IContinuousActionWeapon
{ {
private static var barrelOrigin:name_194 = new name_194(); private static var barrelOrigin:name_194 = new name_194();