Example #1
0
        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;
 }
Example #3
0
        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);
        }
Example #5
0
        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);
            }
        }
Example #6
0
        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);
        }
Example #8
0
        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));
            }
        }
Example #9
0
        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);
            }
        }
Example #10
0
 public BoffinBot(BotArgs args) : base(args)
 {
     m_currentPowerup = GetWeapons(Type).First().PrimaryPowerup;
 }
 public HoveringProjectile(IProjectile projectile, RangedWeaponPowerup powerup) : base(projectile, powerup)
 {
     CurrentState = State.Normal;
 }
Example #12
0
 public override void Remove()
 {
     base.Remove();
     Powerup = RangedWeaponPowerup.None;
 }
Example #13
0
 public void Add(WeaponItem name, RangedWeaponPowerup powerup)
 {
     Name    = name;
     Type    = Mapper.GetWeaponItemType(name);
     Powerup = powerup;
 }
Example #14
0
 public RangeWpn(IPlayer owner, WeaponItem name, RangedWeaponPowerup powerup)
     : base(owner, name)
 {
     Powerup = powerup;
 }
Example #15
0
 public ThrowWpn()
 {
     Name    = WeaponItem.NONE;
     Powerup = RangedWeaponPowerup.None;
 }