Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,085
|
Код:
protected void moveAileron(float f)
{
float f1 = -(f * 30F);
hierMesh().chunkSetAngles("AroneL_D0", 0.0F, f1, 0.0F);
f1 = -(f * 30F);
hierMesh().chunkSetAngles("AroneR_D0", 0.0F, f1, 0.0F);
}
protected void moveRudder(float f)
{
hierMesh().chunkSetAngles("Rudder1_D0", 0.0F, -31F * f, 0.0F);
}
protected void moveElevator(float f)
{
if(f < 0.0F)
{
hierMesh().chunkSetAngles("VatorL_D0", 0.0F, -20F * f, 0.0F);
hierMesh().chunkSetAngles("VatorR_D0", 0.0F, -20F * f, 0.0F);
} else
{
hierMesh().chunkSetAngles("VatorL_D0", 0.0F, -30F * f, 0.0F);
hierMesh().chunkSetAngles("VatorR_D0", 0.0F, -30F * f, 0.0F);
}
}
protected void hitBone(String s, Shot shot, Point3d point3d)
{
if(s.startsWith("xx"))
{
if(s.startsWith("xxarmor"))
{
if(s.startsWith("xxarmorp"))
{
int i = s.charAt(8) - 48;
switch(i)
{
case 1: // '\001'
getEnergyPastArmor(22.760000228881836D / (Math.abs(Aircraft.v1.x) + 9.9999997473787516E-005D), shot);
if(shot.power <= 0.0F)
doRicochetBack(shot);
break;
case 3: // '\003'
getEnergyPastArmor(9.366F, shot);
break;
case 5: // '\005'
getEnergyPastArmor(12.699999809265137D / (Math.abs(Aircraft.v1.x) + 9.9999997473787516E-005D), shot);
break;
}
return;
}
if(s.startsWith("xxcontrols"))
{
int j = s.charAt(10) - 48;
switch(j)
{
case 1: // '\001'
case 2: // '\002'
if(getEnergyPastArmor(0.28F / ((float)Math.sqrt(Aircraft.v1.y * Aircraft.v1.y + Aircraft.v1.z * Aircraft.v1.z) + 0.0001F), shot) > 0.0F)
{
if(World.Rnd().nextFloat() < 0.05F)
FM.AS.setControlsDamage(shot.initiator, 1);
if(World.Rnd().nextFloat() < 0.75F)
FM.AS.setControlsDamage(shot.initiator, 2);
}
break;
case 3: // '\003'
if(getEnergyPastArmor(3.6F, shot) > 0.0F)
{
FM.AS.setControlsDamage(shot.initiator, 2);
FM.AS.setControlsDamage(shot.initiator, 1);
FM.AS.setControlsDamage(shot.initiator, 0);
}
break;
case 4: // '\004'
if(getEnergyPastArmor(0.22F, shot) > 0.0F)
{
FM.AS.setCockpitState(shot.initiator, FM.AS.astateCockpitState | 8);
FM.AS.setEngineSpecificDamage(shot.initiator, 0, 1);
FM.AS.setEngineSpecificDamage(shot.initiator, 0, 6);
}
break;
case 5: // '\005'
case 7: // '\007'
if(getEnergyPastArmor(0.125F, shot) > 0.0F)
FM.AS.setControlsDamage(shot.initiator, 0);
break;
case 6: // '\006'
case 8: // '\b'
if(getEnergyPastArmor(4D / (Math.abs(Aircraft.v1.x) + 9.9999997473787516E-005D), shot) > 0.0F && World.Rnd().nextFloat() < 0.5F)
FM.AS.setControlsDamage(shot.initiator, 0);
break;
}
return;
}
if(s.startsWith("xxeng"))
{
if(s.endsWith("case") || s.endsWith("gear"))
{
if((s.endsWith("prop") || s.endsWith("pipe")) && getEnergyPastArmor(0.2F, shot) > 0.0F && World.Rnd().nextFloat() < 0.5F)
FM.EI.engines[0].setKillPropAngleDevice(shot.initiator);
if(getEnergyPastArmor(0.1F, shot) > 0.0F)
{
if(World.Rnd().nextFloat() < shot.power / 140000F)
{
FM.AS.setEngineStuck(shot.initiator, 0);
debugprintln(this, "*** Engine Crank Case Hit - Engine Stucks..");
}
if(World.Rnd().nextFloat() < shot.power / 85000F)
{
FM.AS.hitEngine(shot.initiator, 0, 2);
debugprintln(this, "*** Engine Crank Case Hit - Engine Damaged..");
}
} else
if(World.Rnd().nextFloat() < 0.01F)
{
FM.EI.engines[0].setCyliderKnockOut(shot.initiator, 1);
} else
{
FM.EI.engines[0].setReadyness(shot.initiator, FM.EI.engines[0].getReadyness() - 0.002F);
debugprintln(this, "*** Engine Crank Case Hit - Readyness Reduced to " + FM.EI.engines[0].getReadyness() + "..");
}
getEnergyPastArmor(14F, shot);
}
if(s.endsWith("cyl1") || s.endsWith("cyl2"))
if(getEnergyPastArmor(5.85F, shot) > 0.0F && World.Rnd().nextFloat() < FM.EI.engines[0].getCylindersRatio() * 0.75F)
{
FM.EI.engines[0].setCyliderKnockOut(shot.initiator, World.Rnd().nextInt(1, (int)(shot.power / 19000F)));
debugprintln(this, "*** Engine Cylinders Hit, " + FM.EI.engines[0].getCylindersOperable() + "/" + FM.EI.engines[0].getCylinders() + " Left..");
if(World.Rnd().nextFloat() < shot.power / 48000F)
{
FM.AS.hitEngine(shot.initiator, 0, 2);
debugprintln(this, "*** Engine Cylinders Hit - Engine Fires..");
}
}
getEnergyPastArmor(25F, shot);
} else
if(s.endsWith("supc") && getEnergyPastArmor(0.1F, shot) > 0.0F && World.Rnd().nextFloat() < 0.89F)
{
((FlightModelMain) (super.FM)).EI.engines[0].setKillCompressor(shot.initiator);
Aircraft.debugprintln(this, "*** Engine Supercharger Out..");
}
if(s.startsWith("xxeng1oil"))
{
if(getEnergyPastArmor(0.25F, shot) > 0.0F && World.Rnd().nextFloat() < 0.125F)
{
((FlightModelMain) (super.FM)).AS.hitOil(shot.initiator, 0);
getEnergyPastArmor(0.22F, shot);
debuggunnery("Engine Module: Oil Tank Pierced..");
}
return;
}
if(s.startsWith("xxtank"))
{
int k = s.charAt(6) - 49;
if(getEnergyPastArmor(0.12F, shot) > 0.0F && World.Rnd().nextFloat() < 0.45F)
{
if(FM.AS.astateTankStates[k] == 0)
{
debuggunnery("Fuel Tank (" + k + "): Pierced..");
FM.AS.hitTank(shot.initiator, k, 1);
FM.AS.doSetTankState(shot.initiator, k, 1);
}
if(FM.AS.astateTankStates[k] == 1)
{
debuggunnery("Fuel Tank (" + k + "): Pierced..");
FM.AS.hitTank(shot.initiator, k, 1);
FM.AS.doSetTankState(shot.initiator, k, 2);
}
if(World.Rnd().nextFloat() < 0.01F || shot.powerType == 3 && World.Rnd().nextFloat() < 0.4F)
{
FM.AS.hitTank(shot.initiator, k, 4);
debuggunnery("Fuel Tank (" + k + "): Hit..");
}
}
return;
}
|