Antagonist reputation system

User avatar
CPTANT
Joined: Mon May 04, 2015 1:31 pm
Byond Username: CPTANT

Antagonist reputation system

Post by CPTANT » #386669

https://github.com/tgstation/tgstation/ ... -369786663

Why are we punishing people for playing the job they want to play?
Timberpoes wrote: Tue Feb 14, 2023 3:21 pm The rules exist to create the biggest possible chance of a cool shift of SS13. They don't exist to allow admins to create the most boring interpretation of SS13.
User avatar
TribeOfBeavers
In-Game Game Master
Joined: Wed Jun 15, 2016 6:54 pm
Byond Username: TribeOfBeavers
Location: Canada

Re: Antagonist reputation system

Post by TribeOfBeavers » #386670

I'm pretty sure it's not enabled at the moment.
User avatar
cedarbridge
Joined: Fri May 23, 2014 12:24 am
Byond Username: Cedarbridge

Re: Antagonist reputation system

Post by cedarbridge » #386671

Because not every play style needs to be catered to and antag rolling is one of those play styles.
User avatar
CPTANT
Joined: Mon May 04, 2015 1:31 pm
Byond Username: CPTANT

Re: Antagonist reputation system

Post by CPTANT » #386672

cedarbridge wrote:Because not every play style needs to be catered to and antag rolling is one of those play styles.
If preventing antag roling is the goal then distributing antag repuation based on what role you choose is entirely bullshit.
Timberpoes wrote: Tue Feb 14, 2023 3:21 pm The rules exist to create the biggest possible chance of a cool shift of SS13. They don't exist to allow admins to create the most boring interpretation of SS13.
User avatar
cedarbridge
Joined: Fri May 23, 2014 12:24 am
Byond Username: Cedarbridge

Re: Antagonist reputation system

Post by cedarbridge » #386673

CPTANT wrote:
cedarbridge wrote:Because not every play style needs to be catered to and antag rolling is one of those play styles.
If preventing antag roling is the goal then distributing antag repuation based on what role you choose is entirely bullshit.
Its certainly not the method I'd have chosen for a similar system, but there is some merit to assigning higher value to higher demanding roles like heads of staff. Most of the rest past the heads of staff seems really arbitrary.
User avatar
SpaceInaba
Joined: Wed Sep 21, 2016 1:03 pm
Byond Username: SpaceInaba
Location: everyone's favorite sjw

Re: Antagonist reputation system

Post by SpaceInaba » #386675

I dont want antag rollers stealing my headrole slots thanks
Spoiler:
ImageImageImage
fuck,
User avatar
Nabski
Joined: Thu Oct 20, 2016 5:42 pm
Byond Username: Nabski
Github Username: Nabski89
Location: TN

Re: Antagonist reputation system

Post by Nabski » #386676

I dislike that being a starting member of a team antag still takes all your tickets.
I dislike the arbitrary point spreads.

I like the idea of making it more likely to roll antag if you haven't lately and less likely if you just got it.
I like that theres a minor punishment for roundstart suicides built in.
User avatar
BeeSting12
Joined: Sat Apr 16, 2016 1:11 am
Byond Username: BeeSting12
Github Username: BeeSting12
Location: 'Murica

Re: Antagonist reputation system

Post by BeeSting12 » #386680

Not a fan of this. People shouldn't be punished for playing the job they want to play. This will encourage sec/head incompetence because they're going for those extra tickets. It makes it easier to tell who's antag: "This guy has gone sec the last five rounds and is now assistant, hmmmmm wonder why."

To quote Repukan: "People using assistant for antag rolling is an administrative issue and trying to use this solution honestly opens a can of worms in balance and being able to meta who is an antagonist."

People get bans for this shit and you can easily report it if you want to. I saw a dude get antag banned over me and a couple other players reporting his antag rolling behavior and there's several people who have notes for antag rolling behavior.
Edward Sloan, THE LAW
Melanie Flowers, Catgirl
Borgasm, Cyborg
Spoiler:
OOC: Hunterh98: to be fair sloan is one of the, if not the, most robust folks on tg

DEAD: Schlomo Gaskin says, "sloan may be a faggot but he gets the job done"

DEAD: Rei Ayanami says, "YOU'RE EVERYWHERE WHERE BAD SHIT IS HAPPENING"
DEAD: Rei Ayanami says, "IT'S ALWAYS FUCKING EDWARD SLOAN"
oranges wrote:Bee sting is honestly the nicest admin, I look forward to seeing him as a headmin one day
[2020-05-21 01:21:48.923] SAY: Crippo/(Impala Chainee) "Shaggy Voice - She like... wants to get Eiffel Towered bro!!" (Brig (125, 166, 2))
hows my driving?
User avatar
Oldman Robustin
Joined: Tue May 13, 2014 2:18 pm
Byond Username: ForcefulCJS

Re: Antagonist reputation system

Post by Oldman Robustin » #386682

The bonus between roles is pretty negligible last I checked.

I think the more important aspect of this PR is smoothing out antag distribution so you don't have a week of no-antag and then a day where someone is an antag every round.

Ultimately I'd like to see it used to encourage people to stay active in the round.
Image
Dr_bee
Joined: Fri Dec 23, 2016 6:31 pm
Byond Username: DrBee

Re: Antagonist reputation system

Post by Dr_bee » #386740

My issue is the points being weighted primarily. If you want to do a weighted system just have it be everyone is 20 points and assistant is 10. that way there is no reason for antag roulette shitlords to try to get head of staff every round just so they can grief more later.
EagleWiz
Joined: Sun Aug 06, 2017 5:23 am
Byond Username: EagleWiz

Re: Antagonist reputation system

Post by EagleWiz » #386756

This would make me switch to not signing up for roundstart clock cult/revhead because I dont want to waste the points on that.
Also we already have people who go captain to act like validhunty greyshirts who start with all-access, up to and including handing out access to members of the tide who amuse them and then dying in maint somewhere. Lets not encourage this.
User avatar
kevinz000
Joined: Fri Nov 14, 2014 8:41 am
Byond Username: Kevinz000
Github Username: kevinz000
Location: Dorm Room 3

Re: Antagonist reputation system

Post by kevinz000 » #386769

Right, no. This gives head of staff and ai players up to 2x roll chance.
Yes, hos/sec/captain can't roll head positions, but the other heads and the ai definitely can and I don't think higher chances of some of the most powerful roles getting more antag rolls is a good thing.
Also i don't want the average antag roller incentivized to play important positions unless admins crack down on incompetence and shittery, for the same reasons as why an assistant cap is shit.
User avatar
PKPenguin321
Site Admin
Joined: Tue Jul 01, 2014 7:02 pm
Byond Username: PKPenguin321
Github Username: PKPenguin321
Location: U S A, U S A, U S A

Re: Antagonist reputation system

Post by PKPenguin321 » #386774

cedarbridge wrote:Because not every play style needs to be catered to and antag rolling is one of those play styles.
but the system doesnt even necessarily punish people who just go assistant to roll antag because they can still roll antag, it just encourages them to steal head roles because that gives them an even better chance of rolling antag
i play Lauser McMauligan. clown name is Cold-Ass Honkey
i have three other top secret characters as well.
tell the best admin how good he is
Spoiler:
Image
User avatar
kevinz000
Joined: Fri Nov 14, 2014 8:41 am
Byond Username: Kevinz000
Github Username: kevinz000
Location: Dorm Room 3

Re: Antagonist reputation system

Post by kevinz000 » #386776

PKPenguin321 wrote:
cedarbridge wrote:Because not every play style needs to be catered to and antag rolling is one of those play styles.
but the system doesnt even necessarily punish people who just go assistant to roll antag because they can still roll antag, it just encourages them to steal head roles because that gives them an even better chance of rolling antag
Which is exactly the problem, people will play important jobs just to get antag without wanting to play it which means they're definitely not going to try half the time anyways.
User avatar
PKPenguin321
Site Admin
Joined: Tue Jul 01, 2014 7:02 pm
Byond Username: PKPenguin321
Github Username: PKPenguin321
Location: U S A, U S A, U S A

Re: Antagonist reputation system

Post by PKPenguin321 » #386777

kevinz000 wrote:
PKPenguin321 wrote:
cedarbridge wrote:Because not every play style needs to be catered to and antag rolling is one of those play styles.
but the system doesnt even necessarily punish people who just go assistant to roll antag because they can still roll antag, it just encourages them to steal head roles because that gives them an even better chance of rolling antag
Which is exactly the problem, people will play important jobs just to get antag without wanting to play it which means they're definitely not going to try half the time anyways.
exactly
i play Lauser McMauligan. clown name is Cold-Ass Honkey
i have three other top secret characters as well.
tell the best admin how good he is
Spoiler:
Image
User avatar
Oldman Robustin
Joined: Tue May 13, 2014 2:18 pm
Byond Username: ForcefulCJS

Re: Antagonist reputation system

Post by Oldman Robustin » #386812

ITT everyone acts like every assistant has a calculator out and will sit through a stress and scrutiny of playing as a head of staff so they can get a 5% higher chance at an antag roll.
Image
onleavedontatme
Joined: Fri Mar 13, 2015 10:26 pm
Byond Username: KorPhaeron

Re: Antagonist reputation system

Post by onleavedontatme » #386879

Moved this out of coding feedback as it is a config option under control of the headmins/host.
EagleWiz
Joined: Sun Aug 06, 2017 5:23 am
Byond Username: EagleWiz

Re: Antagonist reputation system

Post by EagleWiz » #386884

Oldman Robustin wrote:ITT everyone acts like every assistant has a calculator out and will sit through a stress and scrutiny of playing as a head of staff so they can get a 5% higher chance at an antag roll.
The ... scrutiny? You can just take your hardsuit and fly off exploring stuff in space. You can just take your baton, make cable-cuffs and wander maint waiting to validhunt. The only scrutiny here is that someone might call you names if your really bad at your job, which is not something assistant players care about. Also you don't need a calculator to understand "if you start with a baton and better access you have a higher chance at antag"

A system that disincentives early suicide is great, but trying to stop people playing assistant via code disincentives is just going to result in the same old greytide in a new job. People are not disallowed from running around the station stealing,valid-hunting, smashing things,causing escalation issues, not contributing to anything and just being a general annoyance. A number of people find that playstyle fun. There isn't going to be a code solution to this issue because its not a game design problem, its a people problem.

Also as for the weights why the heck is cargo tech, at least as much an actual job as Medical Doctor worth 14 points, while Lawyer, a job which consists mainly of PDA spamming the crew is worth 17 points? (I'd also downgrade Janitor, a role that consists mainly of making the halls wet as a permitted form of griefing, and Botanist, which I just kinda associate with tide-like shenanigans)
User avatar
Gigapuddi420
Joined: Fri May 19, 2017 8:08 am
Byond Username: Gigapuddi420
Location: Dorms

Re: Antagonist reputation system

Post by Gigapuddi420 » #386976

Oldman Robustin wrote:ITT everyone acts like every assistant has a calculator out and will sit through a stress and scrutiny of playing as a head of staff so they can get a 5% higher chance at an antag roll.
Seems more like they will misunderstand how little the higher chance is and roll for some non-security roll they can immiedately abandon like Chief Engineer. God knows we get enough useless CE's as it is.

I'm going to echo Beesting and say it would make more sense if it was just penalizing assistant players and everyone else got the same chance (small as it might be).
Imperfect catgirl playing a imperfect game.
User avatar
PKPenguin321
Site Admin
Joined: Tue Jul 01, 2014 7:02 pm
Byond Username: PKPenguin321
Github Username: PKPenguin321
Location: U S A, U S A, U S A

Re: Antagonist reputation system

Post by PKPenguin321 » #387049

Oldman Robustin wrote:ITT everyone acts like every assistant has a calculator out and will sit through a stress and scrutiny of playing as a head of staff so they can get a 5% higher chance at an antag roll.
As if they care about the actual odds. If you hear "playing head roles gives you better antag chances" and you're braindead and only roll for antag every round (and therefore don't care about """stress and scrutiny""") no shit you'll queue up for head roles.
i play Lauser McMauligan. clown name is Cold-Ass Honkey
i have three other top secret characters as well.
tell the best admin how good he is
Spoiler:
Image
User avatar
CPTANT
Joined: Mon May 04, 2015 1:31 pm
Byond Username: CPTANT

Re: Antagonist reputation system

Post by CPTANT » #387135

Kor wrote:Moved this out of coding feedback as it is a config option under control of the headmins/host.
is the config just on off, or can you also set the job weights?
Timberpoes wrote: Tue Feb 14, 2023 3:21 pm The rules exist to create the biggest possible chance of a cool shift of SS13. They don't exist to allow admins to create the most boring interpretation of SS13.
User avatar
Cobby
Code Maintainer
Joined: Sat Apr 19, 2014 7:19 pm
Byond Username: ExcessiveUseOfCobby
Github Username: ExcessiveUseOfCobblestone

Re: Antagonist reputation system

Post by Cobby » #387140

You have to set job weights in the code iirc.

As for the feature itself, I think it's perfectly fine with the understanding admins have full authority to roleban people who aren't doing the job proper.
Voted best trap in /tg/ 2014-current
User avatar
bandit
Joined: Thu Apr 17, 2014 7:35 pm
Byond Username: Bgobandit

Re: Antagonist reputation system

Post by bandit » #387156

This feels like a solution to a different problem: to "we don't have enough people playing important roles," not "we have too many people antag-rolling." Whether the solution actually works, I guess we'll find out..
"I don't see any difference between ERP and rape." -- erro

admin feedback pls
User avatar
Rustledjimm
Joined: Tue Feb 14, 2017 9:07 pm
Byond Username: Rustledjimm

Re: Antagonist reputation system

Post by Rustledjimm » #387161

I've already made said my thoughts on github about this. I am skeptical if it will work in the way the coder intends but I would be willing to test it. I feel like the points need to be heavily nerfed personally but again this will be off by default so we can mess around and tweak it to see if it does improve certain aspects of certain roles.
So uhh, I'm an admin. Please leave feedback! Oops took me a while to strike that through.

Will Baker
Suzu Suzaku
TBC
Spoiler:
Image
Personal Ban Length Record: 2.1024e+006 minutes
User avatar
bandit
Joined: Thu Apr 17, 2014 7:35 pm
Byond Username: Bgobandit

Re: Antagonist reputation system

Post by bandit » #387165

Re: roles and points: I don't know if this is possible in the code (I know we track these stats though) but I'd like to see it dynamically allocated: head of staff/AI roles always have the highest of range, assistant always has the lowest, and then the rest are assigned based on which roles are played least frequently in the last X rounds. This both:

1. Makes it harder to game/to meta: way harder to look up role frequency and do math than to read a list

2. It's impossible to tell this without data and likely impossible even with, but I think this would do a better job as an incentive than these numbers, which beyond the obvious ones seem kind of pulled out of the ass
"I don't see any difference between ERP and rape." -- erro

admin feedback pls
onleavedontatme
Joined: Fri Mar 13, 2015 10:26 pm
Byond Username: KorPhaeron

Re: Antagonist reputation system

Post by onleavedontatme » #387173

CPTANT wrote:
Kor wrote:Moved this out of coding feedback as it is a config option under control of the headmins/host.
is the config just on off, or can you also set the job weights?
I dont think the weights are a config but I will happily merge any PR tweaking the numbers if MSO/headmins sign off on it
User avatar
cedarbridge
Joined: Fri May 23, 2014 12:24 am
Byond Username: Cedarbridge

Re: Antagonist reputation system

Post by cedarbridge » #387176

CosmicScientist wrote:Antag selection was moved before role selection for the sake of security. The question you should ask is "What do I want to play" not "What gets me antag faster"
The problem with that is that, if the goal is fixing antag rolling, is that "what do I want to play" is answers with "antag." And "antag" is usually the answer because Rule 4 exists.
User avatar
cedarbridge
Joined: Fri May 23, 2014 12:24 am
Byond Username: Cedarbridge

Re: Antagonist reputation system

Post by cedarbridge » #387244

CosmicScientist wrote:I'm not quite sure what you're saying so I'm going to go out on a limb and say if players don't want to play non-antag, that's a problem with the game and if some players only want to play antag, then your first post in the thread answers that.
That is what I'm saying. The point of "rolling for antag" is that a certain subsection simply cannot enjoy the game unless they're granted immunity under Rule 4 by rolling antag.
User avatar
CPTANT
Joined: Mon May 04, 2015 1:31 pm
Byond Username: CPTANT

Re: Antagonist reputation system

Post by CPTANT » #387387

Also is it me or do the reputations points per job in the code not even match the points stated in the PR post?
Last edited by CPTANT on Mon Mar 05, 2018 12:47 pm, edited 1 time in total.
Timberpoes wrote: Tue Feb 14, 2023 3:21 pm The rules exist to create the biggest possible chance of a cool shift of SS13. They don't exist to allow admins to create the most boring interpretation of SS13.
User avatar
Cobby
Code Maintainer
Joined: Sat Apr 19, 2014 7:19 pm
Byond Username: ExcessiveUseOfCobby
Github Username: ExcessiveUseOfCobblestone

Re: Antagonist reputation system

Post by Cobby » #387470

the ticket values and the value of the job are different (jobs use a formula to convert into tickets).

I was confused by it as well and probably still am.
Voted best trap in /tg/ 2014-current
EagleWiz
Joined: Sun Aug 06, 2017 5:23 am
Byond Username: EagleWiz

Re: Antagonist reputation system

Post by EagleWiz » #387497

Cobby wrote:You have to set job weights in the code iirc.

As for the feature itself, I think it's perfectly fine with the understanding admins have full authority to roleban people who aren't doing the job proper.
Does this ever happen? Will this ever happen? Unless the new headmin team is radically different from the current one and my expectations I'm pretty sure the answer here is no.
User avatar
kevinz000
Joined: Fri Nov 14, 2014 8:41 am
Byond Username: Kevinz000
Github Username: kevinz000
Location: Dorm Room 3

Re: Antagonist reputation system

Post by kevinz000 » #387509

EagleWiz wrote:
Cobby wrote:You have to set job weights in the code iirc.

As for the feature itself, I think it's perfectly fine with the understanding admins have full authority to roleban people who aren't doing the job proper.
Does this ever happen? Will this ever happen? Unless the new headmin team is radically different from the current one and my expectations I'm pretty sure the answer here is no.
yes we do punish heads of staff for being absolute incompetent shits. no, most of the time you see someone incompetent it prooobably isn't a warn/bannable degree unless they never change, but if someone crosses the line we will intervene.
User avatar
CPTANT
Joined: Mon May 04, 2015 1:31 pm
Byond Username: CPTANT

Re: Antagonist reputation system

Post by CPTANT » #387539

Cobby wrote:the ticket values and the value of the job are different (jobs use a formula to convert into tickets).

I was confused by it as well and probably still am.
I just looked at the code and I can't see that behaviour anywhere. But even if that happens then it doesn't match what is said in the PR.

In the code I see this:

Code: Select all

 code/controllers/subsystem/job.dm	
405 - SSpersistence.antag_rep_change[M.client.ckey] += job.antag_rep


Altering job rep every round.

Job has a default value of:

Code: Select all

+	//The amount of good boy points playing this role will earn you towards a higher chance to roll antagonist next round
+	var/antag_rep = 0
while the job file for the chaplain for example has a job rep of 4 (while 14 was stated) and captain has 20 (where 20 was stated)

As far as I can tell assistants get zero job rep at all.
Timberpoes wrote: Tue Feb 14, 2023 3:21 pm The rules exist to create the biggest possible chance of a cool shift of SS13. They don't exist to allow admins to create the most boring interpretation of SS13.
User avatar
WarbossLincoln
Joined: Wed Feb 10, 2016 11:14 pm
Byond Username: WarbossLincoln

Re: Antagonist reputation system

Post by WarbossLincoln » #387621

Perhaps a similar system that grants people points based on time spent alive and not afk. Ghost roles wouldn't count, but any form of coming back to life on station would(dieing and being borged would count all your alive time at the end of the round). This would encourage people to not roundstart suicide all the time. Although someone who does that all the time might not be someone we want to encourage to stay alive as an assistant all round, every round.
--Crocodillo

Image
User avatar
oranges
Code Maintainer
Joined: Tue Apr 15, 2014 9:16 pm
Byond Username: Optimumtact
Github Username: optimumtact
Location: #CHATSHITGETBANGED

Re: Antagonist reputation system

Post by oranges » #387682

CosmicScientist wrote:Could someone give a rundown of how the code works from about line 316 because I assume this is where the meat is:
Spoiler:

Code: Select all

var/p_ckey
var/p_rep

for(var/datum/mind/mind in candidates)
	p_ckey = ckey(mind.key)
	total_tickets += min(SSpersistence.antag_rep[p_ckey] + DEFAULT_ANTAG_TICKETS, MAX_TICKETS_PER_ROLL)

var/antag_select = rand(1,total_tickets)
var/current = 1

for(var/datum/mind/mind in candidates)
	p_ckey = ckey(mind.key)
	p_rep = SSpersistence.antag_rep[p_ckey]
	p_rep = p_rep == null ? 0 : p_rep

	if(current <= antag_select)
		var/subtract = min(p_rep + DEFAULT_ANTAG_TICKETS, MAX_TICKETS_PER_ROLL) - DEFAULT_ANTAG_TICKETS
		SSpersistence.antag_rep_change[p_ckey] = -subtract

		return mind

	current += min(p_rep + DEFAULT_ANTAG_TICKETS, MAX_TICKETS_PER_ROLL)
I want to say:
Spoiler:

Code: Select all

for every mind that's a candidate:
	p_ckey = the ckey with the candidate mind(?)
	total tickets += the minimum value, be it the antag reputation assigned to the current mind's ckey + the default tickets as stated in the config, or be it the maximum number of tickets allowed	//because a player's tickets can exceed the maximum?
//now we know how many tickets to expect

antag_select = a random number within our ticket range
current = 1	//starting at the beginning

for every mind that's a candidate:
	p_ckey = the ckey with the candidate mind(?)
	p_rep = the antag reputation of the current mind's ckey
	if p_rep is null then	//dear god I hate single line if statements
		p_rep = 0	//we can't have a valueless reputation, though we're not telling SSpersistence about this
	else
		p_rep = itself because redundant code

	if current, aka our position, is less than or equal to our random antag selection positon	//this is true every time it executes, current = 1 and antag_select = 1 to x, current <= antag_select
		subtract =
			the minimum value, be it the ckey's antag rep + the default tickets, or be it the the most tickets you can roll
			minus the default tickets because reasons
		subtract subtract's value from the ckey's antag rep

		return the mind because we picked them to be antag

	current += the minimum value, be it the ckey's antag rep + the default tickets, or be it the most tickets you can roll	//pointless code, if current is not <= antag_select, increasing current means we will never pick a mind
Also for the sake of admins, I think this needs to be legible to code illiterates but that's only a request, not a demand.

how exactly do we make code legible to people who don't code?
User avatar
CPTANT
Joined: Mon May 04, 2015 1:31 pm
Byond Username: CPTANT

Re: Antagonist reputation system

Post by CPTANT » #387697

oranges wrote:
CosmicScientist wrote:Could someone give a rundown of how the code works from about line 316 because I assume this is where the meat is:
Spoiler:

Code: Select all

var/p_ckey
var/p_rep

for(var/datum/mind/mind in candidates)
	p_ckey = ckey(mind.key)
	total_tickets += min(SSpersistence.antag_rep[p_ckey] + DEFAULT_ANTAG_TICKETS, MAX_TICKETS_PER_ROLL)

var/antag_select = rand(1,total_tickets)
var/current = 1

for(var/datum/mind/mind in candidates)
	p_ckey = ckey(mind.key)
	p_rep = SSpersistence.antag_rep[p_ckey]
	p_rep = p_rep == null ? 0 : p_rep

	if(current <= antag_select)
		var/subtract = min(p_rep + DEFAULT_ANTAG_TICKETS, MAX_TICKETS_PER_ROLL) - DEFAULT_ANTAG_TICKETS
		SSpersistence.antag_rep_change[p_ckey] = -subtract

		return mind

	current += min(p_rep + DEFAULT_ANTAG_TICKETS, MAX_TICKETS_PER_ROLL)
I want to say:
Spoiler:

Code: Select all

for every mind that's a candidate:
	p_ckey = the ckey with the candidate mind(?)
	total tickets += the minimum value, be it the antag reputation assigned to the current mind's ckey + the default tickets as stated in the config, or be it the maximum number of tickets allowed	//because a player's tickets can exceed the maximum?
//now we know how many tickets to expect

antag_select = a random number within our ticket range
current = 1	//starting at the beginning

for every mind that's a candidate:
	p_ckey = the ckey with the candidate mind(?)
	p_rep = the antag reputation of the current mind's ckey
	if p_rep is null then	//dear god I hate single line if statements
		p_rep = 0	//we can't have a valueless reputation, though we're not telling SSpersistence about this
	else
		p_rep = itself because redundant code

	if current, aka our position, is less than or equal to our random antag selection positon	//this is true every time it executes, current = 1 and antag_select = 1 to x, current <= antag_select
		subtract =
			the minimum value, be it the ckey's antag rep + the default tickets, or be it the the most tickets you can roll
			minus the default tickets because reasons
		subtract subtract's value from the ckey's antag rep

		return the mind because we picked them to be antag

	current += the minimum value, be it the ckey's antag rep + the default tickets, or be it the most tickets you can roll	//pointless code, if current is not <= antag_select, increasing current means we will never pick a mind
Also for the sake of admins, I think this needs to be legible to code illiterates but that's only a request, not a demand.

how exactly do we make code legible to people who don't code?
You can start by showing how much antag rep every job actually gets.
Timberpoes wrote: Tue Feb 14, 2023 3:21 pm The rules exist to create the biggest possible chance of a cool shift of SS13. They don't exist to allow admins to create the most boring interpretation of SS13.
User avatar
cedarbridge
Joined: Fri May 23, 2014 12:24 am
Byond Username: Cedarbridge

Re: Antagonist reputation system

Post by cedarbridge » #387731

CosmicScientist wrote:
  • What CPTANT said
  • by not using x == y ? this : that one line if statements
  • by commenting the code to say what it does, not just what it does in summary - some admins are going to have their heads spin before they realise how the code doesn't find out the total number of tickets then flip a coin for each player but instead decide a random value in the pile of tickets and then remove each player's amount of tickets until you hit the originally stated value and the player you are then on gets to become antag, making it more likely for anyone with more tickets to be chosen because that random value will inherently have a higher chance to land on their larger number of tickets, before starting the process over again for each antag
Then that might be enough. Though again, it's a request, I know coders are, like admins, volunteers and anything they do is appreciated.
The only part of this that makes any sense is the "comment your code" thing.
User avatar
cedarbridge
Joined: Fri May 23, 2014 12:24 am
Byond Username: Cedarbridge

Re: Antagonist reputation system

Post by cedarbridge » #387775

CosmicScientist wrote:Nice to know you have faith in all admins understanding what a one line if statement is, how you can use it for assignments and also that we don't need to do what CPTANT said.
What you're asking for mechanically doesn't make sense. You can't simply say "write the code differently" and have the code still do what its intended to do. I have confidence in the coders to know how coding works and to properly explain how something is meant to operate. I don't need them to do that by trying to turn code into something that it isn't.
SpaceManiac
Joined: Fri Sep 22, 2017 4:06 am
Byond Username: SpaceManiac
Github Username: SpaceManiac

Re: Antagonist reputation system

Post by SpaceManiac » #387783

cedarbridge wrote:You can't simply say "write the code differently" and have the code still do what its intended to do.
While "accessible to non-coders" may in some ways be the goal of the BYOND engine, it's a pipe dream in a codebase as large and complex as tgstation. That said, one can write bad code and good code that both get the job done, and good code will be easier to understand. Rewriting code to be understandable to non-coders is futile, but rewriting code to not be a mess is reasonable.
User avatar
Grazyn
Joined: Tue Nov 04, 2014 11:01 am
Byond Username: Grazyn

Re: Antagonist reputation system

Post by Grazyn » #387814

The game is driven by antags. Experienced antags usually make much better antags than blundering ones. Playing skill-intensive roles means you're already experienced, or at the very least you're gaining experience due to the job itself naturally improving your skill. Therefore, it's not a matter of discouraging people from playing greytide, it's a way to have more skilled people play antag, thus making the game more fun for everyone.
User avatar
cedarbridge
Joined: Fri May 23, 2014 12:24 am
Byond Username: Cedarbridge

Re: Antagonist reputation system

Post by cedarbridge » #387853

CosmicScientist wrote:Though I suppose since you know nothing about coding, you have to have faith, because you can do nothing else.
Where was this implied and was it necessary?
User avatar
cedarbridge
Joined: Fri May 23, 2014 12:24 am
Byond Username: Cedarbridge

Re: Antagonist reputation system

Post by cedarbridge » #387930

CosmicScientist wrote:but all of the administration important variables, the var in the job files, is in the code, in all the job files. From this I can assume you know nothing about coding, I can assume you didn't even look at the PR, you don't even care about what this system adds because every time someone wants to make a balance change to how much a player earns so that they can get antag a little faster, you'll have to ring up goof to fire up git, pull the repo, edit a single line, push it up and wait a day before it gets merged and that's only if the maintainers say yes, which is a lot of hoops to jump through, it's what a coder has to do, not an admin or a host and so I chalk that up as you having to have faith because you can't code and you have to get someone else to edit, let alone fix, the new balance rules this code brings in.

So yes, it was necessary, otherwise how would you have faith in a coder like me if I didn't tell you why you shouldn't?
What you've described is what literally everyone who doesn't code has to do with anything code related. I certainly understand code and coding well enough to understand that the function of the code and keeping to coding standards is above the ability of non-coders to sus-meaning out of said code. The two examples you gave are not really much more intelligible to a non-coder than the other. They're just written differently using different structure. So yes, code can be used to do the same thing using different code phrasing, but it doesn't instantly make it mean anything to the average admin with zero coding experience and it really doesn't have to. Its not an admin's job to be a coder and not a coder's job to be an admin.

The only way you're getting around the "call a coder and wait for the one line code change" thing is by making whatever line you expect needs such constant tinkering into a config. Even if we presume the admin in question is a coder and knows what needs to be changed, nothing changes about the PR/merge process. Calling you up and saying "hey can you code a change for X" and just doing it myself changes only the "find a coder to do it" step.

I have faith that the coder made something that does what its intended to do. That's the extent of it. I don't have instant faith that whatever was made is good, perfect, balanced, or even a good idea. I don't even have faith that whatever was coded was coded well. That's not my job as an admin to care. That's why the codebase is maintained by maintainers on a git that is not the administration of the server. If I need to make a change, I can do so by learning what it does and how it does it because I do code. I don't expect other admins to do so because frankly this isn't a job and nobody pays them to do it and it should simply not be expected of anyone.

This has literally nothing to do with the topic of this thread so I'm going to insist that this topic move back to what he thread is for and if you'd like to discuss what I do and don't know about code and who I should and shouldn't have faith in you can DM me.
EagleWiz
Joined: Sun Aug 06, 2017 5:23 am
Byond Username: EagleWiz

Re: Antagonist reputation system

Post by EagleWiz » #388067

Kor wrote:Moved this out of coding feedback as it is a config option under control of the headmins/host.
Jokes on you, now that you moved it to policy discussion it turned into coding feedback.
User avatar
Remie Richards
Joined: Thu Apr 17, 2014 7:11 pm
Byond Username: CrimsonVision
Location: England, UK, Earth, Sol, Milky Way, Local Group, Virgo Supercluster, Known Universe
Contact:

Re: Antagonist reputation system

Post by Remie Richards » #388186

CosmicScientist wrote: Gee, so we should just use the most unintelligible script when an if else takes 5 seconds to understand and the single line abomination takes someone telling you?
If you really can't understand a ternary expression maybe coding for something as complex as SS13 isnt for you? (or whoever)
A full if and else statement for something that is representable in ternary (such as an assignment, this example) is entirely boilerplate.

The only thing that needs changing about the snippet you posted is:

Code: Select all

for(var/datum/mind/mind in candidates)
    p_ckey = ckey(mind.key)
    p_rep = SSpersistence.antag_rep[p_ckey]
    p_rep = p_rep == null ? 0 : p_rep
Into:

Code: Select all

for(var/datum/mind/mind in candidates)
    p_ckey = ckey(mind.key)
    p_rep = SSpersistence.antag_rep[p_ckey] || 0
Thought I bet you'll try and claim that's arcane too?

As for making it accessible for admins, it should just be a config, the point of "its scattered across each job file" is moot, that's entirely correct and fit for purpose, but for non coders it should be a config file.
私は完璧
User avatar
Steelpoint
Github User
Joined: Thu Apr 17, 2014 6:37 pm
Byond Username: Steelpoint
Github Username: Steelpoint
Location: The Armoury

Re: Antagonist reputation system

Post by Steelpoint » #388238

If the issue is some people rolling Assistant to get a antag pick, then suiciding/quitting/etc if they don't, then why not simply have the system have a lower reward chance for just Assistants and a equal chance for everyone else?

That and/also have the system take into account if you play the round to completion or if you leave early. Might get complicated and harder to implement in that regard.

I'm personally all for a system that gives people who've not gotten a antag pick a slightly higher pick chance. I've still never gotten a natural round start Wizard pick, and I can count on one hand the amount of times I've been picked for most other off-station antags naturally.
Image
User avatar
WarbossLincoln
Joined: Wed Feb 10, 2016 11:14 pm
Byond Username: WarbossLincoln

Re: Antagonist reputation system

Post by WarbossLincoln » #388249

Remie Richards wrote:
CosmicScientist wrote: Gee, so we should just use the most unintelligible script when an if else takes 5 seconds to understand and the single line abomination takes someone telling you?
If you really can't understand a ternary expression maybe coding for something as complex as SS13 isnt for you? (or whoever)
A full if and else statement for something that is representable in ternary (such as an assignment, this example) is entirely boilerplate.

The only thing that needs changing about the snippet you posted is:

Code: Select all

for(var/datum/mind/mind in candidates)
    p_ckey = ckey(mind.key)
    p_rep = SSpersistence.antag_rep[p_ckey]
    p_rep = p_rep == null ? 0 : p_rep
Into:

Code: Select all

for(var/datum/mind/mind in candidates)
    p_ckey = ckey(mind.key)
    p_rep = SSpersistence.antag_rep[p_ckey] || 0
Thought I bet you'll try and claim that's arcane too?

As for making it accessible for admins, it should just be a config, the point of "its scattered across each job file" is moot, that's entirely correct and fit for purpose, but for non coders it should be a config file.
There are people who use if/else for a 1 line assignment instead of a ternary?
--Crocodillo

Image
User avatar
Remie Richards
Joined: Thu Apr 17, 2014 7:11 pm
Byond Username: CrimsonVision
Location: England, UK, Earth, Sol, Milky Way, Local Group, Virgo Supercluster, Known Universe
Contact:

Re: Antagonist reputation system

Post by Remie Richards » #388259

On mobile, but will respond once I have a keyboard.
私は完璧
User avatar
CPTANT
Joined: Mon May 04, 2015 1:31 pm
Byond Username: CPTANT

Re: Antagonist reputation system

Post by CPTANT » #388262

Steelpoint wrote:If the issue is some people rolling Assistant to get a antag pick, then suiciding/quitting/etc if they don't, then why not simply have the system have a lower reward chance for just Assistants and a equal chance for everyone else?

That and/also have the system take into account if you play the round to completion or if you leave early. Might get complicated and harder to implement in that regard.

I'm personally all for a system that gives people who've not gotten a antag pick a slightly higher pick chance. I've still never gotten a natural round start Wizard pick, and I can count on one hand the amount of times I've been picked for most other off-station antags naturally.
Why does this have anything to do with playing assistant? People will just antag roll in another role if its only assistants that get punished.
Timberpoes wrote: Tue Feb 14, 2023 3:21 pm The rules exist to create the biggest possible chance of a cool shift of SS13. They don't exist to allow admins to create the most boring interpretation of SS13.
User avatar
WarbossLincoln
Joined: Wed Feb 10, 2016 11:14 pm
Byond Username: WarbossLincoln

Re: Antagonist reputation system

Post by WarbossLincoln » #388263

I learned within a month of working that almost everything my university taught me about coding was pointless outside of the bare basics. Code readability is important, but using a ternary is 100% readable. Readability tanks when you get someone who has to attach interfaces to everything even when there's no reason to and everything turns into a spiderweb of BS. Stuff like that. If value = boolean expression ? val1 : val2; is too complex to read quickly then there's a problem

Hell, my boss would probably send my code back if I wrote:

Code: Select all

IF (Some Boolean Expression)
{
     Value = 1;
}
Else
{
     Value = 2;
}
--Crocodillo

Image
User avatar
CPTANT
Joined: Mon May 04, 2015 1:31 pm
Byond Username: CPTANT

Re: Antagonist reputation system

Post by CPTANT » #388266

cmspano wrote:I learned within a month of working that almost everything my university taught me about coding was pointless outside of the bare basics. Code readability is important, but using a ternary is 100% readable. Readability tanks when you get someone who has to attach interfaces to everything even when there's no reason to and everything turns into a spiderweb of BS. Stuff like that. If value = boolean expression ? val1 : val2; is too complex to read quickly then there's a problem

Hell, my boss would probably send my code back if I wrote:

Code: Select all

IF (Some Boolean Expression)
{
     Value = 1;
}
Else
{
     Value = 2;
}
Ok I think ternary notation is fine and just something people wanting to understand code should learn.

However I do think the overall working of this antag reputation system were rather poorly explained, I think I finally understand how it works. I also had to point it out myself that the stated reputation values didn't even match the ones in the code.
Timberpoes wrote: Tue Feb 14, 2023 3:21 pm The rules exist to create the biggest possible chance of a cool shift of SS13. They don't exist to allow admins to create the most boring interpretation of SS13.
Locked

Who is online

Users browsing this forum: Bing [Bot]