New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BB2016 re-drafting process and NAFLM/OBBLM #204

Open
Halfnir opened this Issue Mar 2, 2017 · 5 comments

Comments

Projects
None yet
6 participants
@Halfnir

Halfnir commented Mar 2, 2017

Hi,

our league just started a new season and used re-drafting for the first time. This caused some issues with the website that i had to solve manually, with some hacks and urgent code adjustments. We are running OBBLM V0.8 (so really old code), if something can be solved in newer version please let me know, but i don't think so.

A, Ignoring MNG from old season

MNGs from old seasons are not carried over by the rule. Pure MNG could be changed to no inj in the match report in OBBLM as a hack, but in case of stat decrease injuries suffered in the last season game, you can not just delete them from the match report, as stat decreases still apply.

I solved this by adding a new_season flag to the team table and team class that is set by an admin or the coach (currently by me on DB level, but it will be moved to admin/coach functions on team management page). If this flag is set, MNG effects of injuries are ignored (changes done to team and stats class for both display in the roster and the TV calculation).

New_season flag will be set to false automatically whenever a match report for the team is saved.
I plan to reuse the new_season flag again for controlling the whole season change process.

B, Possibility to cure Niggling Injuries (needs dice roll)

Rules allow to cure niggling injuries between seasons on a dice roll (so not automatic). Current workaround would be to change the old match report where a cured niggling injury has occured, but this means you have to mess with old game data and spend some time to find the match where a niggling happened.

To enable this better, i plan to add an integer field cured_nigglings to the player table/object. Coaches will be able to record cured nigglings in team management as long as the new_season flag is set for a team, increasing the int value of the field by 1 each. When evaluating the niggling injuries of a player, the code will have to determine all nigglings from old match reports, then deduct the number of cured_nigglings from the player data. (Similiar to how stat increases/decreases are handles today)

I have not implemented this yet.

C, Tracking want-to-retire flag

We have discarded the "wants-to-retire" rule in our league. We have relatively short seasons and this rule would create a lot of trouble as number of season's played is the main metric for this rule. Additionally it would cause coaches to fire ALL players with low SPP (0 SPP is a no-brainer) and rebuy them as new players in the re-draft process as this resets the season counter. This would cause the re-draft process to be more complex and fill up the player table.

But if you would play by the rules as written in Deathzone, you'd need a flag in the player data that carries the wants-to-retire info as long with management functions to set/unset the flag as determined by a dice roll. This flag affects the re-draft costs of a player significantly (+20k*seasons_played)

D, Providing Information about re-draft budget

It would be nice for players to see their current re-draft budget to get a feeling on where it stands compared to their current team value. It can be easily calculated from team stats (1000k + 10k*games_played in last season + 5k * TD+CAS scored in last season).

I have not implemented this, but it should be fairly simple, The budget formula should be configurable as i can imagine that leagues will houserule the budget parameters (e.g. give 20k per game). The calcualation of the budget will be required anyway to implement E

E, Running re-draft process

Our re-draft process was done via paper/email and then adjusting the team roster and treasuries using coach/admin functions. in a larger league this could easily become a nightmare.

Ideally there would be a re-draft page similar to the team creator that allows you to spend your calculated re-draft budget+treasury on existing players, new players and team goods. FF needs to be carried over for free, remaining cash goes to treasury. This page would check the new_seasons flag for eligibility of a team to use this.

Let me know what you think ...
Best regards,
Tim.

@Halfnir

This comment has been minimized.

Show comment
Hide comment
@Halfnir

Halfnir Mar 15, 2017

D and E is implemented for my league.

The design is now as follows:

A: Admin activates Season Change mode for a team via new option in admin panel.
-> new_season property for team is set
B: Admin adjusts treasury for the team according to the total team value (without FF). This can bring the treasury into negative figures.
C: Admin sets the team Ready flag to not ready.

[in future, i plan to provide a function triggered by the coach that does steps A to C automatically]

D: Coach adjusts his team (rather than redrafting from scratch)
-> Fire players gives full refund of player value if new_season is set
-> Drop Team Goods gives full refund of value if new_season is set
-> Buy Team Goods allows to purchase regular price RR and FF if new_season is set

E: Coach sets "Ready to play" Flag for his team, but this function checks if treasury is not negative and will not allow the flag to be set otherwise.

F: Teams that are not set to "ready for play" are removed from the match scheduling screens to keep them from joining a new season until the redraft process is finished.

G: Saving a match report automatically sets new_season to false, removing the refund/purchase options listed under D,

Halfnir commented Mar 15, 2017

D and E is implemented for my league.

The design is now as follows:

A: Admin activates Season Change mode for a team via new option in admin panel.
-> new_season property for team is set
B: Admin adjusts treasury for the team according to the total team value (without FF). This can bring the treasury into negative figures.
C: Admin sets the team Ready flag to not ready.

[in future, i plan to provide a function triggered by the coach that does steps A to C automatically]

D: Coach adjusts his team (rather than redrafting from scratch)
-> Fire players gives full refund of player value if new_season is set
-> Drop Team Goods gives full refund of value if new_season is set
-> Buy Team Goods allows to purchase regular price RR and FF if new_season is set

E: Coach sets "Ready to play" Flag for his team, but this function checks if treasury is not negative and will not allow the flag to be set otherwise.

F: Teams that are not set to "ready for play" are removed from the match scheduling screens to keep them from joining a new season until the redraft process is finished.

G: Saving a match report automatically sets new_season to false, removing the refund/purchase options listed under D,

@rythos42

This comment has been minimized.

Show comment
Hide comment
@rythos42

rythos42 Jun 5, 2017

Lots of great plans here! We'll definitely accept pull requests!

In the mean time, this morning after my commissioner told me to "update your own damn team", I added the Admin ability to remove one niggling injury from a player. It's on the team roster page, in the Admin box, the last item in the drop down list.

rythos42 commented Jun 5, 2017

Lots of great plans here! We'll definitely accept pull requests!

In the mean time, this morning after my commissioner told me to "update your own damn team", I added the Admin ability to remove one niggling injury from a player. It's on the team roster page, in the Admin box, the last item in the drop down list.

@gpr

This comment has been minimized.

Show comment
Hide comment
@gpr

gpr Jun 19, 2017

@Halfnir where is the patch please?

gpr commented Jun 19, 2017

@Halfnir where is the patch please?

@jgmorse

This comment has been minimized.

Show comment
Hide comment
@jgmorse

jgmorse Jan 6, 2018

@Halfnir Would you be willing to share your code?

jgmorse commented Jan 6, 2018

@Halfnir Would you be willing to share your code?

@NickJMereel

This comment has been minimized.

Show comment
Hide comment
@NickJMereel

NickJMereel Mar 13, 2018

I'm not clever enough to do this. Can anyone post up the code and tell me where to paste it into my site? 😊

NickJMereel commented Mar 13, 2018

I'm not clever enough to do this. Can anyone post up the code and tell me where to paste it into my site? 😊

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment