public override void on_message(string msg, dynamic data) { if (msg.Equals("fireInput")) { if (((Playing_State)state).game_conf.soccer_mode) { return; } Entity origin = data.Origin; Weapon weapon = data.Weapon; Ship_Info ship = data.Ship; Bullet_Factory.fire_weapon(origin, weapon); if (!ship.has_powerup(typeof(Free_Fire_Powerup))) { ship.energy_value -= weapon.energy_cost; } var input = origin.get_component <Input>(); if (input != null) { input.left_vib += weapon.vib_left; input.right_vib += weapon.vib_right; } Fab5_Game.inst().message("weapon_fired", new { name = weapon.sound, entity1 = origin, varying_pitch = true }); weapon.timeSinceLastShot = 0f; if (weapon.GetType() == typeof(Secondary_Weapon) && ship.has_powerup(typeof(Fast_Bombs_Powerup))) { weapon.timeSinceLastShot = weapon.fire_rate * 0.8f; } } }
public override void begin(Entity holder) { var weapon = holder.get_component <Primary_Weapon>(); holder_id = holder.id; Bullet_Factory.fire_burst_powerup(holder, weapon); Fab5_Game.inst().message("weapon_fired", new { name = weapon.sound, entity1 = holder, varying_pitch = true }); }