Goody System Enhancement [IMPLEMENTED]

raystuttgart

Civ4Col Modder
Joined
Jan 24, 2011
Messages
9,638
Location
Stuttgart, Germany
Hi guys,

well, I created another Goody System Enhancement. :)
The System is now capable of spawning Hostiles and it can do so immersively.
(This happens when you explore Goodies - there are not only Rewards anymore !!!)

Several new XML tags have been added to Goodies already.
The System works for Water and Land Goodies / Goody Huts.

But you need to configure it correctly so it works.
Otherwise the Goody will simply be invalid and never be triggered.
(It will not cause any exceptions or stuff like that.)

The XML file that has been changed:
  • CIV4GoodyInfo.xml
The important tags you need to use for this:
(More might follow when I work on the System next time - in another release)

<UnitClass>UNIT_HOSTILE_NATIVE</UnitClass> <-- Defines the Type of Hostile Unit(s) it adds
...
<bUnique>1</bUnique> <-- Ensures that it is triggered only once (all of those new Hostile ones should be unique)
...
<iMinTurnValid>10</iMinTurnValid> <-- Allows to set Min Turn for being triggered (considers Gamespeed)
<iRandNumHostilesSpawned>3</iRandNumHostilesSpawned> <-- Max Random Number for Hostiles
<bSpawnHostileUnitsAsXML>0</bSpawnHostileUnitsAsXML> <-- Immersion Setting: Only Use Goodies that can also Spawn normal Units (e.g Camp Fires / Sunken Ships)
<bSpawnHostileAnimals>0</bSpawnHostileAnimals> <-- Immersion Setting: Only Use Wild Animal Caves
<bSpawnHostileNatives>1</bSpawnHostileNatives> <-- Immersion Setting: Only Use Hostile Native Camps
<bSpawnHostileCriminals>0</bSpawnHostileCriminals> <-- Immersion Setting: Only Use Criminal Camps

---------

Comment:

The System is very AI friendly. :)
The stuff we could create here is otherwise to hard for AI.

Of course these "Hostile Goodys" are also supposed to give rewards.
(e.g. massive Gold, Immigration, massive XP, ...)

So they will always do both at once:
Give you a Reward and also spawn Hostiles.

---------

Stuff like this has now become possible, but it of course needs somebody to configure the Goodies and write the texts in XML. :thumbsup:
  • Crazy Sect of Hostile Jesuit Missionaries
  • Crazy Ranger in the Wildernes
  • Criminal Ambush
  • Native Tribe Raid
  • Raging Wolf Pack
  • Hidden Slaves
  • The Great White Shark
  • Moby Dick
  • ...
---------

@Raubwuerger / @Schmiddie / @Fürstbischof

Since you guys already know how the Goody System works, would you like to create a few new Goodies? :dunno:
If yes, I can explain the System next week and also help if there are problems.

I will still do a few more tests this weekend and will also create a few examples. :thumbsup:
Then I can be sure you guys would have everything you need to create more Goody events.

You are of course free to be creative. :)
Create every new Type of Goody you can come up with. :thumbsup:

---------

Behold ! :mischief:
Your Goodies have now become dangerous ... :satan:

---------

Screenshots will follow once I have created proper Goody Examples. :thumbsup:
(With nice immersive texts ...)

Still need to do a bit for my household now ...
(Cleaning, shopping ... :undecide:)
 
Last edited:
...
Comment:

The System is very AI friendly. :)
The stuff we could create here is otherwise to hard for AI.

Of course these "Hostile Goodys" are also supposed to give rewards.
(e.g. massive Gold, Immigration, massive XP, ...)

So they will always do both at once:
Give you a Reward and also spawn Hostiles.

Will the rewards and hostiles be balanced so that least guarded means least reward and best guarded best reward like it was e.g. in Master of Magic?

Will it be visible how dangerous / rewarding the goody will be? e.g. if I close in on a goody hut - will the scout at any time be able to say - hey, THAT is too much for a lonely scout, better retreat and come back later with reinforcements? Or is it like currently - you step on the goodyhut like stepping on a landmine?

e.g. in MoM a unit sent by the player could enter the goody hut (e.g. magic node), see how and what opponents would lurk there - and run away while the opponents stayed there for the next try.
 
@ConjurerDragon:

Those are the 29 new Unique Goodies I already created:
(Still testing them and still writing proper texts.)

<GoodyType>GOODY_CRAZY_SECT_OF_MISSIONARIES</GoodyType>
<GoodyType>GOODY_HOSTILE_RANGER_IN_THE_WILDERNESS</GoodyType>
<GoodyType>GOODY_SEVEN_CITIES_OF_CIBOLA</GoodyType>
<GoodyType>GOODY_CONQUISTADOR_TREASURE_GUARD</GoodyType>
<GoodyType>GOODY_NATIVES_ON_WAR_PATH</GoodyType>
<GoodyType>GOODY_TREASURE_RUN</GoodyType>
<GoodyType>GOODY_CRIMINAL_CAMP</GoodyType>
<GoodyType>GOODY_DESERTED_MILITIA</GoodyType>
<GoodyType>GOODY_RUNAWAY_NATIVE_SLAVES</GoodyType>
<GoodyType>GOODY_RUNAWAY_AFRICAN_SLAVES</GoodyType>
<GoodyType>GOODY_RUNAWAY_SERVANT</GoodyType>
<GoodyType>GOODY_ARMED_NATIVE_SLAVES_COLONY</GoodyType>
<GoodyType>GOODY_ARMED_AFRICAN_SLAVES_COLONY</GoodyType>
<GoodyType>GOODY_SCALP_HUNTER</GoodyType>
<GoodyType>GOODY_DAMAGED_WAGON_TRAIN</GoodyType>
<GoodyType>GOODY_ESCAPING_SMUGGLING_SHIP</GoodyType>
<GoodyType>GOODY_ATTACKING_PIRATE_FRIGATE</GoodyType>
<GoodyType>GOODY_WOLF_PACK</GoodyType>
<GoodyType>GOODY_GRIZZLY_GRIM</GoodyType>
<GoodyType>GOODY_SEE_YOU_LATER_ALLIGATOR</GoodyType>
<GoodyType>GOODY_MOTHER_BEAR</GoodyType>
<GoodyType>GOODY_WHITE_HUNTER_IN_THE_SNOW</GoodyType>
<GoodyType>GOODY_LYNX_TRAIL</GoodyType>
<GoodyType>GOODY_SHADOW_IN_THE_JUNGLE</GoodyType>
<GoodyType>GOODY_COUGAR_IN_THE_NIGHT</GoodyType>
<GoodyType>GOODY_GREAT_WHITE</GoodyType>
<GoodyType>GOODY_MOBY_DICK</GoodyType>
<GoodyType>GOODY_KRAKEN_ARMS</GoodyType>
<GoodyType>GOODY_ORCA_SCHOOOL</GoodyType>
  • Some of them are just flavour ! (e.g. 3 Crazy Missionaries that are "hostile" but can not even attack you.)
  • Others may spawn hostiles but give massive rewards in exchange. (e.g. Seven Cities of Cebola)
  • Others e.g. spawn "Hostile Treasures" that run away in different directs. (So you can simply catch them.)
  • Others will be a tough fight - and give lots of XP - but you still have good chance to escape (e.g. "Scalp Hunter")
  • A few wthers will outright slaugther your Scout (e.g. "Natives on War Path")
  • ...
------

Basically they just tell interesting stories.
I tried to balance threat and reward vey well. :thumbsup:

They are all unique ! You will see them only once a game.
Trust me, they are not going to kill your game. ;)

The System as I currently use it is basically a "Story System" to create flavour. :)
Of course, you could create totally unfair balancing - but I have no intention to do so ...

------

But no, you will not know what you get or how dangerous it is before you trigger the Goody. :)
That would simply be boring. :dunno:

------

By the way:

This is only one of 3 Enhancements I had planned for the Goody System. :)
The other two I will implement once I have time after upcoming release.

This here was just caused by the complaints that "Unique Goodies" were overpowered and triggered too often.

------

Other small comments:


All Unique Goodies are now can only be triggered after their speficic "min turns in game".
Some may be possible to be triggered after 10 / 20 turns already, others only after 30/ 40 turns and again others after 50 / 60 turns.

It can be 100% balanced in XML. :thumbsup:
There is no programming needed to change any Goodies you do not like.

------

This it not a system that tries to be "fair at all costs". :)
This system does whatever matches the unique stories it wants to tell. :thumbsup:
 
Last edited:
I love this idea. This is actually something I was going to eventually bring up. Currently, the negative events from goodie huts aren't interesting at all and mostly just feel bad. Whether it's a native war declaration (restart worthy in the early game) or outright unit deletion via native revenge, it's not a fun mechanic. The idea of getting swarmed makes the exploration phase sound much more interesting as you can explore with an actual military unit (i.e. Conquistador) and not have to worry about it being deleted. It would make the Seasoned Scout immigration roll much less important too. I can't wait!
 
I love this idea.
It is not an idea anymore. It is done. :)
Currently just creating / testing actually Goodies to use this and writing their texts.

With "done" I of course only speak of the Sytem.
Would like to see team and community create more "Story Goodies" with it in the future. :)

This is also just the first part of three further major enhancement I had planned for the Goody System.
(Additionally to the many improvements it already got in the past ...)

It still has a lot of unused potential actually ...

I can't wait!
It will be part of upcoming Release 3.0. :thumbsup:
@Nightinggale and myself however still have a few todos for it.
 
@Kendon @Fürstbischof
Could you guys, please take a look at my texts and improve them where needed for the new (Hostile) Goodies? :thumbsup:

Assets/XML/Text/XML_AUTO_UTF8_GoodyInfo.xml

They start with this here:
TXT_KEY_GOODY_CRAZY_SECT_OF_MISSIONARIES

The new Goodies themselves have not yet been commited though.
(I did not yet have enough time to fully test and balance all 30 new Goodies yet.)
 
@Kendon @Fürstbischof
Could you guys, please take a look at my texts and improve them where needed for the new (Hostile) Goodies? :thumbsup:

Assets/XML/Text/XML_AUTO_UTF8_GoodyInfo.xml

They start with this here:
TXT_KEY_GOODY_CRAZY_SECT_OF_MISSIONARIES

The new Goodies themselves have not yet been commited though.
(I did not yet have enough time to fully test and balance all 30 new Goodies yet.)

German text: It´s an "Ureinwohner", not a "Uhreinwohner". Those live in Black Forest and Switzerland and produce Cocooclocks...
Code:
Ihr habt einen Uhreinwohnerhändler entdeckt, der die Orientierung verloren hatte und Euch nun seine Dienste anbietet.</German>
</TEXT>

Code:
<English>Sir, we have found a Ranger in the Wilderness refusing to talk to us. When we approach anyways he attacked.</English>
<German>Sir, wir haben einen Ranger in der Wildnis gefunden, der sich weigerte mit uns zu reden. Als wir uns dennoch näherten griff er uns an.</German>
Sounds better IMO: "When we approach anyway he attacks."
Why the past tense? Is that not supposed to be the text that appears when I, as the player, run a unit over the goody hut so that whatever happens, will happen right in that moment?

Code:
<German>Dies scheint ein Lager voller Krimineller und Gesetzloser zu sein. Lasst uns ihnen Recht und Gottesfürchtigkeit beibringen.</German>
Would "Gottesfurcht" not suffice instead of Gottesfürchtigkeit?

Code:
<Tag>TXT_KEY_GOODY_DESERTED_MILITIA</Tag>
<English>Sir, it seems we have found a coward that fled from his duties from the colonial militia. Let us bring him to justice.</English>
<German>Sir, es scheint wir haben einen Feigling gefunden, der vor seinen Pflichten in der Kolonialmiliz geflohen ist.</German>

Should that event talk about a coward/Feigling? If he fled from his duties why not a deserter/einen Fahnenflüchtigen?

Code:
<Tag>TXT_KEY_GOODY_RUNAWAY_AFRICAN_SLAVES</Tag>
<English>Sir, we have found runaway African Slaves. Let us catch them and bring them back to their owners.</English>
<German>Sir, wir haben entlaufene Sklaven gefunden. Lasst uns sie ihren rechtmäßigen Besitzern zurückbringen.</German>

English text specifies AFRICAN slave. German translation omits that info."entlaufene afrikanische Sklaven..."

Code:
<German>Sir, wir sind über einen Schwarzbärin mit ihrem Jungen gestolpert. Die Mutter stürmt nun auf uns zu um </German>

eine Schwarzbärin
 
Hehe.

@raystuttgart looks like you just find out in the new unique examples 2 which are so similar for mines. :lol:
Hope that is not a problem if there are not just MOTHER_BEAR but bear family too. :mischief:

Would you please upload here the new CIV4GoodyInfo.xml ?
Find just this jet.

Are there a limit how long (?) the text can be in
Assets/XML/Text/XML_AUTO_UTF8_GoodyInfo.xml
 
Are there a limit how long (?) the text can be in
The text parser in the exe can't handle more than 10240 characters in a single string. Some locations will have issues displaying a lot of text, but if it's a place where a scrollbar shows up if there isn't enough room, then I believe the 10240 is the limit.

As for that window specifically I can't think of anything to do other than trial and error to see if it fits.
 
I've gone through the English, making the action more immediate. See what you think.
Thanks, I have just tested and all texts look fine. :thumbsup:

Here are a few Screenshots. :)
(Posted only 5 examples now - in total I already created 30 Hostile Goodies.)

Careful this is kind of difficult to see at first - those are Screenshots from my massive testing in Worldbuilder.
(I created about 200 Goodies so I could catch all of these "Unique Goodies" - normally each Goody also has a "min turn" of its own - which I deactivated for testing though.)

For Understanding:

The Hostile Units spawn on the same Plot as the Goody Hut (you just triggered).
The next turn they will move to a plot next to you and attack or run away.

Thus in the Screenshot take a look at the selected Unit.
(Below it you will see some enemy Unit in the Unit Bar - Unit Icons.)

Spoiler :






 

Attachments

  • Civ4ScreenShot0012.jpg
    Civ4ScreenShot0012.jpg
    408.4 KB · Views: 272
  • Civ4ScreenShot0016.jpg
    Civ4ScreenShot0016.jpg
    387.6 KB · Views: 289
  • Civ4ScreenShot0018.JPG
    Civ4ScreenShot0018.JPG
    379.8 KB · Views: 276
  • Civ4ScreenShot0019.JPG
    Civ4ScreenShot0019.JPG
    335.7 KB · Views: 280
  • Civ4ScreenShot0020.JPG
    Civ4ScreenShot0020.JPG
    346.5 KB · Views: 275
Last edited:
@team and supporters:

Guys, have fun playing with the new "Hostile Goody System". :thumbsup:

It is fully tested and working perfectly. :)
(It is incredibly easy to use now - all just XML.)

30 examples are now available to you. :)
That should thus easily allow you to create your own "Hostile Goodies".
 
Last edited:
@modmod:

I have just yet made the system fully available to team and supporters in the internal team chat.
It is available in our current internal development branch - that can be accessed by everybody.

But you would need to be able to compile to use it - because it is intended for modders to work and test with it.
It is really "heavily in work" and not yet intended for players. (Every change we make can also introduce bugs.)
 
Last edited:
@ConjurerDragon

Thanks for reporting. :thumbsup:

I mass produce such texts so other team members understand what I intend and then write better texts. :)
(Then I focus again on doing coding and configuration.)

@Fürstbischof

Could you take a look at these and improve my texts? :thumbsup:
(Will be a bit busy next week - tomorrow is actually my birthday. :mischief:)
 
Last edited:
When it will be available for the public then? :)
As soon as we finally finish our "Todo-List" for upcoming Release 3.0. :dunno:

Every single time we think:
"Hey, we almost have all we need and can start test phase for the next Release!"
somebody from community finds a new bug or posts an improvement request ... :hmm:

How should we ever finish and publish a release like that ... :aargh:;)
 
Last edited:
@Fürstbischof

Thanks a lot for your text revision and massive improvements. :hug:

This feature (In terms of the System and enough examples) is now basically "Implemented".
Further "Unique Goodies" can of course always be added. :thumbsup:
 
Still goodie system enchancement.
This is not about
spawning Hostiles
But asked here to decide does it worth a separate topic, or not.

Can be added special goodies, which appear only on top of bonuses?
Only on special bonuses like: XY goodie can be only top of any food bonus, or fur bonus, etc...
So goodies which are depend on yield type (or on the exact bonus resource).
 
Can be added special goodies, which appear only on top of bonuses?
...
Are you talking about Goodies? Or are you talking about Goody Huts?
Technically those are 2 completely different things.

For Goody Huts it is already possible to configure to only be valid and thus only placed if they are on specific Bonus Ressources.
But what would be the Use Case for having special Goodies to only be triggered if the Plot has a specific Bonus Ressource?

We can do a lot but I only invest my time if there is a real reason for gameplay.
 
Last edited:
Are you talking about Goodies? Or are you talking about Goody Huts?
Technically those are 2 completely different things.

For Goody Huts it is already possible to configure to only be valid and thus only placed if they are on specific Bonus Ressources.
But what would be the Use Case for having special Goodies to only be triggered if the Plot has a specific Bonus Ressource?

We can do a lot but I only invest my time if there is a real reason for gameplay.

Mmmh, e.g.
- spawn a rampaging Bison stampede on a bison bonus resource that tramples any road or improvement or unit into obliovion;
- when you set your first whaler to sea give an event about Melville´s Moby Dick and let a very typically coloured Whale spawn on a whale bonus resource that actively seeks out whaling ships,
- show a picture of Bambi´s dying daddy when a player first puts an expert hunter on a deer bonus resource to his bloody work,
- let a Chtulhu-like Kraken-Creature spawn on a fish bonus resource next to the coast that (what no other seaanimal can) reaches out and draws the first player unit from land down below the waves while mumbling "Ph’nglui mglw’nafh Cthulhu R’lyeh wgah’nagl fhtagn"...
- let a smugglers ship spawn on a fish bonus resource that closes in on your next port and offers an incredible discount on a shipment of a random good and label it "fishy business",

- have a scout discover strange circles in a square with a corn bonus resource and give the player the option to give the Captains Scully and Engineer Moulder the order to find out more about it...
- have the rabbit of Caerbannion spawn on a beaver resource and massacre the biggest death stack of the player with the largest military and the only way to stop it is to surround it on all sides with Evangelists reciting the text about the holy handgrenade of Antiocheia - or an Expert Hunter pointing out that he is a bunny not a beaver...

-
 
Last edited:
Top Bottom