Complete.Org: Mailing Lists: Archives: freeciv-dev: August 2001:
[Freeciv-Dev] Re: [Patch] Watchtower v3
Home

[Freeciv-Dev] Re: [Patch] Watchtower v3

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Daniel L Speyer <dspeyer@xxxxxxxxxxx>
Cc: Sebastian Bauer <sebauer@xxxxxxxxxxx>, freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: [Patch] Watchtower v3
From: Raimar Falke <hawk@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 31 Aug 2001 17:58:00 +0200
Reply-to: rf13@xxxxxxxxxxxxxxxxxxxxxx

On Fri, Aug 31, 2001 at 11:46:31AM -0400, Daniel L Speyer wrote:
> 
> On Fri, 31 Aug 2001, Raimar Falke wrote:
> 
> > On Fri, Aug 31, 2001 at 10:40:26AM -0400, Daniel L Speyer wrote:
> > > On Fri, 31 Aug 2001, Raimar Falke wrote:
> > > 
> > > [snip lots of stuff]
> > > 
> > > > My opinion on the other discussion: In the long term I would also like
> > > > to see rulesets just as a preset server variables. Each ruleset
> > > > variable/server variable/property is protected by a certain cmdlevel.
> > > > 
> > > > To get structure I would propose a java properties like syntax:
> > > > 
> > > > units.unit_worm_riders.name="Worm Riders"
> > > > units.unit_worm_riders.obsolete_by="unit_armorname"
> > > > units.unit_worm_riders.attack=6
> > > > units.unit_worm_riders.defend=2
> > > > units.unit_worm_riders.move=3
> > > > 
> > > > Note: the string "unit_worm_riders" doesn't matter. It can also be
> > > > "unit56".
> > > > 
> > > > It is easy to understand and parse. It allows arbitrary complex nested
> > > > structures.
> > > > 
> > > 
> > > This is awfully bulky, especially to be typed in at command line
> > > (especially to be typed in at the command line, especially for players
> > > without readline).  What about a varient using the javascript (maybe java
> > > too) syntax like this?
> > > 
> > > with units.worm_riders{
> > >   name="Worm Riders"
> > >   obsolete_by=armor
> > >   attack=6
> > >   defend=2
> > >   move=3
> > > }
> > 
> > Can this really be typed easier? The java property syntax is perfect
> > for just changing some settings. An in addition to this we can add a
> > -r command line option to the client.
> 
> I'd still allow changing a few settings with java syntax, but if you just
> want to introduce a new unit, retyping it's name for all its properties
> would become a major nuscience, enough to discourage most players (enough
> to discourage *me*, at least).  Remember that an actual unit has 23
> fields.  I think a full definition of worm_riders would use 17 non-default
> settings (using my guesses about defaults and the unit's
> properties.)  That's an awful lot to type.

What about a "copy units.settlers units.super_settlers"?

> As I've been working on implementation, I've noticed that the .s and the
> 'with' token are extraneous.  We could have a syntax like
> 
> units worm_riders {attack=6 defense=2}
> units mech_inf defense=7
> units{del transport del battleship}
> del {techs computers}
> 
> allowing arbitrary whitespace, of course.

IMHO whitespace is a bad delimiter. IMHO a lot of the people will
understand it with "." or "/".

> I'm not sure how robust it can be, but it is unambigous.  Unfotunately,
> the braces around "techs computers" do appear to be nessesary.
> 
> > 
> > > If the user wants, still allow specifying the whole thing each time, but
> > > it isn't required.  There should also be a delete command:
> > > 
> > > with units{
> > >   delete transport
> > >   delete cruiser
> > >   delete aegis_cruiser
> > >   delete battleship
> > > }
> > 
> > del units.worm_riders
> 
> del is fine.  Actually, there's no reason not to define both.
> 
> > 
> > > and a flush command:
> > > 
> > > flush techs
> > > 
> > > for creating a new set from scratch.
> > 
> > Do you mean flush or clear here?
> > 
> 
> I mean get rid of everything there.  clear would probably be a better
> word, since flush connotates a buffer, though iptables uses flush, so I'm
> not completely alone :)
> 
> > > Wishlist features would include wildcards
> > > 
> > > units.*.fp=1
> > > 
> > > and arithmetic
> > > 
> > > units.destroyer.move+=1
> > > 
> > > but these are a little way off ;).
> > 
> > Nice.
> 
> Actually, the more I think about it, the more trouble I have with wildcard
> syntax.  'Change properties of all units beginning with "d"' wouldn't be
> very useful.  Can anyone think how this should be done?

If you are really trying to do this you could put wildcards at the end
of your todo list.

        Raimar

-- 
 email: rf13@xxxxxxxxxxxxxxxxx
 "> WHY?! Isn't it better to put $(shell cat cscope.files) on the list of
  I only have a yellow belt in makefile kungfu.  These fancy gnu make things
  are relatively new to some of us..."
    -- Mark Frazer to Vassilii Khachaturov in linux-kernel


[Prev in Thread] Current Thread [Next in Thread]