Beispiel #1
0
        public static bool VehicleDamaged(InteractableVehicle vehicle, ref ushort amount, ref bool repairable)
        {
            // TODO: causes?
            VehicleTag vehicleTag = new VehicleTag(vehicle);

            if (!repairable && (vehicle.isDead || amount >= vehicle.health))
            {
                VehicleDestroyedEventArgs explodeevt = new VehicleDestroyedEventArgs();
                explodeevt.Vehicle    = vehicleTag;
                explodeevt.Amount     = new NumberTag(amount);
                explodeevt.Repairable = new BooleanTag(repairable);
                UnturnedFreneticEvents.OnVehicleDestroyed.Fire(explodeevt);
                amount     = (ushort)explodeevt.Amount.Internal;
                repairable = explodeevt.Repairable.Internal;
                return(explodeevt.Cancelled || EntityDestroyed(vehicleTag, ref amount));
            }
            VehicleDamagedEventArgs evt = new VehicleDamagedEventArgs();

            evt.Vehicle    = vehicleTag;
            evt.Amount     = new NumberTag(amount);
            evt.Repairable = new BooleanTag(repairable);
            UnturnedFreneticEvents.OnVehicleDamaged.Fire(evt);
            amount = (ushort)evt.Amount.Internal;
            return(evt.Cancelled || EntityDamaged(vehicleTag, ref amount));
        }
        public override TemplateObject Handle(TagData data)
        {
            string modif = data.GetModifier(0);

            if (modif.StartsWith("e:"))
            {
                modif = modif.Substring("e:".Length);
            }
            VehicleTag vtag = VehicleTag.For(Utilities.StringToInt(modif));

            if (vtag == null)
            {
                return(new TextTag("&{NULL}").Handle(data.Shrink()));
            }
            return(vtag.Handle(data.Shrink()));
        }
Beispiel #3
0
 private static void PopulateVehicle(Vehicle item, H2vMap map, TransformComponent xform, VehicleTag vehi)
 {
     item.FriendlyName = vehi.Name;
     item.SetComponents(xform,
                        PhysicsComponentFactory.CreateDynamicRigidBody(item, xform, map, vehi.Hlmt),
                        new RenderModelComponent(item, new Model <BitmapTag>
     {
         Note   = $"[{vehi.Id}] {vehi.Name}",
         Flags  = ModelFlags.Diffuse | ModelFlags.CastsShadows | ModelFlags.ReceivesShadows,
         Meshes = MeshFactory.GetRenderModel(map, vehi.Hlmt)
     }));
 }