Removes the Families gamemode (#68480)

This commit is contained in:
Seth Scherer
2022-07-17 17:47:02 -07:00
committed by GitHub
parent 14783f2bae
commit caef4900b5
30 changed files with 24 additions and 2227 deletions
+22 -79
View File
@@ -328,14 +328,6 @@
else if(drawing in graffiti|oriented)
temp = "graffiti"
var/gang_mode
if(user.mind)
gang_mode = user.mind.has_antag_datum(/datum/antagonist/gang)
if(gang_mode && (!can_claim_for_gang(user, target, gang_mode)))
return
var/graf_rot
if(drawing in oriented)
switch(user.dir)
@@ -367,7 +359,7 @@
if(paint_mode == PAINT_LARGE_HORIZONTAL)
wait_time *= 3
if(gang_mode || !instant)
if(!instant)
if(!do_after(user, 50, target = target))
return
@@ -384,34 +376,28 @@
if(actually_paints)
var/obj/effect/decal/cleanable/crayon/C
if(gang_mode)
if(!can_claim_for_gang(user, target))
return
tag_for_gang(user, target, gang_mode)
affected_turfs += target
else
switch(paint_mode)
if(PAINT_NORMAL)
C = new(target, paint_color, drawing, temp, graf_rot)
C.pixel_x = clickx
C.pixel_y = clicky
switch(paint_mode)
if(PAINT_NORMAL)
C = new(target, paint_color, drawing, temp, graf_rot)
C.pixel_x = clickx
C.pixel_y = clicky
affected_turfs += target
if(PAINT_LARGE_HORIZONTAL)
var/turf/left = locate(target.x-1,target.y,target.z)
var/turf/right = locate(target.x+1,target.y,target.z)
if(isValidSurface(left) && isValidSurface(right))
C = new(left, paint_color, drawing, temp, graf_rot, PAINT_LARGE_HORIZONTAL_ICON)
affected_turfs += left
affected_turfs += right
affected_turfs += target
if(PAINT_LARGE_HORIZONTAL)
var/turf/left = locate(target.x-1,target.y,target.z)
var/turf/right = locate(target.x+1,target.y,target.z)
if(isValidSurface(left) && isValidSurface(right))
C = new(left, paint_color, drawing, temp, graf_rot, PAINT_LARGE_HORIZONTAL_ICON)
affected_turfs += left
affected_turfs += right
affected_turfs += target
else
to_chat(user, span_warning("There isn't enough space to paint!"))
return
C.add_hiddenprint(user)
if(istagger)
C.AddElement(/datum/element/art, GOOD_ART)
else
C.AddElement(/datum/element/art, BAD_ART)
else
to_chat(user, span_warning("There isn't enough space to paint!"))
return
C.add_hiddenprint(user)
if(istagger)
C.AddElement(/datum/element/art, GOOD_ART)
else
C.AddElement(/datum/element/art, BAD_ART)
if(!instant)
to_chat(user, span_notice("You finish drawing \the [temp]."))
@@ -454,49 +440,6 @@
else
..()
/obj/item/toy/crayon/proc/can_claim_for_gang(mob/user, atom/target, datum/antagonist/gang/user_gang)
var/area/A = get_area(target)
if(!A || (!is_station_level(A.z)))
to_chat(user, span_warning("[A] is unsuitable for tagging."))
return FALSE
var/spraying_over = FALSE
for(var/obj/effect/decal/cleanable/crayon/gang/G in target)
spraying_over = TRUE
for(var/obj/machinery/power/apc in target)
to_chat(user, span_warning("You can't tag an APC."))
return FALSE
var/obj/effect/decal/cleanable/crayon/gang/occupying_gang = territory_claimed(A, user)
if(occupying_gang && !spraying_over)
if(occupying_gang.my_gang == user_gang.my_gang)
to_chat(user, span_danger("[A] has already been tagged by our gang!"))
else
to_chat(user, span_danger("[A] has already been tagged by a gang! You must find and spray over the old tag instead!"))
return FALSE
// stolen from oldgang lmao
return TRUE
/obj/item/toy/crayon/proc/tag_for_gang(mob/user, atom/target, datum/antagonist/gang/user_gang)
for(var/obj/effect/decal/cleanable/crayon/old_marking in target)
qdel(old_marking)
var/area/territory = get_area(target)
var/obj/effect/decal/cleanable/crayon/gang/tag = new /obj/effect/decal/cleanable/crayon/gang(target)
tag.my_gang = user_gang.my_gang
tag.icon_state = "[user_gang.gang_id]_tag"
tag.name = "[tag.my_gang.name] gang tag"
tag.desc = "Looks like someone's claimed this area for [tag.my_gang.name]."
to_chat(user, span_notice("You tagged [territory] for [tag.my_gang.name]!"))
/obj/item/toy/crayon/proc/territory_claimed(area/territory, mob/user)
for(var/obj/effect/decal/cleanable/crayon/gang/G in GLOB.gang_tags)
if(get_area(G) == territory)
return G
/obj/item/toy/crayon/red
name = "red crayon"
icon_state = "crayonred"
-70
View File
@@ -347,76 +347,6 @@
SEND_SIGNAL(taker, COMSIG_ADD_MOOD_EVENT, "high_five", /datum/mood_event/high_five)
qdel(src)
/// Gangster secret handshakes.
/obj/item/hand_item/slapper/secret_handshake
name = "Secret Handshake"
icon_state = "recruit"
icon = 'icons/obj/gang/actions.dmi'
/// References the active families gamemode handler (if one exists), for adding new family members to.
var/datum/gang_handler/handler
/// The typepath of the gang antagonist datum that the person who uses the package should have added to them -- remember that the distinction between e.g. Ballas and Grove Street is on the antag datum level, not the team datum level.
var/gang_to_use
/// The team datum that the person who uses this package should be added to.
var/datum/team/gang/team_to_use
/// Adds the user to the family that this package corresponds to, dispenses the free_clothes of that family, and adds them to the handler if it exists.
/obj/item/hand_item/slapper/secret_handshake/proc/add_to_gang(mob/living/user, original_name)
var/datum/antagonist/gang/swappin_sides = new gang_to_use()
swappin_sides.original_name = original_name
swappin_sides.handler = handler
user.mind.add_antag_datum(swappin_sides, team_to_use)
var/policy = get_policy(ROLE_FAMILIES)
if(policy)
to_chat(user, policy)
team_to_use.add_member(user.mind)
swappin_sides.equip_gangster_in_inventory()
if (!isnull(handler) && !handler.gangbangers.Find(user.mind)) // if we have a handler and they're not tracked by it
handler.gangbangers += user.mind
/// Checks if the user is trying to use the package of the family they are in, and if not, adds them to the family, with some differing processing depending on whether the user is already a family member.
/obj/item/hand_item/slapper/secret_handshake/proc/attempt_join_gang(mob/living/user)
if(!user?.mind)
return
var/datum/antagonist/gang/is_gangster = user.mind.has_antag_datum(/datum/antagonist/gang)
var/real_name_backup = user.real_name
if(is_gangster)
if(is_gangster.my_gang == team_to_use)
return
real_name_backup = is_gangster.original_name
is_gangster.my_gang.remove_member(user.mind)
user.mind.remove_antag_datum(/datum/antagonist/gang)
add_to_gang(user, real_name_backup)
/obj/item/hand_item/slapper/secret_handshake/on_offer_taken(mob/living/carbon/offerer, mob/living/carbon/taker)
. = TRUE
if (!(null in taker.held_items))
to_chat(taker, span_warning("You can't get taught the secret handshake if [offerer] has no free hands!"))
return
if(HAS_TRAIT(taker, TRAIT_MINDSHIELD))
to_chat(taker, "You attended a seminar on not signing up for a gang and are not interested.")
return
var/datum/antagonist/gang/is_gangster = taker.mind.has_antag_datum(/datum/antagonist/gang)
if(is_gangster?.starter_gangster)
if(is_gangster.my_gang == team_to_use)
to_chat(taker, "You started your family. You don't need to join it.")
return
to_chat(taker, "You started your family. You can't turn your back on it now.")
return
offerer.visible_message(span_notice("[taker] is taught the secret handshake by [offerer]!"), span_nicegreen("All right! You've taught the secret handshake to [taker]!"), span_hear("You hear a bunch of weird shuffling and flesh slapping sounds!"), ignored_mobs=taker)
to_chat(taker, span_nicegreen("You get taught the secret handshake by [offerer]!"))
var/datum/antagonist/gang/owner_gang_datum = offerer.mind.has_antag_datum(/datum/antagonist/gang)
handler = owner_gang_datum.handler
gang_to_use = owner_gang_datum.type
team_to_use = owner_gang_datum.my_gang
attempt_join_gang(taker)
qdel(src)
/obj/item/hand_item/kisser
name = "kiss"
desc = "I want you all to know, everyone and anyone, to seal it with a kiss."