/* public static void Read(ref Weapon weapon, ref BinaryReader reader) * { * PhysicalObjectHandler.Read(weapon, ref reader); * weapon.changeDirCounter = reader.ReadInt32(); * weapon.closestCritDist = reader.ReadSingle(); * weapon.exitThrownModeSpeed = reader.ReadSingle(); * weapon.firstFrameTraceFromPos = Vector2NHandler.Read(ref reader); * //Weapon.Mode lastMode = (Weapon.Mode)reader.ReadInt32(); * Weapon.Mode mode = (Weapon.Mode)reader.ReadInt32(); * if (mode != weapon.mode) * { * //weapon.ChangeOverlap(true); * weapon.ChangeMode(mode); * } * if (mode == Weapon.Mode.Thrown && weapon.grabbedBy.Count > 0) * { * weapon.AllGraspsLetGoOfThisObject(false); * } * //weapon.lastMode = lastMode; * weapon.mode = mode; * weapon.rotation = Vector2Handler.Read(ref reader); * weapon.rotationSpeed = reader.ReadSingle(); * weapon.throwModeFrames = reader.ReadInt32(); * weapon.thrownBy = DistHandler.ReadCreature(ref weapon.thrownBy, ref reader, weapon.room); * weapon.thrownClosestToCreature = DistHandler.ReadCreature(ref weapon.thrownClosestToCreature, ref reader, weapon.room); * weapon.thrownPos = Vector2Handler.Read(ref reader); * } */ public static void Read(Weapon weapon, ref BinaryReader reader) { PhysicalObjectHandler.Read(weapon, ref reader); weapon.changeDirCounter = reader.ReadInt32(); weapon.closestCritDist = reader.ReadSingle(); weapon.exitThrownModeSpeed = reader.ReadSingle(); weapon.firstFrameTraceFromPos = Vector2NHandler.Read(ref reader); //Weapon.Mode lastMode = (Weapon.Mode)reader.ReadInt32(); Weapon.Mode mode = (Weapon.Mode)reader.ReadInt32(); if (mode != weapon.mode) { //weapon.ChangeOverlap(true); weapon.ChangeMode(mode); } if (mode == Weapon.Mode.Thrown && weapon.grabbedBy.Count > 0) { weapon.AllGraspsLetGoOfThisObject(false); } //weapon.lastMode = lastMode; weapon.mode = mode; weapon.rotation = Vector2Handler.Read(ref reader); weapon.rotationSpeed = reader.ReadSingle(); weapon.throwModeFrames = reader.ReadInt32(); weapon.thrownBy = DistHandler.ReadCreature(ref weapon.thrownBy, ref reader, weapon.room); weapon.thrownClosestToCreature = DistHandler.ReadCreature(ref weapon.thrownClosestToCreature, ref reader, weapon.room); weapon.thrownPos = Vector2Handler.Read(ref reader); // return weapon; }
public static bool WasShootButtonPressed(Weapon.Mode mode) { switch (mode) { case Weapon.Mode.Auto: if (_mouseState.LeftButton == ButtonState.Pressed || _gamePadState.IsButtonDown(Controls.ButtonShoot)) { return(true); } else { return(false); } case Weapon.Mode.Single: if (WasMouseLeftButtonPressed() || WasButtonPressed(Controls.ButtonShoot)) { return(true); } else { return(false); } default: return(false); } }
public static Weapon CreatePistol(string name) { List <Texture2D> frames = new List <Texture2D>(); frames.Add(Art.PistolShoot1); frames.Add(Art.PistolShoot2); frames.Add(Art.PistolShoot3); int damage = 3; int cooldown = 20; float bulletSpeed = 20f; float recoil = 7f; Weapon.Mode mode = Weapon.Mode.Single; return(new Weapon(name, cooldown, damage, bulletSpeed, recoil, mode, frames, 3, Animation.Mode.OnDemand)); }
private static void Spear_ChangeMode(On.Spear.orig_ChangeMode orig, Spear self, Weapon.Mode newMode) { if (self.mode == Weapon.Mode.StuckInWall && newMode != Weapon.Mode.StuckInWall) { if (self.abstractSpear.stuckInWallCycles >= 0) { for (int i = -1; i < 3; i++) { self.room.GetTile(self.stuckInWall.Value + new Vector2(20f * (float)i, 0f)).horizontalBeam = false; } } else { for (int j = -1; j < 3; j++) { self.room.GetTile(self.stuckInWall.Value + new Vector2(0f, 20f * (float)j)).verticalBeam = false; } } self.stuckInWall = null; self.abstractSpear.stuckInWallCycles = 0; self.addPoles = false; } orig.Invoke(self, newMode); }