Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/Civ13/Civ13
Browse files Browse the repository at this point in the history
  • Loading branch information
Bierkraan committed Mar 18, 2024
2 parents a7c6f42 + f1b4f9d commit a8c57b2
Show file tree
Hide file tree
Showing 15 changed files with 562 additions and 667 deletions.
11 changes: 7 additions & 4 deletions code/_helpers/global_lists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -110,11 +110,14 @@ var/global/faction1_supply_points = 1600
var/global/faction2_supply_points = 1600

//Aircraft Stuff
var/global/faction1_aircraft_remaining = 3
var/global/faction2_aircraft_remaining = 3
var/global/faction1_aircraft_cooldown = 0
var/global/faction2_aircraft_cooldown = 0

var/global/faction1_airstrikes_remaining = 12
var/global/faction2_airstrikes_remaining = 12
var/global/faction1_aircraft_rearming = 0
var/global/faction2_aircraft_rearming = 0

var/global/faction1_airstrikes_remaining = 10
var/global/faction2_airstrikes_remaining = 10

// for mass deletion
var/global/list/bullet_casings = list()
Expand Down
12 changes: 10 additions & 2 deletions code/_onclick/click.dm
Original file line number Diff line number Diff line change
Expand Up @@ -112,8 +112,16 @@
P = H.r_hand
P.rangecheck(H,A)
if (istype(H.get_active_hand(), /obj/item/weapon/attachment/scope/adjustable/binoculars/laser_designator))
var/obj/item/weapon/attachment/scope/adjustable/binoculars/laser_designator/P = H.get_active_hand()
P.rangecheck(H,A)
if (istype(H.back, /obj/item/weapon/radio) || istype(H.wear_id, /obj/item/weapon/radio/walkietalkie))
if (!map.faction1_can_cross_blocks() && !map.faction2_can_cross_blocks())
to_chat(H, SPAN_DANGER("You can't use this yet."))
return
else
var/obj/item/weapon/attachment/scope/adjustable/binoculars/laser_designator/P = H.get_active_hand()
P.rangecheck(H,A)
else
to_chat(H, SPAN_DANGER("You need to have a radio to use this!"))
return
if (istype(H.get_active_hand(), /obj/item/weapon/attachment/scope/adjustable/binoculars/binoculars))
var/obj/item/weapon/attachment/scope/adjustable/binoculars/binoculars/P = H.get_active_hand()
P.rangecheck(H,A)
Expand Down
2 changes: 1 addition & 1 deletion code/game/mob/living/carbon/human/inventory.dm
Original file line number Diff line number Diff line change
Expand Up @@ -486,7 +486,7 @@ This saves us from having to call add_fingerprint() any time something is put in
var/obj/item/clothing/under/uniform = w_uniform
uniform.attackby(W,src)
else
src << "<span class='danger'>You are trying to eqip this item to an unsupported inventory slot. If possible, please write a ticket with steps to reproduce. Slot was: [slot]</span>"
src << "<span class='danger'>You are trying to equip this item to an unsupported inventory slot. If possible, please write a ticket with steps to reproduce. Slot was: [slot]</span>"
return

if ((W == l_hand) && (slot != slot_l_hand))
Expand Down
15 changes: 15 additions & 0 deletions code/game/objects/items/weapons/grenades/grenade.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1053,3 +1053,18 @@
if (firer)
firer.awards["tank"]+=(heavy_armor_penetration/200)
qdel(src)

/obj/structure/bomb
name = "50 kg bomb"
desc = "Uhm..."
icon = 'icons/obj/cannon_ball.dmi'
icon_state = "bomb"
anchored = TRUE
density = TRUE
opacity = FALSE
var/timer = 1 SECOND

/obj/structure/bomb/proc/explode()
spawn(timer)
explosion(get_turf(src), 2, 3, 4, 4, sound='sound/weapons/Explosives/FragGrenade.ogg')
return
6 changes: 3 additions & 3 deletions code/game/objects/map_metadata/ardennes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
ID = MAP_ARDENNES
title = "Ardennes Offensive"
lobby_icon = 'icons/lobby/ardennes.png'
caribbean_blocking_area_types = list(/area/caribbean/no_mans_land/invisible_wall/tundra/three,/area/caribbean/no_mans_land/invisible_wall/tundra/two,/area/caribbean/no_mans_land/invisible_wall/tundra/one)
caribbean_blocking_area_types = list(/area/caribbean/no_mans_land/invisible_wall/tundra,/area/caribbean/no_mans_land/invisible_wall/tundra/one,/area/caribbean/no_mans_land/invisible_wall/tundra/two)
respawn_delay = 1200
no_winner = "The HQ stays under American control, stalling the German offense."
no_hardcore = TRUE
Expand Down Expand Up @@ -188,10 +188,10 @@ var/no_loop_ar = FALSE
return FALSE
var/area/A = get_area(T)
if (istype(A, /area/caribbean/no_mans_land/invisible_wall/tundra))
if (istype(A, /area/caribbean/no_mans_land/invisible_wall/tundra/two))
if (istype(A, /area/caribbean/no_mans_land/invisible_wall/tundra/one))
if (H.faction_text == faction1)
return TRUE
else if (istype(A, /area/caribbean/no_mans_land/invisible_wall/tundra/three))
else if (istype(A, /area/caribbean/no_mans_land/invisible_wall/tundra/two))
if (H.faction_text == faction2)
return TRUE
else
Expand Down
3 changes: 2 additions & 1 deletion code/game/objects/map_metadata/elaia.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
songs = list(
"Bella Ciao:1" = "sound/music/bella_ciao.ogg")
gamemode = "Siege"
grace_wall_timer = 3000
var/no_loop_elaia = FALSE
var/it_reinforcements_time = 15 MINUTES
var/reinforcements_called = FALSE
Expand Down Expand Up @@ -52,7 +53,7 @@
if (J.title == "Cisterna")
J.max_positions = 12
J.total_positions = 12
world << SPAN_NOTICE("<big>Italian reinforcements have arrived!</big>")
world << SPAN_NOTICE("<font size=4>Italian reinforcements have arrived!</font>")

/obj/map_metadata/elaia/faction1_can_cross_blocks()
return (processes.ticker.playtime_elapsed >= 36000 || admin_ended_all_grace_periods)
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/map_metadata/siberiad.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
ordinal_age = 7
songs = list(
"Audio - Emissions:1" = "sound/music/emissions.ogg")
gamemode = "King of the Hill"
gamemode = "Extraction"

/obj/map_metadata/siberiad/faction2_can_cross_blocks()
return (processes.ticker.playtime_elapsed >= 3600 || admin_ended_all_grace_periods)
Expand Down
103 changes: 60 additions & 43 deletions code/game/turfs/turf.dm
Original file line number Diff line number Diff line change
Expand Up @@ -481,38 +481,48 @@ var/const/enterloopsanity = 100

message_admins("[ckey] ([faction_text]) called in an airstrike with \the [src] at ([T.x],[T.y],[T.z])(<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>JMP towards</a>)", ckey)
log_game("[ckey] ([faction_text]) called in an airstrike with \the [src] at ([T.x],[T.y],[T.z])(<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>JMP</a>)")

switch(faction_text)
if (DUTCH)
faction1_airstrikes_remaining--
if (GERMAN)
faction1_airstrikes_remaining--
if (AMERICAN)
faction1_airstrikes_remaining--
if (BRITISH)
faction1_airstrikes_remaining--

if (RUSSIAN)
faction2_airstrikes_remaining--

var/aircraft_name
var/incoming_text = "cuts through"
switch(faction_text)
var/drop_delay = 3 SECONDS // Drop delay determines how long it takes for the payload to arive after the airstrike has been called .
switch(faction_text) // Check what faction has called in the airstrike and select an aircraft.
if (DUTCH)
new /obj/effect/plane_flyby/f16_no_message(T)
aircraft_name = "F-16"
drop_delay = 3 SECONDS
if (GERMAN)
new /obj/effect/plane_flyby/ju87_no_message(T)
aircraft_name = "Ju 87 Stuka"
incoming_text = "dives down"
if (map.ordinal_age == 6)
new /obj/effect/plane_flyby/ju87_no_message(T)
aircraft_name = "Ju 87 Stuka"
drop_delay = 18 SECONDS
else
new /obj/effect/plane_flyby/ju87_no_message(T)
aircraft_name = "Ju 87 Stuka"
drop_delay = 3 SECONDS
if (AMERICAN)
new /obj/effect/plane_flyby/f16_no_message(T)
aircraft_name = "F-16"
drop_delay = 3 SECONDS
if (RUSSIAN)
new /obj/effect/plane_flyby/su25_no_message(T)
aircraft_name = "Su-25"

to_chat(world, SPAN_DANGER("<font size=4>The clouds open up as a [aircraft_name] [incoming_text].</font>"))
if (map.ordinal_age == 6)
return // No aircraft for the Russians in WW2 yet
else
new /obj/effect/plane_flyby/su25_no_message(T)
aircraft_name = "Su-25"
drop_delay = 3 SECONDS

var/faction_num
if (map.faction1 == faction_text) // Check how many airstrikes a faction has left
faction_num = 1
else
faction_num = 2

switch (faction_num)
if (1)
faction1_airstrikes_remaining--
if (2)
faction2_airstrikes_remaining--

to_chat(world, SPAN_DANGER("<font size=4>The clouds open up as a [aircraft_name] cuts through.</font>"))

var/anti_air_in_range = FALSE
for (var/obj/structure/milsim/anti_air/AA in range(60, T)) // Check if there's anti air within 60 tiles
Expand Down Expand Up @@ -540,18 +550,14 @@ var/const/enterloopsanity = 100
if (M.client)
M.client << uploaded_sound

switch (faction_text)
if (DUTCH)
faction1_aircraft_remaining--
if (GERMAN)
faction1_aircraft_remaining--
if (AMERICAN)
faction1_aircraft_remaining--
if (BRITISH)
faction1_aircraft_remaining--

if (RUSSIAN)
faction2_aircraft_remaining--
switch (faction_num)
if (1)
faction1_aircraft_rearming = TRUE
faction1_aircraft_cooldown = world.time + 5 MINUTES
if (2)
faction2_aircraft_rearming = TRUE
faction2_aircraft_cooldown = world.time + 5 MINUTES

message_admins("[map.roundend_condition_def2name(faction_text)] Aircraft [aircraft_name] has been shot down.")
log_game("Aircraft [aircraft_name] has been shot down.")
return
Expand All @@ -565,13 +571,13 @@ var/const/enterloopsanity = 100
to_chat(M, SPAN_NOTICE("<big><b>The [aircraft_name] evades the SAM!</b></big>"))
if (M.client)
M.client << uploaded_sound
airstrike(direction)
airstrike(direction, payload, drop_delay)
else
spawn(3 SECONDS)
airstrike(direction)
airstrike(direction, payload, drop_delay)
return

/turf/proc/airstrike(var/direction = "NORTH", var/payload = "Rockets")
/turf/proc/airstrike(var/direction = "NORTH", var/payload = "Rockets", var/drop_delay = 3 SECONDS)
var/turf/T = src

var/strikenum = 5
Expand All @@ -586,7 +592,7 @@ var/const/enterloopsanity = 100
strikenum = 5
to_chat(world, SPAN_DANGER("<font size=4>And fires off a burst of rockets!</font>"))

spawn(2 SECONDS)
spawn(drop_delay)
for (var/i = 1, i <= strikenum, i++)
switch (direction)
if ("NORTH")
Expand All @@ -605,13 +611,24 @@ var/const/enterloopsanity = 100
direction_xoffset -= 3
xoffset = rand(0,1)
yoffset = rand(-2,2)
spawn(i*8)
spawn(i*5)
explosion(locate((T.x + xoffset + direction_xoffset), (T.y + yoffset + direction_yoffset), T.z), 0, 1, 5, 3, sound='sound/weapons/Explosives/FragGrenade.ogg')
if ("Bomb")
strikenum = 1
xoffset = rand(-2,2)
yoffset = rand(-2,2)
xoffset = rand(-3,3)
yoffset = rand(-3,3)

spawn(3 SECONDS)
spawn(drop_delay)
for (var/i = 1, i <= strikenum, i++)
explosion(locate((T.x + xoffset), (T.y + yoffset), T.z), 2, 3, 4, 4)
var/obj/structure/bomb/B = new /obj/structure/bomb(locate((T.x + xoffset), (T.y + yoffset), T.z))
playsound(get_turf(B), 'sound/effects/bang.ogg', 70)
switch (direction)
if ("NORTH")
B.dir = NORTH
if ("EAST")
B.dir = EAST
if ("SOUTH")
B.dir = SOUTH
if ("WEST")
B.dir = WEST
B.explode()
6 changes: 5 additions & 1 deletion code/modules/1713/siege/cannon_types.dm
Original file line number Diff line number Diff line change
Expand Up @@ -483,7 +483,7 @@
firedelay = 12
path = /obj/item/weapon/foldable/generic

/obj/structure/cannon/mortar/foldable/verb/Retrieve()
/obj/structure/cannon/mortar/foldable/verb/retrieve()
set category = null
set name = "Retrieve"
set src in range(1, usr)
Expand All @@ -501,6 +501,10 @@
usr.put_in_any_hand_if_possible(new path, prioritize_active_hand = TRUE)
visible_message(SPAN_WARNING("[usr] retrieves \the [src] from the ground."))

/obj/structure/cannon/mortar/foldable/AltClick(mob/user)
retrieve()
return

/obj/structure/cannon/mortar/foldable/attackby(obj/item/I as obj, mob/M as mob)
if (istype(I, ammotype))
if (loaded.len)
Expand Down
7 changes: 6 additions & 1 deletion code/modules/1713/siege/piece.dm
Original file line number Diff line number Diff line change
Expand Up @@ -513,6 +513,8 @@
dir = WEST
else
dir = NORTH
for (var/obj/structure/vehicleparts/frame/F in get_turf(src))
F.update_icon()

if (href_list["toggle_scope"])
if (scope_mod == "Enabled")
Expand Down Expand Up @@ -1177,7 +1179,7 @@
if (chair_found.buckled_mob)
chair_found.buckled_mob.loc = new_behind

for (var/obj/structure/vehicleparts/frame/F in loc)
for (var/obj/structure/vehicleparts/frame/F in get_turf(src))
F.update_icon()

target_coords()
Expand Down Expand Up @@ -1329,6 +1331,9 @@
if (chair_found.buckled_mob)
chair_found.buckled_mob.loc = new_behind

for (var/obj/structure/vehicleparts/frame/F in get_turf(src))
F.update_icon()

target_coords()
update_scope()
return
Expand Down
4 changes: 2 additions & 2 deletions code/modules/1713/weapons/guns/mg/stationary/mg.dm
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@
anchored = TRUE
var/path

/obj/item/weapon/gun/projectile/automatic/stationary/foldable/verb/Retrieve()
/obj/item/weapon/gun/projectile/automatic/stationary/foldable/verb/retrieve()
set category = null
set name = "Retrieve"
set src in range(1, usr)
Expand Down Expand Up @@ -869,7 +869,7 @@
base_icon = "foldable_atgm"
var/path = /obj/item/weapon/foldable/atgm

/obj/item/weapon/gun/projectile/automatic/stationary/atgm/foldable/verb/Retrieve()
/obj/item/weapon/gun/projectile/automatic/stationary/atgm/foldable/verb/retrieve()
set category = null
set name = "Retrieve"
set src in range(1, usr)
Expand Down
Loading

0 comments on commit a8c57b2

Please sign in to comment.