mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 02:09:41 +00:00
Xenomorph Structure Icon Update + Misc Fixes/Improvements (#7336)
This commit is contained in:
@@ -38,17 +38,17 @@
|
|||||||
var/obj/effect/alien/weeds/node/linked_node = null
|
var/obj/effect/alien/weeds/node/linked_node = null
|
||||||
var/static/list/weedImageCache
|
var/static/list/weedImageCache
|
||||||
|
|
||||||
/obj/effect/alien/weeds/Initialize(var/mapload, var/node, var/newcolor)
|
/obj/effect/alien/weeds/Initialize(var/mapload, var/node) // CHOMPedit: No coloration.
|
||||||
. = ..()
|
. = ..()
|
||||||
if(isspace(loc))
|
if(isspace(loc))
|
||||||
return INITIALIZE_HINT_QDEL
|
return INITIALIZE_HINT_QDEL
|
||||||
|
|
||||||
linked_node = node
|
linked_node = node
|
||||||
if(newcolor)
|
// if(newcolor)
|
||||||
color = newcolor
|
// color = newcolor // CHOMPedit: No coloration.
|
||||||
|
|
||||||
if(icon_state == "weeds")
|
if(icon_state == "weeds")
|
||||||
icon_state = pick("weeds", "weeds1", "weeds2")
|
icon_state = pick("weeds", "weeds1", "weeds2", "weeds3", "weeds4", "weeds5", "weeds6", "weeds7", "weeds8", "weeds9", "weeds10", "weeds11", "weeds12", "weeds13", "weeds14", "weeds15") // CHOMPedit: More icons variants.
|
||||||
|
|
||||||
fullUpdateWeedOverlays()
|
fullUpdateWeedOverlays()
|
||||||
|
|
||||||
@@ -73,9 +73,9 @@
|
|||||||
light_color = "#673972"
|
light_color = "#673972"
|
||||||
|
|
||||||
var/node_range = NODERANGE
|
var/node_range = NODERANGE
|
||||||
var/set_color = "#321D37"
|
// var/set_color = "#321D37" // CHOMPedit: Removing coloration.
|
||||||
|
|
||||||
/obj/effect/alien/weeds/node/Initialize(var/mapload, var/node, var/newcolor)
|
/obj/effect/alien/weeds/node/Initialize(var/mapload, var/node) // CHOMPedit: Removing coloration.
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
for(var/obj/effect/alien/weeds/existing in loc)
|
for(var/obj/effect/alien/weeds/existing in loc)
|
||||||
@@ -86,10 +86,10 @@
|
|||||||
|
|
||||||
linked_node = src
|
linked_node = src
|
||||||
|
|
||||||
if(newcolor)
|
// if(newcolor)
|
||||||
set_color = newcolor
|
// set_color = newcolor
|
||||||
if(set_color)
|
// if(set_color)
|
||||||
color = set_color
|
// color = set_color // CHOMPedit: Removing coloration.
|
||||||
|
|
||||||
START_PROCESSING(SSobj, src) // Only the node processes in a subsystem, the rest are process()'d by the node
|
START_PROCESSING(SSobj, src) // Only the node processes in a subsystem, the rest are process()'d by the node
|
||||||
|
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
if(T1.c_airblock(T2) == BLOCKED)
|
if(T1.c_airblock(T2) == BLOCKED)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
new /obj/effect/alien/weeds(T2, linked_node, color)
|
new /obj/effect/alien/weeds(T2, linked_node) // CHOMPedit: No coloration.
|
||||||
|
|
||||||
/obj/effect/alien/weeds/node/process()
|
/obj/effect/alien/weeds/node/process()
|
||||||
set background = 1
|
set background = 1
|
||||||
@@ -166,7 +166,7 @@
|
|||||||
if(!W.linked_node)
|
if(!W.linked_node)
|
||||||
W.linked_node = src
|
W.linked_node = src
|
||||||
|
|
||||||
W.color = W.linked_node.set_color
|
// W.color = W.linked_node.set_color // CHOMPedit: No coloration.
|
||||||
|
|
||||||
if(prob(max(10, 60 - (5 * nearby_weeds.len))))
|
if(prob(max(10, 60 - (5 * nearby_weeds.len))))
|
||||||
W.process()
|
W.process()
|
||||||
@@ -225,7 +225,7 @@
|
|||||||
healthcheck()
|
healthcheck()
|
||||||
|
|
||||||
// CHOMPedit start - Smaller-ranged nodes for Xenomorph Hybrids, node/weed deletion.
|
// CHOMPedit start - Smaller-ranged nodes for Xenomorph Hybrids, node/weed deletion.
|
||||||
/obj/effect/alien/weeds/attack_hand()
|
/obj/effect/alien/weeds/attack_hand(mob/user as mob)
|
||||||
usr.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
usr.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
||||||
if (HULK in usr.mutations)
|
if (HULK in usr.mutations)
|
||||||
visible_message("<span class='warning'>[usr] destroys the [name]!</span>")
|
visible_message("<span class='warning'>[usr] destroys the [name]!</span>")
|
||||||
@@ -234,14 +234,13 @@
|
|||||||
|
|
||||||
// Aliens can get straight through these.
|
// Aliens can get straight through these.
|
||||||
if(istype(usr,/mob/living/carbon))
|
if(istype(usr,/mob/living/carbon))
|
||||||
var/mob/living/carbon/M = usr
|
if(user.a_intent == I_HURT)
|
||||||
if(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs)
|
var/mob/living/carbon/M = usr
|
||||||
visible_message ("<span class='warning'>[usr] strokes the [name] and it melts away!</span>", 1)
|
if(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs)
|
||||||
health = 0
|
visible_message ("<span class='warning'>[usr] strokes the [name] and it melts away!</span>", 1)
|
||||||
healthcheck()
|
health = 0
|
||||||
return
|
healthcheck()
|
||||||
visible_message("<span class='warning'>[usr] claws at the [name]!</span>")
|
return
|
||||||
health -= rand(5,10)
|
|
||||||
healthcheck()
|
healthcheck()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -249,7 +249,8 @@
|
|||||||
/obj/item/device/flashlight,
|
/obj/item/device/flashlight,
|
||||||
/obj/item/weapon/cell/device,
|
/obj/item/weapon/cell/device,
|
||||||
/obj/item/weapon/extinguisher/mini,
|
/obj/item/weapon/extinguisher/mini,
|
||||||
/obj/item/weapon/storage/quickdraw/syringe_case
|
/obj/item/weapon/storage/quickdraw/syringe_case,
|
||||||
|
/obj/item/ammo_casing/macrobattery // CHOMPedit: Macrobatteries for the Curabitur can fit into medbelts.
|
||||||
)
|
)
|
||||||
|
|
||||||
/obj/item/weapon/storage/belt/medical/emt
|
/obj/item/weapon/storage/belt/medical/emt
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
..()
|
..()
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/structure/alien/attack_hand()
|
/obj/structure/alien/attack_hand(mob/user as mob)
|
||||||
usr.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
usr.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
||||||
if (HULK in usr.mutations)
|
if (HULK in usr.mutations)
|
||||||
visible_message("<span class='warning'>[usr] destroys the [name]!</span>")
|
visible_message("<span class='warning'>[usr] destroys the [name]!</span>")
|
||||||
@@ -75,14 +75,13 @@
|
|||||||
|
|
||||||
// Aliens can get straight through these.
|
// Aliens can get straight through these.
|
||||||
if(istype(usr,/mob/living/carbon))
|
if(istype(usr,/mob/living/carbon))
|
||||||
var/mob/living/carbon/M = usr
|
if(user.a_intent == I_HURT)
|
||||||
if(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs)
|
var/mob/living/carbon/M = usr
|
||||||
visible_message ("<span class='warning'>[usr] strokes the [name] and it melts away!</span>", 1)
|
if(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs)
|
||||||
health = 0
|
visible_message ("<span class='warning'>[usr] strokes the [name] and it melts away!</span>", 1)
|
||||||
healthcheck()
|
health = 0
|
||||||
return
|
healthcheck()
|
||||||
visible_message("<span class='warning'>[usr] claws at the [name]!</span>")
|
return
|
||||||
health -= rand(5,10)
|
|
||||||
healthcheck()
|
healthcheck()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -283,3 +283,30 @@
|
|||||||
if(!iscultist(L) && !istype(L, /mob/living/simple_mob/construct))
|
if(!iscultist(L) && !istype(L, /mob/living/simple_mob/construct))
|
||||||
return
|
return
|
||||||
..()
|
..()
|
||||||
|
|
||||||
|
// CHOMPedit start: Allows removing resin doors.
|
||||||
|
/obj/structure/simple_door/resin/attack_hand(mob/user as mob)
|
||||||
|
usr.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
||||||
|
if (HULK in usr.mutations)
|
||||||
|
visible_message("<span class='warning'>[usr] destroys the [name]!</span>")
|
||||||
|
hardness = 0
|
||||||
|
else
|
||||||
|
|
||||||
|
// Carbons can get straight through these.
|
||||||
|
if(istype(usr,/mob/living/carbon))
|
||||||
|
if(user.a_intent == I_HURT)
|
||||||
|
var/mob/living/carbon/M = usr
|
||||||
|
if(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs)
|
||||||
|
visible_message ("<span class='warning'>[usr] strokes the [name] and it melts away!</span>", 1)
|
||||||
|
hardness = 0
|
||||||
|
CheckHardness()
|
||||||
|
return
|
||||||
|
else
|
||||||
|
visible_message("<span class='warning'>[usr] tears at the [name]!</span>")
|
||||||
|
hardness -= 2
|
||||||
|
CheckHardness()
|
||||||
|
return
|
||||||
|
CheckHardness()
|
||||||
|
TryToSwitchState(user)
|
||||||
|
return
|
||||||
|
// CHOMPedit end.
|
||||||
@@ -84,3 +84,24 @@
|
|||||||
density = FALSE
|
density = FALSE
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
// CHOMPedit start - Allows xenos to clean nests.
|
||||||
|
/obj/structure/bed/nest/attack_hand(mob/user as mob)
|
||||||
|
usr.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
||||||
|
if (HULK in usr.mutations)
|
||||||
|
visible_message("<span class='warning'>[usr] destroys the [name]!</span>")
|
||||||
|
health = 0
|
||||||
|
else
|
||||||
|
|
||||||
|
// Aliens can get straight through these.
|
||||||
|
if(istype(usr,/mob/living/carbon))
|
||||||
|
if(user.a_intent == I_HURT)
|
||||||
|
var/mob/living/carbon/M = usr
|
||||||
|
if(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs)
|
||||||
|
visible_message ("<span class='warning'>[usr] strokes the [name] and it melts away!</span>", 1)
|
||||||
|
health = 0
|
||||||
|
healthcheck()
|
||||||
|
return
|
||||||
|
healthcheck()
|
||||||
|
return
|
||||||
|
// CHOMPedit end.
|
||||||
@@ -325,6 +325,12 @@
|
|||||||
)
|
)
|
||||||
drop_sound = 'sound/items/drop/gloves.ogg'
|
drop_sound = 'sound/items/drop/gloves.ogg'
|
||||||
pickup_sound = 'sound/items/pickup/gloves.ogg'
|
pickup_sound = 'sound/items/pickup/gloves.ogg'
|
||||||
|
// CHOMPedit start: All gloves give cold/heat protection.
|
||||||
|
cold_protection = HANDS
|
||||||
|
min_cold_protection_temperature = GLOVES_MIN_COLD_PROTECTION_TEMPERATURE
|
||||||
|
heat_protection = HANDS
|
||||||
|
max_heat_protection_temperature = GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||||
|
// CHOMPedit end.
|
||||||
|
|
||||||
/obj/item/clothing/proc/set_clothing_index()
|
/obj/item/clothing/proc/set_clothing_index()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
/datum/material/resin
|
/datum/material/resin
|
||||||
name = "resin"
|
name = "resin"
|
||||||
icon_colour = "#353C40" // CHOMPedit: Alternative colour to distinguish from weed floor tiles.
|
// icon_colour = "#353C40" // CHOMPedit: No longer needed
|
||||||
icon_base = "resin"
|
icon_base = "resin"
|
||||||
|
integrity = 50 // CHOMPedit: Same as wood.
|
||||||
|
hardness = 15 // CHOMPedit: Same as wood.
|
||||||
table_icon_base = "stone"
|
table_icon_base = "stone"
|
||||||
dooropen_noise = 'sound/effects/attackblob.ogg'
|
dooropen_noise = 'sound/effects/attackblob.ogg'
|
||||||
door_icon_base = "resin"
|
door_icon_base = "resin"
|
||||||
@@ -38,7 +40,7 @@
|
|||||||
new /datum/stack_recipe("[display_name] door", /obj/structure/simple_door/resin, 1, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), // CHOMPedit: Reduced material cost.
|
new /datum/stack_recipe("[display_name] door", /obj/structure/simple_door/resin, 1, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), // CHOMPedit: Reduced material cost.
|
||||||
new /datum/stack_recipe("[display_name] barricade", /obj/structure/alien/wall, 1, time = 5 SECONDS, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE, recycle_material = "[name]"), // CHOMPedit: Reduced material cost.
|
new /datum/stack_recipe("[display_name] barricade", /obj/structure/alien/wall, 1, time = 5 SECONDS, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE, recycle_material = "[name]"), // CHOMPedit: Reduced material cost.
|
||||||
new /datum/stack_recipe("[display_name] nest", /obj/structure/bed/nest, 1, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), // CHOMPedit: Reduced material cost.
|
new /datum/stack_recipe("[display_name] nest", /obj/structure/bed/nest, 1, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), // CHOMPedit: Reduced material cost.
|
||||||
new /datum/stack_recipe("[display_name] wall girders", /obj/structure/girder/resin, 1, time = 5 SECONDS, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), // CHOMPedit: Reduced material cost.
|
// new /datum/stack_recipe("[display_name] wall girders", /obj/structure/girder/resin, 1, time = 5 SECONDS, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), // CHOMPedit: Removed, build walls with secrete resin
|
||||||
new /datum/stack_recipe("crude [display_name] bandage", /obj/item/stack/medical/crude_pack, 2, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"), // CHOMPedit: Increased material cost.
|
new /datum/stack_recipe("crude [display_name] bandage", /obj/item/stack/medical/crude_pack, 2, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"), // CHOMPedit: Increased material cost.
|
||||||
new /datum/stack_recipe("[display_name] net", /obj/item/weapon/material/fishing_net, 2, time = 5 SECONDS, supplied_material = "[name]", pass_stack_color = TRUE), // CHOMPedit: Reduced material cost.
|
new /datum/stack_recipe("[display_name] net", /obj/item/weapon/material/fishing_net, 2, time = 5 SECONDS, supplied_material = "[name]", pass_stack_color = TRUE), // CHOMPedit: Reduced material cost.
|
||||||
new /datum/stack_recipe("[display_name] membrane", /obj/structure/alien/membrane, 1, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
new /datum/stack_recipe("[display_name] membrane", /obj/structure/alien/membrane, 1, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
||||||
|
|||||||
@@ -270,7 +270,7 @@
|
|||||||
|
|
||||||
if(O)
|
if(O)
|
||||||
visible_message("<span class='warning'><B>[src] vomits up a thick purple substance and begins to shape it!</B></span>", "<span class='alium'>You shape a [choice].</span>")
|
visible_message("<span class='warning'><B>[src] vomits up a thick purple substance and begins to shape it!</B></span>", "<span class='alium'>You shape a [choice].</span>")
|
||||||
O.color = "#321D37"
|
// O.color = "#321D37" // CHOMPedit: Removing colouration, adding predefined colour icons.
|
||||||
playsound(src, 'sound/effects/blobattack.ogg', 40, 1)
|
playsound(src, 'sound/effects/blobattack.ogg', 40, 1)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
disable_duration_percent = 0.7
|
disable_duration_percent = 0.7
|
||||||
outgoing_melee_damage_percent = 1.3
|
outgoing_melee_damage_percent = 1.3
|
||||||
attack_speed_percent = -1.3 // CHOMPedit: It was actually slowing it down, lol
|
attack_speed_percent = 0.7 // CHOMPedit: It was actually slowing it down, lol
|
||||||
accuracy = 30
|
accuracy = 30
|
||||||
slowdown = -1
|
slowdown = -1
|
||||||
evasion = 30
|
evasion = 30
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
item_state = "multicannon"
|
item_state = "multicannon"
|
||||||
slot_flags = SLOT_BACK
|
slot_flags = SLOT_BACK
|
||||||
recoil = FALSE
|
recoil = FALSE
|
||||||
|
fire_sound = 'modular_chomp/sound/weapons/energy/laser_strong.ogg' // CHOMPedit: New firesound, overwrites the sfx from the macrobatteries.
|
||||||
|
|
||||||
/obj/item/weapon/gun/projectile/multi_cannon/update_icon()
|
/obj/item/weapon/gun/projectile/multi_cannon/update_icon()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|||||||
@@ -913,8 +913,26 @@
|
|||||||
else if(istype(I,/obj/item/weapon/newspaper))
|
else if(istype(I,/obj/item/weapon/newspaper))
|
||||||
to_chat(src, "<span class='notice'>You can taste the dry flavor of garbage, oh wait its just the news.</span>")
|
to_chat(src, "<span class='notice'>You can taste the dry flavor of garbage, oh wait its just the news.</span>")
|
||||||
else if (istype(I,/obj/item/weapon/cell))
|
else if (istype(I,/obj/item/weapon/cell))
|
||||||
visible_message("<span class='warning'>[src] sates their electric appeite with a [I]!</span>")
|
visible_message("<span class='warning'>[src] sates their electric appetite with a [I]!</span>")
|
||||||
to_chat(src, "<span class='notice'>You can taste the spicy flavor of electrolytes, yum.</span>")
|
to_chat(src, "<span class='notice'>You can taste the spicy flavor of electrolytes, yum.</span>")
|
||||||
|
else if (istype(I,/obj/item/device/walkpod))
|
||||||
|
visible_message("<span class='warning'>[src] sates their musical appetite with a [I]!</span>")
|
||||||
|
to_chat(src, "<span class='notice'>You can taste the jazzy flavor of music.</span>")
|
||||||
|
else if (istype(I,/obj/item/mail/junkmail))
|
||||||
|
visible_message("<span class='warning'>[src] devours the [I]!</span>")
|
||||||
|
to_chat(src, "<span class='notice'>You can taste the flavor of the galactic postal service.</span>")
|
||||||
|
else if (istype(I,/obj/item/weapon/gun/energy/sizegun))
|
||||||
|
visible_message("<span class='warning'>[src] devours the [I]!</span>")
|
||||||
|
to_chat(src, "<span class='notice'>You didn't read the warning label, did you?</span>")
|
||||||
|
else if (istype(I,/obj/item/device/slow_sizegun))
|
||||||
|
visible_message("<span class='warning'>[src] devours the [I]!</span>")
|
||||||
|
to_chat(src, "<span class='notice'>You taste the flavor of sunday driver bluespace.</span>")
|
||||||
|
else if (istype(I,/obj/item/device/laser_pointer))
|
||||||
|
visible_message("<span class='warning'>[src] devours the [I]!</span>")
|
||||||
|
to_chat(src, "<span class='notice'>You taste the flavor of a laser.</span>")
|
||||||
|
else if (istype(I,/obj/item/canvas))
|
||||||
|
visible_message("<span class='warning'>[src] devours the [I]!</span>")
|
||||||
|
to_chat(src, "<span class='notice'>You taste the flavor of priceless artwork.</span>")
|
||||||
//CHOMPedit end
|
//CHOMPedit end
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 94 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 9.2 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB |
@@ -33,7 +33,7 @@
|
|||||||
mob_overlay_state = "purple_electricity_constant"
|
mob_overlay_state = "purple_electricity_constant"
|
||||||
|
|
||||||
outgoing_melee_damage_percent = 1.2 // Only affects melee weapons, not fists
|
outgoing_melee_damage_percent = 1.2 // Only affects melee weapons, not fists
|
||||||
attack_speed_percent = -1.2 // Increases attack speed by 20%
|
attack_speed_percent = 0.9 // Increases attack speed by 10%
|
||||||
evasion = 25 // Only affects ranged attacks missing
|
evasion = 25 // Only affects ranged attacks missing
|
||||||
|
|
||||||
/datum/modifier/aura/xenoqueenbuff/check_if_valid()
|
/datum/modifier/aura/xenoqueenbuff/check_if_valid()
|
||||||
|
|||||||
@@ -272,7 +272,7 @@
|
|||||||
|
|
||||||
if(O)
|
if(O)
|
||||||
visible_message("<span class='warning'><B>[src] vomits up a thick purple substance and begins to shape it!</B></span>", "<span class='alium'>You shape a [choice].</span>")
|
visible_message("<span class='warning'><B>[src] vomits up a thick purple substance and begins to shape it!</B></span>", "<span class='alium'>You shape a [choice].</span>")
|
||||||
O.color = "#321D37"
|
// O.color = "#321D37" // Adding predefined colour icons.
|
||||||
playsound(src, 'sound/effects/blobattack.ogg', 40, 1)
|
playsound(src, 'sound/effects/blobattack.ogg', 40, 1)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
BIN
modular_chomp/sound/weapons/energy/laser_strong.ogg
Normal file
BIN
modular_chomp/sound/weapons/energy/laser_strong.ogg
Normal file
Binary file not shown.
Reference in New Issue
Block a user