public Missile(GameWorld gameWorld, Unit attacker, Unit target, MissileType missileType, Vector3 position) { this.gameWorld = gameWorld; this.attacker = attacker; this.target = target; this.missileType = missileType; timeRemain = missileType.lifeTime; base.Position = position; base.Mass = missileType.mass; base.Model = new AODModel(gameWorld, gameWorld.game.Content.Load <AODModelType>(missileType.modelName), position, ModelRotation, Scale);//需改 base.Scale = missileType.scale; base.FrictionForce = missileType.frictionForce; base.modelRotation = missileType.modelRotation; base.UnitState = UnitState.alive; if (target.Position != attacker.Position) { this.Velocity = attacker.Velocity + Vector3.Normalize(this.target.Position - this.attacker.Position) * this.missileType.basicSpeed; } else { this.Velocity = attacker.Velocity + attacker.Face * this.missileType.basicSpeed; } }
public MissileWeapon(GameWorld gameWorld, MissileWeaponType missileWeaponType) { this.missileWeaponType = missileWeaponType.Clone(); this.missileType = gameWorld.game.Content.Load <MissileType>(missileWeaponType.missileTypeName); Num = missileWeaponType.maxNum; this.gameWorld = gameWorld; position[0] = missileWeaponType.positionIndex1; position[1] = missileWeaponType.positionIndex2; }
/// <summary> /// 一个导弹造成的伤害 /// </summary> /// <param name="missile"></param> public Damage(MissileType missileType, Unit attacker) { this.BasicDamage = missileType.basicDamage; this.attacker = attacker; this.CrossValue = missileType.crossValue; this.FoldArmor = missileType.foldArmor; this.FoldShield = missileType.foldShield; this.IsShieldUseless = missileType.isShieldUseless; this.Fold = 1.0f; }