mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-04 14:33:10 +00:00
Francisca buffs, fixes maneuvers. (#15052)
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
var/written_message
|
||||
var/wielded = FALSE
|
||||
var/caliber = SHIP_CALIBER_NONE
|
||||
var/burst = 0 //If set to a number, this many projectiles will spawn to the side of the main projectile.
|
||||
var/impact_type = SHIP_AMMO_IMPACT_HE //This decides what happens when the ammo hits. Is it a bunkerbuster? HE? AP?
|
||||
var/ammunition_status = SHIP_AMMO_STATUS_GOOD //Currently unused, but will be relevant for chemical ammo.
|
||||
var/ammunition_flags = SHIP_AMMO_FLAG_INFLAMMABLE|SHIP_AMMO_FLAG_VERY_HEAVY
|
||||
@@ -187,6 +188,8 @@
|
||||
icon_state = "small"
|
||||
range = 250
|
||||
anti_materiel_potential = 3
|
||||
impact_sounds = list(BULLET_IMPACT_MEAT = SOUNDS_BULLET_MEAT, BULLET_IMPACT_METAL = SOUNDS_BULLET_METAL)
|
||||
accuracy = 100
|
||||
var/obj/item/ship_ammunition/ammo
|
||||
var/primed = FALSE //If primed, we don't interact with map edges. Projectiles might spawn on a landmark at the edge of space, and we don't want them to get tp'd away.
|
||||
var/hit_target = FALSE //First target we hit. Used to report if a hit was successful.
|
||||
@@ -216,4 +219,14 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/projectile/ship_ammo/proc/on_translate(var/turf/entry_turf, var/target_turf) //This proc is called when the projectile enters a new ship's overmap zlevel.
|
||||
return
|
||||
if(ammo.burst)
|
||||
for(var/i = 1 to ammo.burst)
|
||||
var/turf/new_turf = get_random_turf_in_range(entry_turf, ammo.burst + rand(0, ammo.burst), 0, TRUE, FALSE)
|
||||
var/obj/item/projectile/ship_ammo/pellet = new type
|
||||
pellet.forceMove(new_turf)
|
||||
pellet.ammo = new ammo.type
|
||||
pellet.ammo.origin = ammo.origin
|
||||
pellet.ammo.impact_type = ammo.impact_type
|
||||
pellet.dir = dir
|
||||
var/turf/front_turf = get_step(pellet, pellet.dir)
|
||||
pellet.launch_projectile(front_turf)
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
impact_type = SHIP_AMMO_IMPACT_FMJ
|
||||
ammunition_flags = SHIP_AMMO_FLAG_INFLAMMABLE|SHIP_AMMO_FLAG_VERY_HEAVY|SHIP_AMMO_FLAG_INFLAMMABLE
|
||||
caliber = SHIP_CALIBER_40MM
|
||||
burst = 8
|
||||
cookoff_heavy = 0
|
||||
|
||||
/obj/item/ship_ammunition/francisca/ap
|
||||
name = "40mm AP ammunition box"
|
||||
@@ -35,7 +37,7 @@
|
||||
icon_state = "small"
|
||||
damage = 50
|
||||
armor_penetration = 50
|
||||
penetrating = 1
|
||||
penetrating = 2
|
||||
|
||||
/obj/item/projectile/ship_ammo/francisca/ap
|
||||
name = "40mm AP bullet"
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
caliber = SHIP_CALIBER_90MM
|
||||
ammunition_behaviour = SHIP_AMMO_BEHAVIOUR_DUMBFIRE
|
||||
projectile_type_override = /obj/item/projectile/ship_ammo/grauwolf
|
||||
burst = 4
|
||||
|
||||
/obj/item/ship_ammunition/grauwolf_bundle/ap
|
||||
name = "grauwolf armor-piercing flak bundle"
|
||||
@@ -46,14 +47,4 @@
|
||||
name = "armor-piercing flak"
|
||||
damage = 50
|
||||
armor_penetration = 50
|
||||
penetrating = 2
|
||||
|
||||
/obj/item/projectile/ship_ammo/grauwolf/on_translate(var/turf/entry_turf, var/turf/target_turf)
|
||||
for(var/i = 1 to 4)
|
||||
var/turf/new_turf = get_random_turf_in_range(entry_turf, 5, 5, TRUE, TRUE)
|
||||
var/obj/item/projectile/ship_ammo/grauwolf/burst = new(new_turf)
|
||||
burst.ammo = new ammo.type
|
||||
burst.ammo.impact_type = ammo.impact_type
|
||||
var/turf/front_turf = get_step(new_turf, dir)
|
||||
burst.dir = dir
|
||||
burst.launch_projectile(front_turf)
|
||||
penetrating = 2
|
||||
@@ -137,6 +137,7 @@
|
||||
armor_penetration = 1000
|
||||
penetrating = 100
|
||||
hitscan = TRUE
|
||||
impact_sounds = list(BULLET_IMPACT_MEAT = SOUNDS_LASER_MEAT, BULLET_IMPACT_METAL = SOUNDS_LASER_METAL)
|
||||
|
||||
muzzle_type = /obj/effect/projectile/muzzle/pulse
|
||||
tracer_type = /obj/effect/projectile/tracer/pulse
|
||||
|
||||
@@ -224,7 +224,7 @@
|
||||
var/ndir = text2num(href_list["roll"])
|
||||
if(ishuman(usr))
|
||||
var/mob/living/carbon/human/H = usr
|
||||
visible_message(SPAN_DANGER("[H] starts tilting the yoke all the way to the [ndir == WEST ? "right" : "left"]!"))
|
||||
visible_message(SPAN_DANGER("[H] starts tilting the yoke all the way to the [ndir == WEST ? "left" : "right"]!"))
|
||||
if(do_after(H, 1 SECOND))
|
||||
connected.combat_roll(ndir)
|
||||
|
||||
@@ -232,7 +232,7 @@
|
||||
var/ndir = text2num(href_list["turn"])
|
||||
if(ishuman(usr))
|
||||
var/mob/living/carbon/human/H = usr
|
||||
visible_message(SPAN_DANGER("[H] starts twisting the yoke all the way to the [ndir == WEST ? "right" : "left"]!"))
|
||||
visible_message(SPAN_DANGER("[H] starts twisting the yoke all the way to the [ndir == WEST ? "left" : "right"]!"))
|
||||
if(do_after(H, 1 SECOND))
|
||||
connected.combat_turn(ndir)
|
||||
|
||||
|
||||
@@ -273,7 +273,8 @@ var/const/OVERMAP_SPEED_CONSTANT = (1 SECOND)
|
||||
|
||||
/obj/effect/overmap/visitable/ship/proc/combat_roll(var/new_dir)
|
||||
burn()
|
||||
forceMove(get_step(src, new_dir))
|
||||
var/dir_to_move = turn(dir, new_dir == WEST ? 90 : -90)
|
||||
forceMove(get_step(src, dir_to_move))
|
||||
for(var/mob/living/L in living_mob_list)
|
||||
if(L.z in map_z)
|
||||
to_chat(L, SPAN_DANGER("<font size=4>The ship rapidly inclines under your feet!</font>"))
|
||||
@@ -286,10 +287,26 @@ var/const/OVERMAP_SPEED_CONSTANT = (1 SECOND)
|
||||
|
||||
/obj/effect/overmap/visitable/ship/proc/combat_turn(var/new_dir)
|
||||
burn()
|
||||
var/angle = 45
|
||||
var/angle = -45
|
||||
if(new_dir == WEST)
|
||||
angle = -45
|
||||
dir = turn(dir, angle)
|
||||
angle = 45
|
||||
var/direction = turn(dir, angle)
|
||||
accelerate(direction, 1000)
|
||||
if(direction & EAST)
|
||||
speed[1] = abs(speed[1])
|
||||
else if(direction & WEST)
|
||||
if(speed[1] > 0)
|
||||
speed[1] = -speed[1]
|
||||
else
|
||||
speed[1] = 0
|
||||
if(direction & NORTH)
|
||||
speed[2] = abs(speed[2])
|
||||
else if(direction & SOUTH)
|
||||
if(speed[2] > 0)
|
||||
speed[2] = -speed[2]
|
||||
else
|
||||
speed[2] = 0
|
||||
update_icon()
|
||||
for(var/mob/living/L in living_mob_list)
|
||||
if(L.z in map_z)
|
||||
to_chat(L, SPAN_DANGER("The ship rapidly turns under your feet!"))
|
||||
|
||||
Reference in New Issue
Block a user