示例#1
0
        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;
            }
        }
示例#2
0
 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;
 }
示例#3
0
 /// <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;
 }