public GravityGun(IPlayer owner, WeaponItem name, RangedWeaponPowerup powerup) : base(owner, name, powerup) { if (powerup == RangedWeaponPowerup.GravityDE) { IsSupercharged = true; } else if (powerup == RangedWeaponPowerup.Gravity) { IsSupercharged = false; } else { throw new Exception("Unknown powerup for gravity gun: " + powerup); } m_invisibleMagnet = Game.CreateObject("InvisibleBlockSmall"); m_invisibleMagnet.SetBodyType(BodyType.Static); m_invisibleMagnet.SetCollisionFilter(Constants.NoCollision); m_invisibleMagnet.SetWorldPosition(FarAwayPosition); m_magnetJoint = (IObjectTargetObjectJoint)Game.CreateObject("TargetObjectJoint"); m_magnetJoint.SetTargetObject(m_invisibleMagnet); m_pullJoint = CreatePullJointObject(); }
public ProjectileBase(IProjectile projectile, RangedWeaponPowerup powerup) { Powerup = powerup; UpdateDelay = 0f; // in case the original player is not available when the projectile hits Team = Game.GetPlayer(projectile.InitialOwnerPlayerID).GetTeam(); InitialOwnerPlayerID = projectile.InitialOwnerPlayerID; }
public Projectile(IProjectile projectile, RangedWeaponPowerup powerup) : base(projectile, powerup) { Instance = projectile; if (!OnProjectileCreated()) { Powerup = RangedWeaponPowerup.None; } IsCustomProjectile = false; }
internal static IObjectWeaponItem CreateWeapon(string objectID, RangedWeaponPowerup powerup) { var weaponObject = (IObjectWeaponItem)Game.CreateObject(objectID); var newWeaponInfo = new WeaponObjectInfo() { Weapon = weaponObject, RangedPowerup = powerup, }; m_weapons.Add(weaponObject.UniqueID, new Weapon(newWeaponInfo)); return(weaponObject); }
public static ProjectileBase Create(IProjectile projectile, RangedWeaponPowerup powerup) { switch (powerup) { case RangedWeaponPowerup.Blackhole: return(new BlackholeProjectile(projectile)); case RangedWeaponPowerup.Blast: return(new BlastBullet(projectile)); case RangedWeaponPowerup.DoubleTrouble: return(new DoubleTroubleProjectile(projectile)); case RangedWeaponPowerup.Fatigue: return(new FatigueProjectile(projectile)); case RangedWeaponPowerup.Helium: return(new HeliumProjectile(projectile)); case RangedWeaponPowerup.Homing: return(new HomingProjectile(projectile)); case RangedWeaponPowerup.Lightning: return(new LightningProjectile(projectile)); case RangedWeaponPowerup.Present: return(new PresentBullet(projectile)); case RangedWeaponPowerup.Smoke: return(new SmokeProjectile(projectile)); case RangedWeaponPowerup.Spinner: return(new SpinnerBullet(projectile)); case RangedWeaponPowerup.StickyBomb: return(new StickyBombProjectile(projectile)); case RangedWeaponPowerup.Stun: return(new StunBullet(projectile)); case RangedWeaponPowerup.SuicideDove: return(new SuicideDoveProjectile(projectile)); case RangedWeaponPowerup.Tearing: return(new TearingBullet(projectile)); case RangedWeaponPowerup.Telsa: return(new TelsaProjectile(projectile)); default: return(null); } }
public CustomProjectile(IProjectile projectile, RangedWeaponPowerup powerup) : base(projectile, powerup) { Instance = OnProjectileCreated(projectile); if (Instance == null) { Powerup = RangedWeaponPowerup.None; } m_createPosition = Instance.GetWorldPosition(); TotalDistanceTraveled = 0f; IsCustomProjectile = true; }
internal static void SetPowerup(IPlayer player, WeaponItem weaponItem, RangedWeaponPowerup powerup) { if (!m_queuedPowerups.ContainsKey(player.UniqueID)) { m_queuedPowerups[player.UniqueID] = new List <WeaponInfo>(); } m_queuedPowerups[player.UniqueID].Add(new WeaponInfo { Weapon = weaponItem, RangedPowerup = powerup, }); player.GiveWeaponItem(weaponItem); }
public static RangeWpn Create(IPlayer owner, WeaponItem name, RangedWeaponPowerup powerup) { var type = Mapper.GetWeaponItemType(name); switch (powerup) { case RangedWeaponPowerup.Gauss: return(new GaussGun(owner, name)); case RangedWeaponPowerup.Gravity: case RangedWeaponPowerup.GravityDE: return(new GravityGun(owner, name, powerup)); default: return(new RangeWpn(owner, name, powerup)); } }
protected override void OnUpdate(float elapsed) { base.OnUpdate(elapsed); if (Player.GetHealth() <= 80 && m_currentPowerup != RangedWeaponPowerup.GravityDE) { Game.PlayEffect(EffectName.Electric, Position); Game.PlaySound("ElectricSparks", Position); Game.CreateDialogue("You underestimate the gravity of the situation", DialogueColor, Player, duration: 3500, showInChat: false); m_currentPowerup = RangedWeaponPowerup.GravityDE; ResetWeapon(); Player.SetStrengthBoostTime(1000 * 60 * 1); var mod = Player.GetModifiers(); mod.MeleeForceModifier = MeleeForce.Strong; SetModifiers(mod); } }
public BoffinBot(BotArgs args) : base(args) { m_currentPowerup = GetWeapons(Type).First().PrimaryPowerup; }
public HoveringProjectile(IProjectile projectile, RangedWeaponPowerup powerup) : base(projectile, powerup) { CurrentState = State.Normal; }
public override void Remove() { base.Remove(); Powerup = RangedWeaponPowerup.None; }
public void Add(WeaponItem name, RangedWeaponPowerup powerup) { Name = name; Type = Mapper.GetWeaponItemType(name); Powerup = powerup; }
public RangeWpn(IPlayer owner, WeaponItem name, RangedWeaponPowerup powerup) : base(owner, name) { Powerup = powerup; }
public ThrowWpn() { Name = WeaponItem.NONE; Powerup = RangedWeaponPowerup.None; }