[Freeciv-Dev] [bug #19176] Tech loss vs root_req

2014-06-27 Thread Jacob Nevins
Update of bug #19176 (project freeciv):

  Status:  Ready For Test = Fixed  
 Open/Closed:Open = Closed 


___

Reply to this item at:

  http://gna.org/bugs/?19176

___
  Message sent via/by Gna!
  http://gna.org/


___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] [bug #19176] Tech loss vs root_req

2014-06-25 Thread Jacob Nevins
Update of bug #19176 (project freeciv):

  Status:None = Ready For Test 
 Assigned to:None = jtn
 Planned Release: = 2.5.0, 2.6.0   

___

Follow-up Comment #2:

 I think it's OK to hard-code this immunity.
Attached patch does so.

(file #21155)
___

Additional Item Attachment:

File name: trunk-S2_5-techloss-rootreq.patch Size:2 KB


___

Reply to this item at:

  http://gna.org/bugs/?19176

___
  Message sent via/by Gna!
  http://gna.org/


___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] [bug #19176] Tech loss vs root_req

2014-06-08 Thread Jacob Nevins
Follow-up Comment #1, bug #19176 (project freeciv):

 Perhaps self-root_req'd techs should just be immune to being 
 lost in this way?
Split this out to bug #22161, keeping this one for the general case:

 (I suspect that techs with non-self root_reqs cause trouble 
 too; I don't see anything stopping you losing a tech that's a 
 root_req for another tech, and that will probably upset lots 
 of code.)
To put it another way: root_reqs try to establish an invariant that at all
times players must possess root_req(tech) to possess tech, and tech loss
drives a bus through that invariant.

Cases:

Tech loss through negative bulbs. This picks a random tech
(pick_random_tech_researched()), so can with a bit of calculation avoid techs
which are root_reqs for others.

techlost_donor (which is peculiar in many ways) is more problematic, since
it's about a specific technology. If we enforce the invariant that root_reqs
can never be lost, then donor can avoid possibility of forgetting techs by
only giving away those which something else depends on. That might actually be
OK in gameplay terms -- only giving away your latest technology is risky to
you.

I think it's OK to hard-code this immunity. Ruleset authors who don't want it
can not use root_reqs.
(Otherwise, we have to ensure that the game engine always copes with not
having root_reqs.)

___

Reply to this item at:

  http://gna.org/bugs/?19176

___
  Message sent via/by Gna!
  http://gna.org/


___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] [bug #19176] Tech loss vs root_req

2014-06-08 Thread Jacob Nevins
Update of bug #19176 (project freeciv):

  Depends on: = bugs #22161


___

Reply to this item at:

  http://gna.org/bugs/?19176

___
  Message sent via/by Gna!
  http://gna.org/


___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] [bug #19176] Tech loss vs root_req

2011-12-11 Thread Jacob Nevins

URL:
  http://gna.org/bugs/?19176

 Summary: Tech loss vs root_req
 Project: Freeciv
Submitted by: jtn
Submitted on: Mon Dec 12 02:14:16 2011
Category: None
Severity: 3 - Normal
Priority: 5 - Normal
  Status: None
 Assigned to: None
Originator Email: 
 Open/Closed: Open
 Release: 
 Discussion Lock: Any
Operating System: None
 Planned Release: 

___

Details:

A long time ago (bug #16855 comment 13
http://gna.org/bugs/?16855#comment13), Matthias noted that a feature of the
multiplayer ruleset is problematic if tech upkeep is enabled.

There's a self-root_req'd tech called Theory of Evolution which is granted
by Lua script when Darwin's Voyage is first built -- this is intended to
stop repeatedly gaining the free advances the script also gives you at that
point.

Notwithstanding that that's broken currently (bug #18394), and regardless of
whether that's a good way to achieve that end, this raises a general question
-- if self-root_req'd techs, which must be granted by special means (init_tech
or Lua), are lost through lack of tech_upkeep, there may be no way to get them
back, and there's no way to defend against this -- the lost tech is chosen
randomly.

Perhaps self-root_req'd techs should just be immune to being lost in this
way?

(I suspect that techs with non-self root_reqs cause trouble too; I don't see
anything stopping you losing a tech that's a root_req for another tech, and
that will probably upset lots of code.)




___

Reply to this item at:

  http://gna.org/bugs/?19176

___
  Message sent via/by Gna!
  http://gna.org/


___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev