mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-13 11:43:31 +00:00
PoI Stage 0.5
Doing this in smaller bits - New random sif mob selector, peaceful animals - Drone lootpile (basic placeholder loot right now until we figure out how to give them proper drone loot) - New random spider mob selector, nurse spider and nurse hat spider (hat spider has 10 more health points and is a rare chance to spawn, woo) - New spacesuit random spawn, medical space suits - New Random Shotgun spawn - New random gun spawns - Fixed icon for random medicine spawn - Fixed broken icon for 44 magazines - Fixed Ice Cave dungeon walls being called 'steel' - Added new Crystal type, to avoid the SM style crystal from spawning in crystal PoIs
This commit is contained in:
@@ -1,6 +1,16 @@
|
||||
/obj/random/gun/random
|
||||
name = "Random Weapon"
|
||||
desc = "This is a random energy or ballistic weapon."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "energystun100"
|
||||
|
||||
/obj/random/gun/random/item_to_spawn()
|
||||
return pick(prob(5);/obj/random/energy,
|
||||
prob(5);/obj/random/projectile/random)
|
||||
|
||||
/obj/random/energy
|
||||
name = "Random Energy Weapon"
|
||||
desc = "This is a random security weapon."
|
||||
desc = "This is a random weapon."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "energykill100"
|
||||
|
||||
@@ -83,6 +93,18 @@
|
||||
prob(2);/obj/item/weapon/gun/projectile/automatic/wt550,
|
||||
prob(1);/obj/item/weapon/gun/projectile/shotgun/pump/combat)
|
||||
|
||||
/obj/random/projectile/shotgun
|
||||
name = "Random Projectile Weapon"
|
||||
desc = "This is a random projectile weapon."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "shotgun"
|
||||
|
||||
/obj/random/projectile/item_to_spawn()
|
||||
return pick(prob(4);/obj/item/weapon/gun/projectile/shotgun/doublebarrel,
|
||||
prob(3);/obj/item/weapon/gun/projectile/shotgun/doublebarrel/sawn,
|
||||
prob(3);/obj/item/weapon/gun/projectile/shotgun/pump,
|
||||
prob(1);/obj/item/weapon/gun/projectile/shotgun/pump/combat)
|
||||
|
||||
/obj/random/handgun
|
||||
name = "Random Handgun"
|
||||
desc = "This is a random sidearm."
|
||||
@@ -127,3 +149,255 @@
|
||||
prob(4);/obj/item/ammo_magazine/m45/flash,
|
||||
prob(2);/obj/item/ammo_magazine/m9mmt,
|
||||
prob(6);/obj/item/ammo_magazine/m9mmt/rubber)
|
||||
|
||||
/obj/random/projectile/random
|
||||
name = "Random Projectile Weapon"
|
||||
desc = "This is a random weapon."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
|
||||
/obj/random/projectile/random/item_to_spawn()
|
||||
return pick(prob(3);/obj/random/multiple/gun/projectile/handgun,
|
||||
prob(2);/obj/random/multiple/gun/projectile/smg,
|
||||
prob(2);/obj/random/multiple/gun/projectile/shotgun,
|
||||
prob(1);/obj/random/multiple/gun/projectile/rifle)
|
||||
|
||||
/obj/random/multiple/gun/projectile/smg
|
||||
name = "random smg projectile gun"
|
||||
desc = "Loot for PoIs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "saber"
|
||||
|
||||
/obj/random/multiple/gun/projectile/smg/item_to_spawn()
|
||||
return pick(
|
||||
prob(3);list(
|
||||
/obj/item/weapon/gun/projectile/automatic/wt550,
|
||||
/obj/item/ammo_magazine/m9mmt,
|
||||
/obj/item/ammo_magazine/m9mmt
|
||||
),
|
||||
prob(3);list(
|
||||
/obj/item/weapon/gun/projectile/automatic/mini_uzi,
|
||||
/obj/item/ammo_magazine/m45uzi,
|
||||
/obj/item/ammo_magazine/m45uzi
|
||||
),
|
||||
prob(3);list(
|
||||
/obj/item/weapon/gun/projectile/automatic/tommygun,
|
||||
/obj/item/ammo_magazine/m45tommy,
|
||||
/obj/item/ammo_magazine/m45tommy
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/gun/projectile/automatic/c20r,
|
||||
/obj/item/ammo_magazine/m10mm,
|
||||
/obj/item/ammo_magazine/m10mm
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weapon/gun/projectile/automatic/p90,
|
||||
/obj/item/ammo_magazine/m9mmp90
|
||||
)
|
||||
)
|
||||
|
||||
/obj/random/multiple/gun/projectile/rifle
|
||||
name = "random rifle projectile gun"
|
||||
desc = "Loot for PoIs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "carbine"
|
||||
|
||||
//Concerns about the bullpup, but currently seems to be only a slightly stronger z8. But we shall see.
|
||||
|
||||
/obj/random/multiple/gun/projectile/rifle/item_to_spawn()
|
||||
return pick(
|
||||
prob(2);list(
|
||||
/obj/item/weapon/gun/projectile/automatic/sts35,
|
||||
/obj/item/ammo_magazine/m545,
|
||||
/obj/item/ammo_magazine/m545
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/gun/projectile/automatic/z8,
|
||||
/obj/item/ammo_magazine/m762,
|
||||
/obj/item/ammo_magazine/m762
|
||||
),
|
||||
prob(4);list(
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/rifle,
|
||||
/obj/item/ammo_magazine/clip/c762,
|
||||
/obj/item/ammo_magazine/clip/c762
|
||||
),
|
||||
prob(3);list(
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/rifle/lever,
|
||||
/obj/item/ammo_magazine/clip/c762,
|
||||
/obj/item/ammo_magazine/clip/c762
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weapon/gun/projectile/garand,
|
||||
/obj/item/ammo_magazine/m762garand,
|
||||
/obj/item/ammo_magazine/m762garand
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weapon/gun/projectile/automatic/bullpup,
|
||||
/obj/item/ammo_magazine/m762,
|
||||
/obj/item/ammo_magazine/m762
|
||||
)
|
||||
)
|
||||
|
||||
/obj/random/multiple/gun/projectile/handgun
|
||||
name = "random handgun projectile gun"
|
||||
desc = "Loot for PoIs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
|
||||
/obj/random/multiple/gun/projectile/handgun/item_to_spawn()
|
||||
return pick(
|
||||
prob(5);list(
|
||||
/obj/item/weapon/gun/projectile/colt,
|
||||
/obj/item/ammo_magazine/m45,
|
||||
/obj/item/ammo_magazine/m45
|
||||
),
|
||||
prob(4);list(
|
||||
/obj/item/weapon/gun/projectile/contender,
|
||||
/obj/item/ammo_magazine/s357,
|
||||
/obj/item/ammo_magazine/s357
|
||||
),
|
||||
prob(3);list(
|
||||
/obj/item/weapon/gun/projectile/contender/tacticool,
|
||||
/obj/item/ammo_magazine/s357,
|
||||
/obj/item/ammo_magazine/s357
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/gun/projectile/deagle,
|
||||
/obj/item/ammo_magazine/m44,
|
||||
/obj/item/ammo_magazine/m44
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weapon/gun/projectile/deagle/camo,
|
||||
/obj/item/ammo_magazine/m44,
|
||||
/obj/item/ammo_magazine/m44
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weapon/gun/projectile/deagle/gold,
|
||||
/obj/item/ammo_magazine/m44,
|
||||
/obj/item/ammo_magazine/m44
|
||||
),
|
||||
prob(4);list(
|
||||
/obj/item/weapon/gun/projectile/derringer,
|
||||
/obj/item/ammo_magazine/s357,
|
||||
/obj/item/ammo_magazine/s357
|
||||
),
|
||||
prob(5);list(
|
||||
/obj/item/weapon/gun/projectile/luger,
|
||||
/obj/item/ammo_magazine/m9mm/compact,
|
||||
/obj/item/ammo_magazine/m9mm/compact
|
||||
),
|
||||
prob(4);list(
|
||||
/obj/item/weapon/gun/projectile/luger/brown,
|
||||
/obj/item/ammo_magazine/m9mm/compact,
|
||||
/obj/item/ammo_magazine/m9mm/compact
|
||||
),
|
||||
prob(5);list(
|
||||
/obj/item/weapon/gun/projectile/sec,
|
||||
/obj/item/ammo_magazine/m45,
|
||||
/obj/item/ammo_magazine/m45
|
||||
),
|
||||
prob(4);list(
|
||||
/obj/item/weapon/gun/projectile/sec/wood,
|
||||
/obj/item/ammo_magazine/m45,
|
||||
/obj/item/ammo_magazine/m45
|
||||
),
|
||||
prob(5);list(
|
||||
/obj/item/weapon/gun/projectile/p92x,
|
||||
/obj/item/ammo_magazine/m9mm,
|
||||
/obj/item/ammo_magazine/m9mm
|
||||
),
|
||||
prob(4);list(
|
||||
/obj/item/weapon/gun/projectile/p92x/brown,
|
||||
/obj/item/ammo_magazine/m9mm,
|
||||
/obj/item/ammo_magazine/m9mm
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/gun/projectile/p92x/large,
|
||||
/obj/item/ammo_magazine/m9mm/large,
|
||||
/obj/item/ammo_magazine/m9mm/large
|
||||
),
|
||||
prob(5);list(
|
||||
/obj/item/weapon/gun/projectile/pistol,
|
||||
/obj/item/ammo_magazine/m9mm/compact,
|
||||
/obj/item/ammo_magazine/m9mm/compact
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/gun/projectile/silenced,
|
||||
/obj/item/ammo_magazine/m45,
|
||||
/obj/item/ammo_magazine/m45
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/gun/projectile/revolver,
|
||||
/obj/item/ammo_magazine/s357,
|
||||
/obj/item/ammo_magazine/s357
|
||||
),
|
||||
prob(4);list(
|
||||
/obj/item/weapon/gun/projectile/revolver/deckard,
|
||||
/obj/item/ammo_magazine/s38,
|
||||
/obj/item/ammo_magazine/s38
|
||||
),
|
||||
prob(4);list(
|
||||
/obj/item/weapon/gun/projectile/revolver/detective,
|
||||
/obj/item/ammo_magazine/s38,
|
||||
/obj/item/ammo_magazine/s38
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/gun/projectile/revolver/judge,
|
||||
/obj/item/ammo_magazine/clip/c12g,
|
||||
/obj/item/ammo_magazine/clip/c12g,
|
||||
/obj/item/ammo_magazine/clip/c12g
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/gun/projectile/revolver/lemat,
|
||||
/obj/item/ammo_magazine/s38,
|
||||
/obj/item/ammo_magazine/s38,
|
||||
/obj/item/ammo_magazine/clip/c12g
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/gun/projectile/revolver/mateba,
|
||||
/obj/item/ammo_magazine/s357,
|
||||
/obj/item/ammo_magazine/s357
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/gun/projectile/revolver/webley,
|
||||
/obj/item/ammo_magazine/s44,
|
||||
/obj/item/ammo_magazine/s44
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weapon/gun/projectile/revolver/webley/auto,
|
||||
/obj/item/ammo_magazine/s44,
|
||||
/obj/item/ammo_magazine/s44
|
||||
)
|
||||
)
|
||||
|
||||
/obj/random/multiple/gun/projectile/shotgun
|
||||
name = "random shotgun projectile gun"
|
||||
desc = "Loot for PoIs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "shotgun"
|
||||
|
||||
/obj/random/multiple/gun/projectile/shotgun/item_to_spawn()
|
||||
return pick(
|
||||
prob(4);list(
|
||||
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/pellet,
|
||||
/obj/item/ammo_magazine/clip/c12g/pellet,
|
||||
/obj/item/ammo_magazine/clip/c12g/pellet,
|
||||
/obj/item/ammo_magazine/clip/c12g/pellet,
|
||||
/obj/item/ammo_magazine/clip/c12g/pellet
|
||||
),
|
||||
prob(3);list(
|
||||
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/sawn,
|
||||
/obj/item/ammo_magazine/clip/c12g/pellet,
|
||||
/obj/item/ammo_magazine/clip/c12g/pellet,
|
||||
/obj/item/ammo_magazine/clip/c12g/pellet,
|
||||
/obj/item/ammo_magazine/clip/c12g/pellet
|
||||
),
|
||||
prob(3);list(
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/slug,
|
||||
/obj/item/weapon/storage/box/shotgunammo
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/combat,
|
||||
/obj/item/weapon/storage/box/shotgunammo
|
||||
)
|
||||
)
|
||||
@@ -92,8 +92,8 @@
|
||||
/obj/random/multiple/minevault
|
||||
name = "random vault loot"
|
||||
desc = "Loot for mine vaults."
|
||||
icon = 'icons/misc/mark.dmi'
|
||||
icon_state = "rup"
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "crate"
|
||||
|
||||
/obj/random/multiple/minevault/item_to_spawn()
|
||||
return pick(
|
||||
|
||||
@@ -159,8 +159,8 @@
|
||||
/obj/random/medical
|
||||
name = "Random Medicine"
|
||||
desc = "This is a random medical item."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "advfirstaid"
|
||||
icon = 'icons/obj/stacks.dmi'
|
||||
icon_state = "traumakit"
|
||||
|
||||
/obj/random/medical/item_to_spawn()
|
||||
return pick(prob(21);/obj/random/medical/lite,
|
||||
|
||||
@@ -74,6 +74,23 @@
|
||||
prob(1);/mob/living/simple_animal/hostile/goose,
|
||||
prob(20);/mob/living/simple_animal/giant_crab)
|
||||
|
||||
|
||||
/obj/random/mob/sif/peaceful
|
||||
name = "Random Peaceful Sif Animal"
|
||||
desc = "This is a random peaceful cold weather animal."
|
||||
icon_state = "penguin"
|
||||
|
||||
mob_returns_home = 1
|
||||
mob_wander_distance = 12
|
||||
|
||||
/obj/random/mob/sif/peaceful/item_to_spawn()
|
||||
return pick(prob(30);/mob/living/simple_animal/retaliate/diyaab,
|
||||
prob(15);/mob/living/simple_animal/crab,
|
||||
prob(15);/mob/living/simple_animal/penguin,
|
||||
prob(15);/mob/living/simple_animal/mouse,
|
||||
prob(15);/mob/living/simple_animal/corgi/tamaskan,
|
||||
prob(20);/mob/living/simple_animal/giant_crab)
|
||||
|
||||
/obj/random/mob/sif/hostile
|
||||
name = "Random Hostile Sif Animal"
|
||||
desc = "This is a random hostile cold weather animal."
|
||||
@@ -97,6 +114,18 @@
|
||||
prob(33);/mob/living/simple_animal/hostile/giant_spider/hunter,
|
||||
prob(45);/mob/living/simple_animal/hostile/giant_spider)
|
||||
|
||||
/obj/random/mob/spider/nurse
|
||||
name = "Random Nurse Spider"
|
||||
desc = "This is a random nurse spider."
|
||||
icon_state = "nurse"
|
||||
|
||||
mob_returns_home = 1
|
||||
mob_wander_distance = 4
|
||||
|
||||
/obj/random/mob/spider/nurse/item_to_spawn()
|
||||
return pick(prob(22);/mob/living/simple_animal/hostile/giant_spider/nurse/hat,
|
||||
prob(45);/mob/living/simple_animal/hostile/giant_spider/nurse)
|
||||
|
||||
/obj/random/mob/spider/mutant
|
||||
name = "Random Mutant Spider"
|
||||
desc = "This is a random mutated spider."
|
||||
|
||||
@@ -97,6 +97,31 @@
|
||||
)
|
||||
)
|
||||
|
||||
/obj/random/multiple/voidsuit/medical
|
||||
name = "Random Mining Voidsuit"
|
||||
desc = "This is a random mining voidsuit."
|
||||
icon = 'icons/obj/clothing/suits.dmi'
|
||||
icon_state = "rig-mining"
|
||||
|
||||
/obj/random/multiple/voidsuit/medical/item_to_spawn()
|
||||
return pick(
|
||||
prob(5);list(
|
||||
/obj/item/clothing/suit/space/void/medical,
|
||||
/obj/item/clothing/head/helmet/space/void/medical
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/clothing/suit/space/void/medical/alt,
|
||||
/obj/item/clothing/head/helmet/space/void/medical/alt
|
||||
),
|
||||
prob(3);list(
|
||||
/obj/item/clothing/suit/space/void/medical/bio,
|
||||
/obj/item/clothing/head/helmet/space/void/medical/bio
|
||||
),
|
||||
prob(4);list(
|
||||
/obj/item/clothing/suit/space/void/medical/emt,
|
||||
/obj/item/clothing/head/helmet/space/void/medical/emt
|
||||
)
|
||||
)
|
||||
|
||||
/obj/random/rigsuit
|
||||
name = "Random rigsuit"
|
||||
|
||||
@@ -830,3 +830,42 @@ Loot piles can be depleted, if loot_depleted is turned on. Note that players wh
|
||||
/obj/item/mecha_parts/mecha_equipment/repair_droid,
|
||||
/obj/item/mecha_parts/mecha_equipment/teleporter
|
||||
)
|
||||
|
||||
/obj/structure/loot_pile/surface/drone
|
||||
name = "drone wreckage"
|
||||
desc = "The ruins of some unfortunate drone. Perhaps something is salvageable."
|
||||
icon = 'icons/mob/animal.dmi'
|
||||
icon_state = "drone_dead"
|
||||
|
||||
// Since the actual drone loot is a bit stupid in how it is handled, this is a sparse and empty list with items I don't exactly want in it. But until we can get the proper items in . . .
|
||||
|
||||
common_loot = list(
|
||||
/obj/random/tool,
|
||||
/obj/item/stack/cable_coil/random,
|
||||
/obj/random/tank,
|
||||
/obj/random/tech_supply/component,
|
||||
/obj/item/stack/material/steel{amount = 25},
|
||||
/obj/item/stack/material/glass{amount = 10},
|
||||
/obj/item/stack/material/plasteel{amount = 5},
|
||||
/obj/item/weapon/cell,
|
||||
/obj/item/weapon/material/shard
|
||||
)
|
||||
|
||||
uncommon_loot = list(
|
||||
/obj/item/weapon/cell/high,
|
||||
/obj/item/robot_parts/robot_component/actuator,
|
||||
/obj/item/robot_parts/robot_component/armour,
|
||||
/obj/item/robot_parts/robot_component/binary_communication_device,
|
||||
/obj/item/robot_parts/robot_component/camera,
|
||||
/obj/item/robot_parts/robot_component/diagnosis_unit,
|
||||
/obj/item/robot_parts/robot_component/radio
|
||||
)
|
||||
|
||||
rare_loot = list(
|
||||
/obj/item/weapon/cell/super,
|
||||
/obj/item/borg/upgrade/restart,
|
||||
/obj/item/borg/upgrade/jetpack,
|
||||
/obj/item/borg/upgrade/tasercooler,
|
||||
/obj/item/borg/upgrade/syndicate,
|
||||
/obj/item/borg/upgrade/vtec
|
||||
)
|
||||
@@ -13,6 +13,9 @@
|
||||
return
|
||||
|
||||
/turf/simulated/wall/solidrock //for more stylish anti-cheese.
|
||||
name = "solid rock"
|
||||
desc = "This rock seems dense, impossible to drill."
|
||||
description_info = "Probably not going to be able to drill or bomb your way through this, best to try and find a way around."
|
||||
icon_state = "bedrock"
|
||||
var/base_state = "bedrock"
|
||||
block_tele = TRUE
|
||||
|
||||
@@ -82,6 +82,15 @@ Nurse Family
|
||||
var/atom/cocoon_target
|
||||
var/egg_inject_chance = 5
|
||||
|
||||
/mob/living/simple_animal/hostile/giant_spider/nurse/hat
|
||||
desc = "Furry and beige, it makes you shudder to look at it. This one has brilliant green eyes and a tiny nurse hat"
|
||||
icon_state = "nursemed"
|
||||
icon_living = "nursemed"
|
||||
icon_dead = "nursemed_dead"
|
||||
|
||||
maxHealth = 50
|
||||
health = 50
|
||||
|
||||
/mob/living/simple_animal/hostile/giant_spider/nurse/queen
|
||||
desc = "Absolutely gigantic, this creature is horror itself."
|
||||
icon = 'icons/mob/64x64.dmi'
|
||||
|
||||
@@ -472,7 +472,7 @@
|
||||
|
||||
/obj/item/ammo_magazine/m44
|
||||
name = "magazine (.44)"
|
||||
icon_state = "44"
|
||||
icon_state = "m44"
|
||||
origin_tech = list(TECH_COMBAT = 2)
|
||||
mag_type = MAGAZINE
|
||||
caliber = ".44"
|
||||
|
||||
@@ -41,6 +41,9 @@
|
||||
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/slug
|
||||
ammo_type = /obj/item/ammo_casing/a12g
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/combat
|
||||
name = "combat shotgun"
|
||||
desc = "Built for close quarters combat, the Hephaestus Industries KS-40 is widely regarded as a weapon of choice for repelling boarders. Uses 12g rounds."
|
||||
|
||||
@@ -19,6 +19,20 @@
|
||||
else
|
||||
set_light(3, 3, "#33CC33")
|
||||
|
||||
/obj/machinery/crystal/alt
|
||||
name = "Crystal"
|
||||
icon = 'icons/obj/mining.dmi'
|
||||
icon_state = "crystal"
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
|
||||
/obj/machinery/crystal/alt/New()
|
||||
if(prob(50))
|
||||
icon_state = "crystal2"
|
||||
set_light(3, 3, "#CC00CC")
|
||||
else
|
||||
set_light(3, 3, "#33CC33")
|
||||
|
||||
/obj/machinery/crystal/ice //slightly more thematic crystals
|
||||
name = "ice crystal"
|
||||
desc = "A large crystalline ice formation."
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Reference in New Issue
Block a user