[BTS 3.17] Super Spies - Standalone

Lord Tirian

Erratic Poster
Joined
Nov 30, 2007
Messages
2,724
Location
Liverpool, UK
SUPER SPIES
[click to download]
v1.31

for Beyond the Sword v3.17, unofficial patch 0.21 included


:espionage: OVERVIEW :espionage:


Super Spies adds seven new promotion lines and another single promotion to spies and allows them to gain experience from successful missions. Espionage buildings are now expanded to grant spies extra experience and cities can convert production into espionage points. Finally, two new espionage missions are added, allowing spies to bribe workers and assassinate great specialists.


:espionage: THE PROMOTIONS :espionage:


Alchemist (I-III): Increases the :yuck: from poisoning missions and can irradiate tiles.
Deception (I-III): Allows the spy to avoid discovery.
Escape Artist (I-II): Allows the spy to escape, even after being caught.
Improviser (I-V): Gives the spy free preparation bonuses.
Informant (I-III): Increases the spy's odds to catch enemy spies and boosts counter espionage.
Instigator (I-III): More unrest from Unhappiness missions and can increase Revolt time.
Logistics (I-III): Increases the spy's movement and can unlock the use of enemy roads.
Loyalty: The spy never reveals his nationality.


:espionage: OPTIONS FOR CITIES :espionage:


Intelligence Agency: Provides new spies with +2 XP.
Security Bureau: Spies start with Informant I promotion.
Scotland Yard: Provides new spies with +3 XP.
Espionage: Allows conversion of production into espionage points (available with Paper)


:espionage: NEW MISSIONS :espionage:


Assassinate: The spy attempts to kill a great specialist in the target city.
Bribe Worker: The spy attempts to bribe a worker.


:espionage: CREDITS:espionage:


Mainly to Trojan Sheep who invented and did most of the work of this mod component and glider1 who took over and integrated it into the BTS scheme of espionage missions (see their great work here, the thread that started all of this... and where most of the work was done). Also thanks to deanej, who did the the "convert into espionage" in the first place. I only did some clean-up to make the Super Spies mod standalone again.

Also many thanks to Dresden, solver and co. who worked on the unofficial patch.
 
Great stuff, may you think up many new missions and ideas that players can choose to turn off or on for this mod. :goodjob: More AI improvement ideas would be great too. Note that already I think the slight reduction in AI poisoning preference via XML in this mod latest mod release, is resulting in better games and more varieties of missions the AI conducts including stealing tech's in the middle ages on a few occasions.

:goodjob:
Cheers.
 
Does this use SDK at all? Or is it simply python/XML?
It's the newest version of Tsheep's Super Spies, hence it's mostly SDK, no python except for a little interface change (showing counter espionage turns remaining) and some XML-changes for the buildings and espionage missions. The meat of it is within the SDK.

If you're asking because you want to merge it, the source code is included (only changed files) and all changes are clearly commented with "Super Spies" (in addition to the original creators comments), hence you don't have to search for glider1's and Tsheeps changes separately, you should be able to find all changes by looking for Super Spies.

Apart from that, it's basically glider1's last version with some new icons. I've learned a lot from it and I plan some new espionage missions for the spies - but to do that properly, I have to work through the entire espionage code and diplomacy coding - and I have a bigger lab project in uni right now, so I'm a bit slow with that...

I just wanted to get this standalone version out quickly for people who want to merge it into their own mods or experiment with it.

By the way, if I can help it, this mod will probably stay SDK based. I'm not a big fan of Python (though I acknowledge that it is an easy and very powerful language... it just doesn't click with me, especially the use of indents) - plus Python is pretty slow and tends to increase the turn time more than SDK additions.

Cheers, LT.
 
In some respects, if this mod is kept totally as SDK, people can probably just drop the DLL straight into their mod, merge the XML and then dress up the SDK in python clothes for their own non-espionage requirements.

Yes that *little* bit of python in this mod is totally dispensible but I'm kinda fond of that little addition to the user interface. It's quite important for humans against the AI, because the AI is very-diligent on ensuring that it maintains counter espionage against it's designated rivals and may hit you if you are slack.

Attached are some old development notes I took while I was caretaking this mod.
Cheers.
 
Wow, I never expected someone to take up the reins on this.

Thank you so much for working with my abomination of coding Lord Tirian and glider1. You guys deserve many props for cleaning up and enhancing this mod, and I really appreciate you putting in the work.

I have to apologize to everyone, I've been going through some personal issues that pulled me away from this amongst other projects. I probably won't do any more modding in the foreseeable future, but I'm really glad you guys got this mod up to date for everyone. I feel absolutely terrible for abandoning it :sad:

Thanks again,

TS
 
@Trojan
Great to hear from ya! Your coding effort back then is still in existence today and continuing to mature and improve. You are a great modder and the quality of your code is cool. It is *not* an abomination! Without your work, I doubt that SS would have happened because it takes a bit of conceptual understanding no question. :goodjob:

Please stay in touch, your abilities would be way handy around here! You certainly didn't abandon the project because you left it in good working order. We found one tiny bug in the code that was causing SDK crashing and then it was absolutely sweet from then on. Not sure about multiplayer....If Lord Tirian is busy with university, I am still actively working with the code at the RevDCM project below. Your code will always be acknowledged even if you do no more work on it.

Glad that at least you are alive and kicking. As far as I remember you broke your arm riding a bike at one point! Stay happy and well brother.

Good stuff
Cheers
 
Without your work, I doubt that SS would have happened because it takes a bit of conceptual understanding no question. :goodjob:
Exactly - it is great and the code was (at least from my point of view) pretty clean and works very well. The only thing that was odd was the implementation of interception... but then, it kept it easy to plug in.
If Lord Tirian is busy with university, I am still actively working with the code at the RevDCM project below. Your code will always be acknowledged even if you do no more work on it.
Ah, by the way, my exams just finished last week! :D

Now I just have to get started again... haven't played Civ IV for toooo long! (it's hard to mod, if FFH2 is looking at you... with a sad neglected gaze) :crazyeye:

Cheers, LT.
 
Thanks guys :)

If I could do it over again I would have definitely avoided piggybacking spy promotions on standard ones, it's more work to make new ones, but it's definitely cleaner.

I actually just played a super spies-ish (The home brew mod I play with has a bunch of other stuff in it too) multiplayer game to completion. The only two things that came up were the SDK crash bug which was easy enough to fix (I think there might be an older version of CvPlayer.cpp in the zip file) and an OOS error that I was already aware of (Allowing people to build espionage with production appears to cause OOS for some reason, haven't investigated it much).

I am also enraptured with FFH2, I actually modded in super spies for my most recent game with it (which was an utter pain, Kael went to great lengths to *not* support espionage in that mod :crazyeye:). My friend and I have been having a lot of fun, but we hit a few amusing moments like managing to mutate a spy (haven't been able to do it again strangely), and realizing the holy city for Emperyean revealed spies thus making them useless as the AI sits there frustratedly trying to do *something* :lol:
 
Good stuff! The focus for RevDCM below is on AI and improving the balance. Got any ideas for the good conditions that an AI spy could use the logistics line? At the moment they don't use it. Another "issue" I'll be looking at soon is why AI spies will sometimes not promote even when promotion is available to them (they have the points). They will wander through enemy territory and enact missions unpromoted. This can put them at a disadvantage when it happens.

Yeah agree with you on the promotions system piggyback but it works ok except for the above and promotions is not something you need to change much once it's working. I did have to change the spy mission system back to BTS defaults so that missions could be added seamlessly. Assassination is just a sample test case for this.

Cheers
 
I'm sure the assassination mission looked bizarre, I was initially planning to do it through standard means, but ended up going with a custom mission so it could be used in friendly lands. In the end though I wasn't really happy with the result.

The variant you added is brutal though, I lost 4 great people to a very persistent AI in that game I mentioned, despite having a Security 3 spy in the city and running a full espionage economy :eek:

To be honest I was too much of a wuss to leave it in after that game, I wasn't using it, but the AI absolutely loved it. I took one of their capitals intending to give it back after they vassaled, and between then and the end of the war they cleaned the place out of great people since I wasn't guarding it with a spy.

On the logistics promotions, if you wanted simple I'd just say give those attributes a lot of weight as they are a good choice no matter what the AI is thinking of doing. If you wanted complex you could weight it based on the distance to their current espionage focus. Honestly though, given how helpful fast spies are, especially to an AI who doesn't really plan ahead, I'd just go with easy way.

Not sure why they wouldn't be promoting at all, one thing to check would be to make sure the mod is always telling the unit to test for promotions after every possible way of gaining xp. I'm fairly certain that's in place for standard missions, but maybe it's missing for escaping or catching other spies... and now that my curiosity is piqued I just looked at the code and spies that catch spies aren't being told to test for promotions... DOH! Another bug brought to you by the amazing Trojan Sheep :smoke:
 
On the logistics promotions.....
Not sure why they wouldn't be promoting at all....

Thanks Trojan. All good points. I should have thought about catching all spy promotion opportunities and checking them! As for logistics, probably will just add it in as a probability promotion with no context logic for it....

Missions are now BTS format, so assassination can be turned off or adjusted via standard XML in /gameinfo/civ4espionagemissioninfo. Good news that assassination has actually happened. In RevDCM super spies below, it happens very rarely if at all. I've turned down the city poisioning rate a touch in xml as well to allow more of the other similar cost missions to come through. The whole espionage mission choice code is simple and works but there is a lot that could be done with it in terms of the AI's mission choice based on context!

Keep suggesting code.... Even if you do no hard coding, I'm keeping up with you and will code it myself. RevDCM will stay up to speed and as in the past, I'll keep Lord Tirian updated on the standalone version for people. The other option is that you update the original super spies code under your own project, and those changes will get picked up by people like me.

Cheers.
 
Hi Guys, how would i go about incorporating the Super Spies mod into the Babylon5 mod?(itself a mod of Final Frontier). I'm pretty good at doing the xml and am slowly learning Python but have no clue as to the SDK. It may not even be possible but if it is some instructions on what i would need to do would be very handy.
 
@PsiCorps
You'll probably need to do some reading up on how to compile the SDK. Here are some places to start:
http://forums.civfanatics.com/showthread.php?t=196283&page=1
http://forums.civfanatics.com/downloads.php?do=file&id=10018

Basically, you need to get C++ source files and compile them in a compiler. This creates a single game file CvGameCoreDLL.dll that BTS uses to execute a game. Mods like super spies modify the source files to change the behaviour of the game to suit the mod.

Cheers.
 
This is just a suggestion, but one of the features I miss the most from Civ 2 spies was the ability to detonate a "nuclear device" in enemies cities. It had the same affect as an ICBM, but if the mission was successful, no one knew who did it but the perpetrator. When the spy got caught, war was generally declared. It would be nice to see if adding this would be possible.
 
I do not know if there is interest for this, but faichele added a lot more missions in the WoC for super spies. I cut them down in WoC Lite.

Here is a dll I did, but I am no expert. It adds 7 missions to the Great Spy and a popup if captured to deny he is your spy or not. It also adds a Great Spy AI since there was not a new AI in vanilla Civ4 for the unit.

http://forums.civfanatics.com/downloads.php?do=file&id=12205

I tried to merge the newer RevDCM spy stuff with the WoC stuff in the RevDCM merge, but you guys might want to look at it better. Anyway just to let you guys know. Faichele made more stuff in the WoC Full involving criminal organizations, police, and city leaders.
 
Which mod are you trying to include? The WoC Lite Super Spies? Or are do you mean the original mod [BTS 3.17] Super Spies - Standalone that this thread is about?
 
Top Bottom