Difference between revisions of "User:Inutt/CodingIdeas"

From Flexible Survival
Jump to: navigation, search
(Editplayer and details)
(Coding ideas: Update)
 
(42 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== Coding ideas ==
 
== Coding ideas ==
  
<div style="margin:2em 3em; padding: 0.2em 1em; border-radius:2em; text-align:center; background-color:rgb(184,6,6); color:white; box-shadow: 0 0 10px 10px rgb(184,6,6)">
+
{{Note
<p style="margin:0">
+
| Icon = warning
Please note: These are '''just ideas''' that I've had and are not necessarily well thought out, are in '''no particular order''', have '''no guarantee of ever actually happening''', may be either impossible or inadvisable, and may contain nuts.
+
| Content = Please note: These are '''just ideas''' that I've had and are not necessarily well thought out, are in '''no particular order''', have '''no guarantee of ever actually happening''', may be either impossible or inadvisable, and may contain nuts.
</p>
+
}}
</div>
+
<css> div.mw-body-content ul { list-style: none; text-indent: -1.2em } code { border-radius: 0.6em }</css>
<span style="color:#03fcfc; font-weight:bold">&#x2610;</span>
+
 
<span style="color:#20fc03; font-weight:bold">&#x2611;</span>
+
 
<span style="color:#fc2003; font-weight:bold">&#x2612;</span>
+
<span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Empty
<css> div.mw-body-content ul { list-style: none; text-indent: -1.2em } </css>
+
<span style="color:#20fc03; font-weight:bold">&#x2611;</span> Tick
 +
<span style="color:#fc2003; font-weight:bold">&#x2612;</span> Cross
 +
For any players not on the staff side of the MUCK feel free to take a look at this list, but it may not make a great deal of sense if you haven't seen the code.
 +
 
  
 
* <span style="color:#20fc03; font-weight:bold">&#x2611;</span> Make indentation consistent <span style="color:#20fc03; font-weight:bold">[Happening as I edit code]</span>
 
* <span style="color:#20fc03; font-weight:bold">&#x2611;</span> Make indentation consistent <span style="color:#20fc03; font-weight:bold">[Happening as I edit code]</span>
Line 24: Line 27:
 
*** Split on ':' into type,name
 
*** Split on ':' into type,name
 
*** If top of stack matches type, add to dict of parameters by name
 
*** If top of stack matches type, add to dict of parameters by name
 +
*** Would be handy for checking the parameters are all present and of the specified type, instead of just pulling the top 'n' things off the stack and breaking with a generic error if the wrong things were passed in. (The check could produce a more detailed error message - "[funcname] called from line [x] of [calling program] expected parameters [x,y,z] but got [a,b,c]" or something)
 
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Unify <code>use</code> and <code>+use</code>
 
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Unify <code>use</code> and <code>+use</code>
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Merge/replace hasBoxItem with findBoxItem - they both seem to do the same thing
+
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Replace setBoxProp with setBoxPropVals (suggested by Flora) as it's either as fast or significantly faster in all cases.
** hasBoxItem returns 0 or 1
 
** findBoxItem returns the slot the item is found in or 0
 
** findBoxItem could therefore be used for any binary checks that hasBoxItem is currently used for
 
** hasBoxItem has caching due to many calls from combat code, so that would need considering if merging the functions
 
 
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Find the various places the bodypart list ({ "arms" "ass" "legs" "cock" "head" "torso" "skin" }) is referenced and centralise it.
 
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Find the various places the bodypart list ({ "arms" "ass" "legs" "cock" "head" "torso" "skin" }) is referenced and centralise it.
 
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Add more RP details
 
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Add more RP details
Line 38: Line 38:
 
** Extend RP hotspot to multiple locations
 
** Extend RP hotspot to multiple locations
 
** Needs some kind of frequently visited/RPd at tracking system - pot log tidying process maybe keep a summary when the log is cleared?
 
** Needs some kind of frequently visited/RPd at tracking system - pot log tidying process maybe keep a summary when the log is cleared?
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Collect all fluid production/capacity functions for milk and cum into a single library, and update existing code to refer to it as necessary
+
*** Better tracking would also help implement votes still work if you change location.
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Rewrite +groin to merge actual and real size functions to remove duplicated code
+
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Fix <code>rpo</code> command, and add functionality
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Allow setting player options directly instead of through the editplayer menu
+
** Option to randomise order
 +
** Indicate next person to pose?
 +
** Indicate previous people that posed, for rule-of-3 type groups (rule-of-''n''?)
 +
* <span style="color:#20fc03; font-weight:bold">&#x2611;</span> Collect all fluid production/capacity functions for milk and cum into a single library, and update existing code to refer to it as necessary
 +
* <span style="color:#20fc03; font-weight:bold">&#x2611;</span> Rewrite +groin to merge actual and real size functions to remove duplicated code
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2611;</span> Allow setting player options directly instead of through the editplayer menu
 
** Something like <code>editplayer <option>=<value></code>
 
** Something like <code>editplayer <option>=<value></code>
 
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Sort +gear/prove output in logical groups rather than alphabetical order
 
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Sort +gear/prove output in logical groups rather than alphabetical order
 
** Keep infection props of children together, rather than having them split up by the father prop
 
** Keep infection props of children together, rather than having them split up by the father prop
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Use item tags to organise all items
 +
** Make sure to include a 'not to be handed out by +reward' tag!
 +
*** 'availability' - used to prevent recipes showing up if they're in-progress, only available via an NPC, or other limited sources. Text field. Code (currently) only checks for existence.
 +
*** 'reward?' - if defined, means the recipe is '''not''' valid for <code>+reward</code>. Should probably be renamed 'no reward'. Currently binary.
 +
*** 'no bounty' - if defined, means the recipe is not valid for bounties (faction, top tier, makes multiple, etc). Possibly convert to enum? Code only seems to check for existence and in a couple of cases, if it contains the string "No Mako".
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Make commands consistent
 +
** <code>command</code> vs <code>+command</code> vs <code>@command</code> - IC/OOC/backend?
 +
** <code>command/subcommand</code> vs <code>command #subcommand</code> - second form would simplify command action naming
 +
* <span style="color:#20fc03; font-weight:bold">&#x2611;</span> Reformat <code>xp</code> for improved readability.
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Automated wiki update check
 +
** Open a +request automatically for anyone that's updated more than a threshold amount on the wiki to award mako
 +
** Would allow for checking it's useful and not spam
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Client-parsable navigation data
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Lore ideas:
 +
** Vegas
 +
** Los Angeles, since game takes place in California
 +
** How supernatural entities exist, sustain their presence, influence the world, etc.
 +
*** How they work out of bubble, have similar powers to nanites
 +
** State of nanite research
 +
*** Use of surface protocols to use nanite mesh communication system for in-bubble comm network by RSX and Zephyr
 +
** Headshot mutant power
 +
** Dr Irving NPC at Tanuki's shrine - why still so hostile after a full decade
 +
** Why manticore infection is only on kaiju island despite its natural size
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Add current patrol points to <code>renew patrol</code> command
 +
** Perhaps also add a <code>renew patrol ''number''</code> to renew to a specific number?
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2611;</span> Extend class/player colouring to everywhere classes/players are listed
 +
* <span style="color:#fc2003; font-weight:bold">&#x2612;</span> <code>+request/search ''text''</code> - Already exists as <code>+request/review ''text''</code>
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> More accessibility?
 +
** Particularly with the ascii-art style progress bars and tables I'm adding, and colour-based information
 +
** Add symbols in addition/instead of colours?
 +
** Replace progress bars with just number?
 +
** There is a screenreader setting in editplayer that could be used to toggle between modes
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Update maps on the wiki
 +
** Could be automated?
 +
** Working on svg/html+css/png from tintin++ mapper
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Sort out ansi_unparseobj getting remapped to glow_unparseobj in Contents(#231) and making things confusing
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> More flexible polling system
 +
** Allow for multiple questions per poll
 +
*** Option A: dislike/neutral/like, Option B: dislike/neutral/like, etc
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Coding standards!
 +
** Where do quest variables go? Pick a location...
 +
** Standardise where types of variable should be kept, document it, and encourage use
 +
** Update all existing quests/stats/players/code to match
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Rejigger social actions
 +
** Could be more integrated with other things like duties, easier to find, have better requirements, more dynamic records based on city stats/player stats etc
 +
** Code and data could do with being organised in a simpler way to too
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Add something to <code>+haz</code> to indicate whether or not you're in the correct location for the daily/boss bounty/RP hotspot?
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Update <code>#dbref getGenderColor #dbref name</code> to use the nameWithGenderColor pubdef in $lib/stdcolors
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2611;</span> Move $lib/stdcolors -> $lib/ui/colors
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Requests system
 +
** More closing statuses to make things clearer (duplicate, converted to mpool, etc)
 +
** Autodetect ''exact'' duplicates from web page reloads to reduce accidental request spam
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Snowball command
 +
** For throwing snowballs during:
 +
*** Winter
 +
*** Snowy (mountain) areas
 +
*** Anywhere with cryo nanomagic
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2611;</span> Sort out use of @rp/owner and @rp/owning_account on specific rooms and tree searching
 +
** Affects +gear/lockconfig, +re, anything else with locks or equipment...
 +
** Should probably be a library function for "does player [x] have control over object [y] in muck terms?"
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Proper bugtracker
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2611;</span> Figure out how room rental works (renting off an existing room/can you rent from a room that's off a rental hub/costs/etc) and update help accordingly.
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Fix organ size table update program
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Fix splitters
 +
** Splitters store active/inactive status as a prop under <code>@rp/misc/<part> splitter</code>, which needs clearing if the splitter is lost/sold
 +
** It's completely different to how other mako toys work by renaming the item
 +
** Unify the names as either 'splitter' or 'divider', not both
 +
* <span style="color:#03fcfc; font-weight:bold">&#x2610;</span> Make perk names and effects consistent
 +
** 'modest appearance' affects ''visible'' size, 'modest cock' affects ''actual size', etc

Latest revision as of 18:34, 10 May 2021

Coding ideas

Icon note warning.png Please note: These are just ideas that I've had and are not necessarily well thought out, are in no particular order, have no guarantee of ever actually happening, may be either impossible or inadvisable, and may contain nuts.



Empty Tick Cross For any players not on the staff side of the MUCK feel free to take a look at this list, but it may not make a great deal of sense if you haven't seen the code.


  • Make indentation consistent [Happening as I edit code]
- It just makes code easier to read, enables code folding, and lining up corresponding if/then statements makes the code vastly easier to parse! (Yes, I know two of those points are the same, but it's an important one)


  • Add prop to players that have womb/other private rooms so they can be found without looping through all room objects - it would just make more sense and improve efficiency
  • Write a parameter checking function - basically an improved checkargs to highlight more clearly when incorrect parameters are passed
    • Check number of supplied parameters is actually on the stack
    • Check type of arguments
    • Something like "str:foo int:bar dbref:baz any:qux" checkparams
      • Check stack depth
      • Split on ' ' and foreach in reverse order
      • Split on ':' into type,name
      • If top of stack matches type, add to dict of parameters by name
      • Would be handy for checking the parameters are all present and of the specified type, instead of just pulling the top 'n' things off the stack and breaking with a generic error if the wrong things were passed in. (The check could produce a more detailed error message - "[funcname] called from line [x] of [calling program] expected parameters [x,y,z] but got [a,b,c]" or something)
  • Unify use and +use
  • Replace setBoxProp with setBoxPropVals (suggested by Flora) as it's either as fast or significantly faster in all cases.
  • Find the various places the bodypart list ({ "arms" "ass" "legs" "cock" "head" "torso" "skin" }) is referenced and centralise it.
  • Add more RP details
    • Chastity belt affects player sex too not just NPCs? - Liquid/gel/goo players able to escape?
    • Scent always comes from skin, even if all other mutations are another species - maybe switch scent to the majority infection as per the new glance code
    • RP tick credit for players in womb room/zipper
  • Encourage RP in more areas
    • Extend RP hotspot to multiple locations
    • Needs some kind of frequently visited/RPd at tracking system - pot log tidying process maybe keep a summary when the log is cleared?
      • Better tracking would also help implement votes still work if you change location.
  • Fix rpo command, and add functionality
    • Option to randomise order
    • Indicate next person to pose?
    • Indicate previous people that posed, for rule-of-3 type groups (rule-of-n?)
  • Collect all fluid production/capacity functions for milk and cum into a single library, and update existing code to refer to it as necessary
  • Rewrite +groin to merge actual and real size functions to remove duplicated code
  • Allow setting player options directly instead of through the editplayer menu
    • Something like editplayer <option>=<value>
  • Sort +gear/prove output in logical groups rather than alphabetical order
    • Keep infection props of children together, rather than having them split up by the father prop
  • Use item tags to organise all items
    • Make sure to include a 'not to be handed out by +reward' tag!
      • 'availability' - used to prevent recipes showing up if they're in-progress, only available via an NPC, or other limited sources. Text field. Code (currently) only checks for existence.
      • 'reward?' - if defined, means the recipe is not valid for +reward. Should probably be renamed 'no reward'. Currently binary.
      • 'no bounty' - if defined, means the recipe is not valid for bounties (faction, top tier, makes multiple, etc). Possibly convert to enum? Code only seems to check for existence and in a couple of cases, if it contains the string "No Mako".
  • Make commands consistent
    • command vs +command vs @command - IC/OOC/backend?
    • command/subcommand vs command #subcommand - second form would simplify command action naming
  • Reformat xp for improved readability.
  • Automated wiki update check
    • Open a +request automatically for anyone that's updated more than a threshold amount on the wiki to award mako
    • Would allow for checking it's useful and not spam
  • Client-parsable navigation data
  • Lore ideas:
    • Vegas
    • Los Angeles, since game takes place in California
    • How supernatural entities exist, sustain their presence, influence the world, etc.
      • How they work out of bubble, have similar powers to nanites
    • State of nanite research
      • Use of surface protocols to use nanite mesh communication system for in-bubble comm network by RSX and Zephyr
    • Headshot mutant power
    • Dr Irving NPC at Tanuki's shrine - why still so hostile after a full decade
    • Why manticore infection is only on kaiju island despite its natural size
  • Add current patrol points to renew patrol command
    • Perhaps also add a renew patrol number to renew to a specific number?
  • Extend class/player colouring to everywhere classes/players are listed
  • +request/search text - Already exists as +request/review text
  • More accessibility?
    • Particularly with the ascii-art style progress bars and tables I'm adding, and colour-based information
    • Add symbols in addition/instead of colours?
    • Replace progress bars with just number?
    • There is a screenreader setting in editplayer that could be used to toggle between modes
  • Update maps on the wiki
    • Could be automated?
    • Working on svg/html+css/png from tintin++ mapper
  • Sort out ansi_unparseobj getting remapped to glow_unparseobj in Contents(#231) and making things confusing
  • More flexible polling system
    • Allow for multiple questions per poll
      • Option A: dislike/neutral/like, Option B: dislike/neutral/like, etc
  • Coding standards!
    • Where do quest variables go? Pick a location...
    • Standardise where types of variable should be kept, document it, and encourage use
    • Update all existing quests/stats/players/code to match
  • Rejigger social actions
    • Could be more integrated with other things like duties, easier to find, have better requirements, more dynamic records based on city stats/player stats etc
    • Code and data could do with being organised in a simpler way to too
  • Add something to +haz to indicate whether or not you're in the correct location for the daily/boss bounty/RP hotspot?
  • Update #dbref getGenderColor #dbref name to use the nameWithGenderColor pubdef in $lib/stdcolors
  • Move $lib/stdcolors -> $lib/ui/colors
  • Requests system
    • More closing statuses to make things clearer (duplicate, converted to mpool, etc)
    • Autodetect exact duplicates from web page reloads to reduce accidental request spam
  • Snowball command
    • For throwing snowballs during:
      • Winter
      • Snowy (mountain) areas
      • Anywhere with cryo nanomagic
  • Sort out use of @rp/owner and @rp/owning_account on specific rooms and tree searching
    • Affects +gear/lockconfig, +re, anything else with locks or equipment...
    • Should probably be a library function for "does player [x] have control over object [y] in muck terms?"
  • Proper bugtracker
  • Figure out how room rental works (renting off an existing room/can you rent from a room that's off a rental hub/costs/etc) and update help accordingly.
  • Fix organ size table update program
  • Fix splitters
    • Splitters store active/inactive status as a prop under @rp/misc/<part> splitter, which needs clearing if the splitter is lost/sold
    • It's completely different to how other mako toys work by renaming the item
    • Unify the names as either 'splitter' or 'divider', not both
  • Make perk names and effects consistent
    • 'modest appearance' affects visible size, 'modest cock' affects actual size', etc