[crossfire] Proposal for artifacts changes

Mark Wedel mwedel at sonic.net
Sun Oct 16 15:28:42 CDT 2011


On 10/16/11 04:21 AM, Nicolas Weeger wrote:
> Hello.
>
>
> I'd like to change artifacts handling by introducing archetypes for all
> artifacts combos.
>
> So for instance, for the 'Thieves' artifacts, an archetype named
> '__ring_Thieves' would be generated with the relevant properties, and used for
> the actual ring of Thieves. There would be various '__helmet_(whatever)' for
> helmets, and so on for all artifact possibilities.

  Do you see this as being done automatically (at collect time for example), or 
this all done by hand?  Or some combo?

>
>
> I see various benefits to that.
>
> First, it would be possible to remove totally an artifact, leading to load
> errors warnings and discarding (making a singularity I think) the "actual"
> items this artifact represents.

  In general, using singularities is not a good thing.  I'd have to look at the 
code in particular, but when that happens, all that can happen is that the 
singularity created can only fill in the values that it is reading from the save 
file.  And the save file only contains differences from the artifact, so the end 
result is that the loaded object is likely to be missing a lot of information to 
the extent it probably isn't usable (it may even be missing name information).


> And secondly it enables changing artifacts like other archetypes, with the
> change being applied directly to all existing items, instead of having various
> variants of the artifact.

  And that would be a good thing.  I do wonder if it might make sense to only 
apply this to equipment and not monsters however.  Monsters, being short lived 
and generated at that time, probably don't need archetypes - if the artifact 
gets changed, it is not like there are a bunch of artifact monsters sitting 
about that are out of date.

>
> The drawback I see is the introduction of many temporary archetypes, but I
> guess we can live with that.

  I do wonder if rather than making artifacts for everything, if it would be 
easier to just store a reference to the artifact that an item was created from. 
  I honestly don't really know - the problem with what I suggest is that you 
need to have the logic at load time to go through and look at the artifact, look 
at the original object (clone), and re-apply the artifact changes and see if 
they are different.  So as I think about it, archetypes probably is simpler.

  Few questions/thoughts on this:
- If the archetype for an artifact combo is missing, what happens?  Does the 
server just treat that as an invalid combo and do nothing?  Or something else? 
I'd personally suggest it do nothing - in that way, combos can be further 
tweaked by not having the corresponding archetype.  There are some combos that 
really just don't work - this is because the artifact applies a percentage 
difference to the original, but the original has base values too low such that 
no difference actually results.

- If archetypes for all now exist, does it perhaps then make sense to just make 
up treasurelists for these instead?  Such that the occurrence for these can be 
better tweaked, or more easily seen what the chances are?

>
> What do you think of this proposal?

  Sounds good to me.  One other advantage here is that this would make adding 
artifacts to maps more consistent - one could basically just take the armor or 
helmet or whatever archetype as is, and put it on the map and the right thing 
should happen.


More information about the crossfire mailing list