This is the mail archive of the xconq7@sources.redhat.com mailing list for the Xconq project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Cow patties, and keeping them asleep


On Mon, 2004-05-10 at 17:59, mskala@ansuz.sooke.bc.ca wrote:

> automatically wake up whenever the transport wakes up, and the transport
> wakes up whenever an enemy unit comes in sight.  The end result is that
> it destroys playability because the player has to spend most of the time
> putting cow patties back to sleep.
> 
> I tried setting the vision range to -1 and the occupant-vision table to 0
> in order to make cow patties completely blind, especially when inside
> transports, but that didn't help because they aren't seeing the enemy
> themselves; they are waking up because the transport woke up when it saw
> the enemy.

The present wake behavior is not ideal. I had not intended to deal with
it any time soon. Empire Master (an older game engine for the Mac) had
the concept of wake tables, where the designer had access to a table of
checkboxes that had unit types on one axis and wake conditions on the
other. The wake conditions included things such as: enemy seen, enemy
encountered, new land, adjacent to land, etc.... The player could even
set these wake conditions on a per unit basis in a running game
instance. In the long term, it would be nice for Xconq to acquire a
similar capability.

But, in the short term, I might agree that we should make some behavior
modifications. Perhaps, only wake occupants, if enemy attacks transport
or if enemy is within move-range of transport? If enemy seen, then do
not wake occupants?

> Is there anything I can do that will allow players to load and unload cow
> patties when they want to, but not have to deal with them at all on turns
> where they just remain in the transports, regardless of enemy
> action?

I think that the usage of 'acp-occupant-effect' could be modified in the
'compute_acp' function so that a transport's effect on an occupant could
be considered and not just an occ's effect on its transport. The table
name might then be considered a bit of a misnomer, but there are nearly
always two ways to looking at these kind of relationships.

If no one has any objections, then I think something like:

/* Adjust for transport, if in one. */
if (unit->transport) {
  acp = (acp * uu_acp_occ_effect(unit->transport->type, u)) / 100;
}

could go after the for_all_occupants loop. I will patch the code if no
objections are made to this. (I will also update the reporting of the
effect in help.c)

Then you could do something like:

(table acp-occupant-effect add
  (manure-hauler cow-patty 0%)
)

> I've got a crazy idea that maybe the "part transfer" action could be
> used for this.  Instead of having cow patties be separate units all the
> time, maybe they could be "parts" that are attached and detached from
> other units.  I'm not sure how well that would work because I think
> detached parts have to be the same type as the thing they're detached
> from, but it's an idea, anyway.

They must be the same type.

  Regards,
    Eric


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]