spying

salindor

Chieftain
Joined
Mar 9, 2009
Messages
6
:borg:I have just start researching modding civ 4 for my 'great idea' (ok I got the idea from some gripping I read about spying but I can't refind the thread that gave me my idea). Right now I am just trying to seperate the 'nice to have' from the requirements. Also trying to get scope for my idea. As the title suggests my idea revolves around the spying portion of the game, I would like to change it to be more like a game of chess. So I thought I would post what I am thinking and get feed back like cool idea, dumb idea, or too hard. As far as my skill level goes, I am going to be much more comfrontable making xml and c++ mods than python mods (very strong in both C++ and xml but have never used python before).

First I wanted to better understand how the current system worked and what was out there. I found the this thread for how spying currently works.

Also I found one mod, super spies. This mod looked like it might be a good base for what I would like; but it just wasn't quite what I was hoping for. Most of the specials all seem set on making spies more powerful; however that may just be the way they decided to describe their mod. I haven't decided if I like thier promotion path yet.

The first thing I would like too is split espionage protection from espionage. My thought is to create a new unit called an agent; whose job is to protect against spies and maybe unrest in general. My thoguht is to give agents a totally different set of missions they can perform; unlike spies their missions can only be performed at home.

By default, empires won't be able to see spies and agents of rival empires.

Thoughts for missions:
Discover spies -- devote engery to discovering spies but not necessarily trying to stop them (but hey after they do their evil tatic your kill off the spy)
Qual unrest -- effectiveness based on current civics i.e. agents start acting like secret police
Protect city infrastructure -- devotes energy to protecting the buildings inside a city and production
Protect resources -- protects all non-city tiles within the agents sight
Capture spy -- my thouhgt is maybe giving a bonus to discovering spies if you don't immediately capture the ones you know about. The idea is sure, the spy might cause damage, but you can use them to discover other spies from the same empire

When spies complete their missions, they will no longer automatically return back to their home city. Instead this game mechanic won't be required because of the introduction of agents and their missions.

Spies will have a new mission of discover agent. This works kind of reverse. This helps you determine where you want your spies to attack from.

Something I thought would be cool, but impractical would be a bribe unit. Basically you bride the unit to switch sides; but unlike traditional bribed units the switch isn't immediate. Instead you can see what the unit sees, and they remain under the control of hte unsuspecting player; until they decide they want to borgify you:borg:. I was thinking the counter to this could be just simply moving the unit unto a large stack, or the deal expires as time passes.

Finally, the last thought was allowing spy specialist to attack to a spy or an agent giving them the abilty to become a double agent. When attached to a spy; the spy gets a new mission to wait for a new agent to be trained. When that happens, they become that new agent and the opposing player gets 'control' over them. However, if they are alone they are completely ineffective; and they are twice as effective on passive esponioge missions. When attached to an agent it is similar; but instead of waiting for the next agent to be trained; it waits for the next spy to be discovered. The original spy is killed and the new double agent takes their place.

There were other thoughts; but I think what I have listed here is quite ambitious. So anyways what are your thoughts?
 
I certainly like the idea of counterespionage, because I hate those stupid spies destroying my infrastructure and buildings! I also miss the classic Civ II mechanic of bribing enemy units...but the thought of the AI bribing mine...I don't like that at all! :) Course, it would be a bit unfair if I could do it but they couldn't!

I don't really understand the double agent portion of your idea though. Maybe I just need to read through it again.

I like these ideas, though I'm not thrilled about them-- don't take it personally, though, because it's not your fault! I just don't like the current Espionage system, so I'm biased against it, sorry. :) I suspect there are others out there, though, that love espionage and will be very excited about these ideas, so don't worry! :)

As for how hard it will be, I really don't know. I have never looked into how espionage or espionage missions work, so I don't know if it's mostly in XML and SDK or Python. Honestly though, if you know C++, Python should be a breeze. I mean, I'm still figuring Python out, but if I can do it, anyone can. Apparently it's easier than C++, so you'll probably be good to go. The hard part will be tracking down all the stuff you need to change/places you need to add stuff.

Sorry I couldn't be more helpful-- others will hopefully be more so! :) Good luck, and again, I do think you have good ideas! :)
 
Bribe Unit, Destroy Unit, Bribe City, Destroy City, Cause Anarchy spy missions are all programed into the game, just unused. They have XML tags in Assets/XML/GameInfo/CIV4EspionageMissionInfo, so bribing a unit can easily be put in place with just XML modding (and the AI may know how to use it, seeing at the XML tags are there. I'd have to check if AI to use it was actually programmed in though).
 
Where are they?
I've looked right now at the files, but i can't anything :(.

Beyond the Sword/Assets/XML/GameInfo/CIV4EspionageMissionInfo

The following XML tags are unused and accomplish those missions:

<iBuyCityCostFactor>0</iBuyCityCostFactor>
<iBuyUnitCostFactor>0</iBuyUnitCostFactor>
<iDestroyUnitCostFactor>0</iDestroyUnitCostFactor>
<iPlayerAnarchyCounter>0</iPlayerAnarchyCounter>

Of course you'd also have to do a little digging in the txt and other files for the names already assigned to them, but those are actually somewhat obvious once you find them:

<Type>ESPIONAGEMISSION_BUY_CITY</Type>
<Description>TXT_KEY_ESPIONAGE_BUY_CITY</Description>

<Type>ESPIONAGEMISSION_BUY_UNIT</Type>
<Description>TXT_KEY_ESPIONAGE_BUY_UNIT</Description>

<Type>ESPIONAGEMISSION_DESTROY_UNIT</Type>
<Description>TXT_KEY_ESPIONAGE_DESTROY_UNIT</Description>

<Type>ESPIONAGEMISSION_PLAYER_ANARCHY</Type>
<Description>TXT_KEY_ESPIONAGE_PLAYER_ANARCHY</Description>

All that is already programmed into the game, all you'd have to do is make a new entry in CIV4EspionageMissionInfo with one of the above headers, and then set the cost using the corresponding XML tag.

(You'd also have to set the stuff you set for all espionage missions, namely use the iCost, iDifficultyMod, bIsPassive, bIsTwoPhases, bTargetsCity, or bSelectPlot tags depending on how you want the espionage mission to function).
 
Back
Top Bottom