Skip to content

Commit

Permalink
Predator update (bounty) (#206)
Browse files Browse the repository at this point in the history
* Update smartdisc.dm

* а

* more sprites

* а

* а

* А

* Update __game.dm

* f

* Update smartdisc.dm

* EMERGENCY FIXES

* FFFFFIX

* F

* f

* f

* F

* F

* f

* f

* F

* f

* F

* f

* F

* f

* f

* fixes

* Update egg.dm

* а

* F

* f

* Skull issue

* f

* F

* f

f

* F

* f

* F

* f

* а

* а

* а

* LV pred dlc

* f

* f

* а

* F

* F

* Update floor_types.dm

* Update smartdisc.dm

* Update yaut_weapons.dm

* sandstone fixes

* Update LV624.dmm

* Update yaut_bracers.dm

* Update yaut_weapons.dm

* Update smartdisc.dm

* Update prop.dm

* f

* fixes+tweaks

* F

* no more sensor blip cringe

* а

* no more turret aggro for invis pred

* more machine sprites

* rain anti invis

* а

* а

* а

* f

* а

* fix + strap for weapons

* фиксы по заказу блундира

* f

* Update yaut_weapons.dm

* а

* Update huntership.dmm

* fixes

* Update map_blips.dmi

* Update map_blips.dmi

* Update map_blips.dmi

* Update map_blips.dmi

* п

* F

* f

* F

* F

* f

* f

* F

* f

* f

* F

* f

* F

* F

* f

* f

* f

* F

* F

* F

* f

* F

* f

* fix h_style

* а

* f

* а

* а

* no more invis pred bumps

* fix pred closet icon

* f

* yautja radio color

* а

* а

* f

* F

* а

* А

* tweaks

* caster tweaks

* а

а

* lang fix

* F

* fix

* capes

* ку

* а

* f

* f

* skill issue fix

* sensors skill issue

* а

* prob solving issue

* f

* lv torch fixes

* weapons balancing

* nest fix

* а

а

* А

* hunt fixes

* crystall issue

* F

* F

* f

* f

* f

* Update huntership.dmm

* issues

* skull issue fix

* Update beam.dmi

* blacklist

* а

* Update hunt_system.dm

* Update hunt_system.dm

* Update hunt_system.dm

* F

* F

* А

* F

* f

* sql fixes

* foreign legion radio + observe fixes

* Update TGS_Talos.dmm

* f

* а

* f

* Update modular_helmet_storage.dmi

* Merge branch 'NO_PREDS&' of https://github.com/blackcrystall/TGMC-commits into pr/206

* f

* F

* f

* а

* f

* Update yaut_weapons.dm

* fixes

* а

* F

* а

* а

* f

* f

* blundir moment

* self kill no more honored

* cm xeno abilities better...

* CM devs skill issue? maybe

* my own skill issue

* cringe ban system for preds

* pred eye colour, as req

* bruh

* buff

* fixes

* real buff

* FIX

* а

* f

* а

---------

Co-authored-by: Blundir <[email protected]>
Co-authored-by: BlackCrystalic <[email protected]>
Co-authored-by: Blundir <[email protected]>
  • Loading branch information
4 people authored Oct 3, 2023
1 parent 496e85a commit bb0e234
Show file tree
Hide file tree
Showing 422 changed files with 28,821 additions and 2,160 deletions.
18 changes: 18 additions & 0 deletions RUtgmc/code/_onclick/hud/yautja.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/datum/hud/human/species/yautja/New(mob/living/carbon/human/owner, ui_style='icons/mob/screen/White.dmi', ui_color = "#ffffff", ui_alpha = 230)
. = ..()

pred_power_icon = new /atom/movable/screen()
pred_power_icon.icon = 'icons/mob/screen/yautja.dmi'
pred_power_icon.icon_state = "powerbar10"
pred_power_icon.name = "bracer power stored"
pred_power_icon.screen_loc = ui_predator_power
infodisplay += pred_power_icon

/mob/living/carbon/human/species/yautja/create_mob_hud()
if(client && !hud_used)
var/ui_style = ui_style2icon(client.prefs.ui_style)
var/ui_color = client.prefs.ui_style_color
var/ui_alpha = client.prefs.ui_style_alpha
hud_used = new /datum/hud/human/species/yautja(src, ui_style, ui_color, ui_alpha)
else
hud_used = new /datum/hud/human/species/yautja(src)
44 changes: 44 additions & 0 deletions RUtgmc/code/datums/elements/yautja_tracked_item.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/datum/element/yautja_tracked_item
element_flags = ELEMENT_COMPLEX_DETACH

/datum/element/yautja_tracked_item/Attach(obj/item/target)
. = ..()
if(!isitem(target))
return ELEMENT_INCOMPATIBLE
RegisterSignal(target, COMSIG_ITEM_EQUIPPED, PROC_REF(item_picked_up))
RegisterSignal(target, COMSIG_ITEM_DROPPED, PROC_REF(item_dropped))


if(!is_honorable_carrier(recursive_holder_check(target)))
add_to_missing_pred_gear(target)
GLOB.tracked_yautja_gear += target

/datum/element/yautja_tracked_item/Detach(datum/source, force)
UnregisterSignal(source, list(
COMSIG_ITEM_EQUIPPED,
COMSIG_ITEM_DROPPED
))
remove_from_missing_pred_gear(source)
GLOB.tracked_yautja_gear -= source
return ..()

/datum/element/yautja_tracked_item/proc/item_picked_up(obj/item/picked_up_item, mob/living/carbon/human/user)
SIGNAL_HANDLER

if(is_honorable_carrier(user))
remove_from_missing_pred_gear(picked_up_item)

/datum/element/yautja_tracked_item/proc/item_dropped(obj/item/dropped_item, mob/living/carbon/human/user)
SIGNAL_HANDLER

if(!is_honorable_carrier(recursive_holder_check(dropped_item)))
add_to_missing_pred_gear(dropped_item)

/proc/is_honorable_carrier(mob/living/carbon/human/carrier)
if(isyautja(carrier))
return TRUE
if((issynth(carrier) || ishuman(carrier)) && (carrier.hunter_data.honored || carrier.hunter_data.thralled) && !(carrier.hunter_data.dishonored || carrier.stat == DEAD))
return TRUE
if(istype(carrier, /mob/hologram/falcon))
return TRUE
return FALSE
19 changes: 19 additions & 0 deletions RUtgmc/code/modules/animations/animation_library.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/atom/proc/sway_jitter(times = 3, steps = 3, strength = 3, sway = 5)
var/sway_dir = 1 //left to right
animate(src, transform = turn(matrix(transform), sway * (sway_dir *= -1)), pixel_x = rand(-strength,strength), pixel_y = rand(-strength/3,strength/3), time = times, easing = JUMP_EASING, flags = ANIMATION_PARALLEL)
for(var/i in 1 to steps)
animate(transform = turn(matrix(transform), sway*2 * (sway_dir *= -1)), pixel_x = rand(-strength,strength), pixel_y = rand(-strength/3,strength/3), time = times, easing = JUMP_EASING)

animate(transform = turn(matrix(transform), sway * (sway_dir *= -1)), pixel_x = 0, pixel_y = 0, time = 0)//ease it back

/obj/effect/temp_visual/block //color is white by default, set to whatever is needed
name = "blocking glow"
icon_state = "block"
duration = 6.7

/obj/effect/temp_visual/block/Initialize(mapload, set_color)
if(set_color)
add_atom_colour(set_color, FIXED_COLOUR_PRIORITY)
. = ..()
pixel_x = rand(-12, 12)
pixel_y = rand(-9, 0)
4 changes: 4 additions & 0 deletions RUtgmc/code/modules/clans/clan.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/proc/create_new_clan(clanname)
var/datum/db_query/query_create_clan = SSdbcore.NewQuery("INSERT INTO [format_table_name("clan")] (name, description, honor, color) VALUES (:name, :desc, 0, :color)", list("name" = clanname, "desc" = "This is a clan.", "color" = "#FFF"))
query_create_clan.Execute()
qdel(query_create_clan)
180 changes: 180 additions & 0 deletions RUtgmc/code/modules/clans/client.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
/client
var/datum/db_query/clan_info

/client/proc/load_player_predator_info()
set waitfor = FALSE

if(!SSdbcore.IsConnected())
return // Urgle test without DB... don't make runtime

if(GLOB.roles_whitelist[ckey] & WHITELIST_PREDATOR)
if(!update_clan_info())
return

if(GLOB.roles_whitelist[ckey] & WHITELIST_YAUTJA_LEADER)
clan_info.item[2] = CLAN_RANK_ADMIN_INT
clan_info.item[3] |= CLAN_PERMISSION_ALL
else
clan_info.item[3] &= ~CLAN_PERMISSION_ADMIN_MANAGER // Only the leader can manage the ancients

clan_info.sql = "UPDATE [format_table_name("clan_player")] SET clan_rank = :clan_rank, permissions = :permissions WHERE byond_ckey = :byond_ckey"
clan_info.arguments = list("byond_ckey" = ckey, "clan_rank" = clan_info.item[2], "permissions" = clan_info.item[3])
clan_info.Execute()

clan_info.sql = "SELECT byond_ckey, clan_rank, permissions, clan_id, honor FROM [format_table_name("clan_player")] WHERE byond_ckey = :byond_ckey"
clan_info.arguments = list("byond_ckey" = ckey)
if(!clan_info.warn_execute())
qdel(clan_info)
return
clan_info.next_row_to_take = 1
clan_info.NextRow()

/client/proc/update_clan_info()
if(!SSdbcore.IsConnected())
return // Urgle test without DB... don't make runtime
if(GLOB.roles_whitelist[ckey] & WHITELIST_PREDATOR)
if(clan_info)
clan_info.sql = "SELECT byond_ckey, clan_rank, permissions, clan_id, honor FROM [format_table_name("clan_player")] WHERE byond_ckey = :byond_ckey"
clan_info.arguments = list("byond_ckey" = ckey)
clan_info.next_row_to_take = 1
else
clan_info = SSdbcore.NewQuery("SELECT byond_ckey, clan_rank, permissions, clan_id, honor FROM [format_table_name("clan_player")] WHERE byond_ckey = :byond_ckey", list("byond_ckey" = ckey))
clan_info.no_auto_delete = TRUE
if(!clan_info.warn_execute())
qdel(clan_info)
return
if(!clan_info.NextRow())
clan_info.sql = "INSERT INTO [format_table_name("clan_player")] (byond_ckey, clan_rank, permissions, clan_id, honor) VALUES (:byond_ckey, 0, 0, 0, 0)"
clan_info.Execute()

clan_info.sql = "SELECT byond_ckey, clan_rank, permissions, clan_id, honor FROM [format_table_name("clan_player")] WHERE byond_ckey = :byond_ckey"
if(!clan_info.warn_execute())
qdel(clan_info)
return
clan_info.next_row_to_take = 1
clan_info.NextRow()
return TRUE
else
return FALSE

/client/proc/usr_create_new_clan()
set name = "Create New Clan"
set category = "Debug"

if(!SSdbcore.IsConnected())
return

if(!clan_info)
return

if(!(clan_info.item[3] & CLAN_PERMISSION_ADMIN_MANAGER))
return

var/input = tgui_input_text(src, "Set name to clan", "Clan Name")

if(!input)
return

to_chat(src, span_notice("Made a new clan called: [input]"))

create_new_clan(input)

/client/verb/view_clan_info()
set name = "View Clan Info"
set category = "OOC"

var/clan_to_get

if(!has_clan_permission(CLAN_PERMISSION_VIEW))
return

if(!clan_info)
to_chat(src, span_warning("You don't have a yautja whitelist!"))
return

if(clan_info.item[3] & CLAN_PERMISSION_ADMIN_VIEW)
var/datum/db_query/db_clans = SSdbcore.NewQuery("SELECT id, name, description, honor, color FROM [format_table_name("clan")]")
if(!db_clans.warn_execute())
qdel(db_clans)
return
var/list/clans = list()
while(db_clans.NextRow())
clans += list("[db_clans.item[2]]" = db_clans.item[1])

qdel(db_clans)

clans += list("People without clans" = null)

var/input = tgui_input_list(src, "Choose the clan to view", "View clan", clans)

if(!input)
to_chat(src, span_warning("Couldn't find any clans for you to view!"))
return

clan_to_get = clans[input]
else if(clan_info.item[4])

var/options = list(
"Your clan" = clan_info.item[4],
"People without clans" = null
)

var/input = tgui_input_list(src, "Choose the clan to view", "View clan", options)

if(!input)
return

clan_to_get = options[input]
else
clan_to_get = null

SSpredships.clan_ui.clan_id_by_user[mob] = clan_to_get

SSpredships.clan_ui.ui_interact(mob)

/client/proc/has_clan_permission(permission_flag, clan_id, warn = TRUE)
if(!update_clan_info() || !clan_info || length(clan_info.item) != 5)
if(warn)
to_chat(src, "You do not have a yautja whitelist!")
return FALSE

if(clan_id)
if(clan_id != clan_info.item[4])
if(warn)
to_chat(src, "You do not have permission to perform actions on this clan!")
return FALSE


if(!(clan_info.item[3] & permission_flag))
if(warn)
to_chat(src, "You do not have the necessary permissions to perform this action!")
return FALSE

return TRUE

/client/proc/add_honor(number)
if(!clan_info)
return FALSE

clan_info.sql = "UPDATE [format_table_name("clan_player")] SET honor = :honor WHERE byond_ckey = :byond_ckey"
clan_info.arguments = list("byond_ckey" = ckey, "honor" = number + clan_info.item[5])
clan_info.Execute()

clan_info.sql = "SELECT byond_ckey, clan_rank, permissions, clan_id, honor FROM [format_table_name("clan_player")] WHERE byond_ckey = :byond_ckey"
clan_info.arguments = list("byond_ckey" = ckey)
if(!clan_info.warn_execute())
return
clan_info.next_row_to_take = 1
clan_info.NextRow()

if(clan_info.item[4])
var/datum/db_query/target_clan = SSdbcore.NewQuery("SELECT id, name, description, honor, color FROM [format_table_name("clan")] WHERE id = :clan_id", list("clan_id" = clan_info.item[4]))
if(!target_clan.warn_execute())
return
target_clan.NextRow()
target_clan.sql = "UPDATE [format_table_name("clan")] SET honor = :honor WHERE id = :clan_id"
target_clan.arguments = list("clan_id" = clan_info.item[4], "honor" = number + target_clan.item[4])
target_clan.Execute()
qdel(target_clan)

return TRUE
44 changes: 44 additions & 0 deletions RUtgmc/code/modules/clans/rank.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/datum/yautja_rank
var/name

var/limit_type
var/limit

var/permissions = CLAN_PERMISSION_USER_VIEW
var/permission_required = CLAN_PERMISSION_USER_MODIFY

/datum/yautja_rank/unblooded
name = CLAN_RANK_UNBLOODED
permission_required = CLAN_PERMISSION_ADMIN_MODIFY

/datum/yautja_rank/young
name = CLAN_RANK_YOUNG

/datum/yautja_rank/blooded
name = CLAN_RANK_BLOODED

/datum/yautja_rank/elite
name = CLAN_RANK_ELITE

limit_type = CLAN_LIMIT_SIZE
limit = 5

/datum/yautja_rank/elder
name = CLAN_RANK_ELDER

limit_type = CLAN_LIMIT_SIZE
limit = 12

/datum/yautja_rank/leader
name = CLAN_RANK_LEADER

permissions = CLAN_PERMISSION_USER_ALL
permission_required = CLAN_PERMISSION_ADMIN_MODIFY
limit_type = CLAN_LIMIT_NUMBER
limit = 1

/datum/yautja_rank/ancient
name = CLAN_RANK_ADMIN

permission_required = CLAN_PERMISSION_ADMIN_MANAGER
permissions = CLAN_PERMISSION_ADMIN_ANCIENT
7 changes: 7 additions & 0 deletions RUtgmc/code/modules/clans/ship.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/obj/effect/landmark/clan_spawn
name = "clan spawn"

/obj/effect/landmark/clan_spawn/New()
. = ..()
SSpredships.init_spawnpoint(src)
qdel(src)
22 changes: 22 additions & 0 deletions RUtgmc/code/modules/cm_preds/_yaut_defines.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
//Gear select defines
#define YAUTJA_GEAR_GLAIVE "The Lumbering Glaive"
#define YAUTJA_GEAR_WHIP "The Rending Chain-Whip"
#define YAUTJA_GEAR_SWORD "The Piercing Hunting Sword"
#define YAUTJA_GEAR_SCYTHE "The Cleaving War-Scythe"
#define YAUTJA_GEAR_STICK "The Adaptive Combi-Stick"
#define YAUTJA_GEAR_SPEAR "The Nimble Spear"
#define YAUTJA_GEAR_SCIMS "The Fearsome Scimitars"
#define YAUTJA_GEAR_LAUNCHER "The Fleeting Spike Launcher"
#define YAUTJA_GEAR_PISTOL "The Swift Plasma Pistol"
#define YAUTJA_GEAR_DISC "The Purifying Smart-Disc"
#define YAUTJA_GEAR_FULL_ARMOR "The Formidable Plate Armor"
#define YAUTJA_GEAR_SHIELD "The Steadfast Shield"
#define YAUTJA_GEAR_DRONE "The Agile Drone"

#define YAUTJA_GEAR_GLAIVE_ALT "The Imposing Glaive"
#define YAUTJA_GEAR_SCYTHE_ALT "The Ripping War-Scythe"

#define YAUTJA_THRALL_GEAR_MACHETE "The Swift Machete"
#define YAUTJA_THRALL_GEAR_RAPIER "The Dancing Rapier"
#define YAUTJA_THRALL_GEAR_CLAYMORE "The Broad Claymore"
#define YAUTJA_THRALL_GEAR_FIREAXE "The Purposeful Fireaxe"
Loading

0 comments on commit bb0e234

Please sign in to comment.