Home » MODDING HQ 1.13 » Flugente's Magika Workshop » New feature: Take prisoners, interrogate them
New feature: Take prisoners, interrogate them[message #312705]
|
Mon, 03 December 2012 01:54
|
|
Flugente |
|
Messages:3507
Registered:April 2009 Location: Germany |
|
|
As I am widely known as a downright pacifist, I of course took offence with JA2's kill-only policy. Due to this, I have implemented the option to capture enemies alive.
To capture an enemy alive, you handcuff him (new item #1625 [currently with placeholder pic]). Take handcuffs in your main hand, and click on a person. The handcuff cursor will indicate wether this is possible at all. You will be successful on unconscious enemies all the time. Other enemies will of course resist, in which case you might be unsucessful.
By handcuffing, an enemy will be effectively out of combat. He will no act in combat anymore (apart from standing up after explosions etc. - so to speak, he still has reflexes, but that's about it). Once the battle finishes (any remaining enemies are dying or handcuffed), a small dialogue will pop up:
By selecting 'Let them go', you will release the prisoners. A percentage of them will return to the queen's army, the rest will decide they had enough of this conflict.
If you select a sector, the prisoners will be sent to prison there (only sectors you control are shown). There are 5 prisons in Arulco: Tixa and Alma have the biggest, Chitzena, Cambria and San Mona have very small ones. Plus the not-so secret one near Meduna.
Regardless of the option you choose, the captured enemies will drop their equipemnt according to the ini rules prior to going to prison.
Every hour it is checked wether the prisoners in your prisons will revolt. This happens when
- nobody guards this prison
- the prison is overcrowded, and the prisoners vastly outnumber the guards. The higher the prisoner/guard ratio, the higher the chance of a riot. The 'guard value' depends on the number and quality of militia you have there, and the stats and traits of the mercs you have here. It is very wise to have someone at your prisons, you know...
A riot causes ALL of the prisoners to arm themselves in this sector. So if you keep 50 prisoners in Tixa and have a riot there, a riot will cause 50 enemies to spawn there. You propably don't want that
Now, why would you even take prisoners, apart from being human-friendly? Your mercs can interrogate prisoners in these prisons by using the correct facility. Every hour that they interrogate, they 'process' prisoners of war, and the following efects can happen:
- a prisoner can join your cause and become a member of your militia
- a prisoner might give you some helpful information about the army - he might tell you about patrols you do not yet know about, een about their exact number or the direction they might be travelling
- a prisoner's family (or is it really the queen?) might pay ransom for his release.
- a released prisoner that does not join your militia might still rejoin the army.
This symbol (a prison chair illuminated by one of those interrogation-type lamps) indicates Stephen means business.
Before you ask: Due to my overall peacefulness, it will not be possible to torture prisoners. (In the trunk, in other mods that might be different). Not true as of r5896 and GameDir r1613: The prisoners of war you have caught and transferred to your prisons will actually appear in the tactical map.
Our team has taken quite a few prisoners, which are now in their cells in the liberated Alma prisons.
For every prisoner we caught, one will appear on the map (provided there is still room in the civilian team there). They are divided on the prison cells. They will not go hostile, since they are totally defenseless, as you've already taken their gear earlier...
However, harming them has negative repercussions: Loyalty in he next town will slightly lowered, as it dawns to the local population that the so-called liberators of Arulco are as brutal as the army. Naturally, killing prisoners of war removes them from your 'prisoner pool'.
They also have fitting dialogue, where they mock you, plead for mercy, or offer something for their release.
How many prisoners a merc can interrogate every hour depends on his stats, experience, personality and even gear (waving a shotgun under their tongues might get some people to speak their mind more clearly.
Note that the AI will get alerted if you handcuff prisoners. So stealthily handcuffing an entire sector will not work easily
This feature is in the trunk since r5709, note that GameDir r1568 is required due to the new mouse cursor symbols. Savegame version number has been raised, however, this is still savegame compatible.
What I still plan to do, but have not yet gotten around too, is to add boni to mercs with a prison guard (Bull, Bubba) or Law enforcement (Raider, Rudolf, ...) background. These boni would make them superior at being a guard or interrogator. This would be used to determine a merc's 'background', so other mercs get boni for being veterans, lawyers, arms dealers, drug addicts, gang members, athletes, crazy people etc.
The handcuffs currently have placeholder images, as I suck at pictures.
I still plan to allow the player to offer the enemy a surrender option, might add that in the future. -> r5714 has this
New Entries in ini's and xml's:
Ja2options.ini:
;******************************************************************************************************************************
; Prisoner system
;******************************************************************************************************************************
; can you capture enemy soldiers?
ALLOW_TAKE_PRISONERS = TRUE
; can you offer enemies a surrender option?
ENEMY_CAN_SURRENDER = TRUE
; display surrender values on asking for surrender. Helpful if you wonder why the enemy does no surrender at overhelming odds.
DISPLAY_SURRENDER_VALUES = TRUE
; the higher this value, the more superiority you need over the enemy for them to surrender. Range: 2.0 - 10.0
SURRENDER_MULTIPLIER = 5.0
; can you offer your own surrender to the enemy? This will not work while certain quests are active, or if the enemy already asked
; you to surrender, and you refused
PLAYER_CAN_ASK_TO_SURRENDER = TRUE
; chance that released soldiers join the army again
PRISONER_RETURN_TO_ARMY_CHANCE = 50
; chance that interrogated soldiers decide to join your cause (they will be turned into militia)
PRISONER_DEFECT_CHANCE = 25
; chance that interrogated soldiers can give info on enemy positions
PRISONER_INFO_BASECHANCE = 25
; chance that interrogated soldiers detect a specific patrol (a soldier can detect only one max)
PRISONER_INFO_DETECT_CHANCE = 5
; chance that interrogated soldiers can give info on enemy numbers
PRISONER_INFO_NUMBER_CHANCE = 30
; chance that interrogated soldiers can give info on enemy movement directions
PRISONER_INFO_DIRECTION_CHANCE = 40
; chance that interrogated soldiers get you ransom money
PRISONER_RANSOM_CHANCE = 25
PRISONER_INTERROGATION_POINTS_ADMIN = 80
PRISONER_INTERROGATION_POINTS_REGULAR = 100
PRISONER_INTERROGATION_POINTS_ELITE = 140
PRISONER_INTERROGATION_POINTS_SPECIAL = 250
APBPConstants.ini:
;***********************************************************************
;* The APs needed build a fortification structure *
;***********************************************************************
AP_FORTIFICATION = 180
;***********************************************************************
;* The APs needed to eat *
;***********************************************************************
AP_EAT = 80
;***********************************************************************
;* The APs needed to clean a weapon *
;***********************************************************************
AP_CLEANINGKIT = 80
;***********************************************************************
;* The APs needed to disguise *
;***********************************************************************
AP_DISGUISE = 80
;***********************************************************************
;* The APs needed to handcuff someone
;***********************************************************************
AP_HANDCUFF = 50
Map/FacilityTypes.ml:
is a new INT16 tag that determines how many prisoners are 'normal' for this prison. If inmate numbers are higher than this, riots can occur even if there are guards.
current ItemFlags for Items.xml:
#define EMPTY_SANDBAG 0x00000001 //1
#define FULL_SANDBAG 0x00000002 //2
#define SHOVEL 0x00000004 //4 // a shovel is used for filling sandbags and other building-related tasks
#define CONCERTINA 0x00000008 //8
#define WATER_DRUM 0x00000010 //16 // water drums allow to refill canteens in the sector they are in
#define MEAT_BLOODCAT 0x00000020 //32 // retrieve this by gutting a bloodcat
#define COW_MEAT 0x00000040 //64 // retrieve this by gutting a cow
#define BELT_FED 0x00000080 //128 // item can be fed externally
#define AMMO_BELT 0x00000100 //256 // this item can be used to feed externally
#define AMMO_BELT_VEST 0x00000200 //512 // this is a vest that can contain AMMO_BELT items in its medium slots
#define CAMO_REMOVAL 0x00000400 //1024 // item can be used to remove camo
#define CLEANING_KIT 0x00000800 //2048 // weapon cleaning kit
#define ATTENTION_ITEM 0x00001000 //4096 // this item is 'interesting' to the AI. Dumb soldiers may try to pick it up
#define GAROTTE 0x00002000 //8192 // this item is a garotte
#define COVERT 0x00004000 //16384 // if LBE, any gun inside will be covert. On a gun, it will be covert in any LBE, even if the LBE does not have that tag itself
#define CORPSE 0x00008000 //32768 // a dead body
#define SKIN_BLOODCAT 0x00010000 //65536 // retrieve this by skinning (=decapitating) a bloodcat
#define NO_METAL_DETECTION 0x00020000 //131072 // a planted bomb with this flag can NOT be detected via metal detector. Use sparingly!
#define JUMP_GRENADE 0x00040000 //262144 // add +25 heigth to explosion, used for bouncing grenades and jumping mines
#define HANDCUFFS 0x00080000 //524288 // item can be used to capture soldiers
#define TASER 0x00100000 //1048576 // item is a taser, melee hits with this will drain breath (if batteries are supplied)
current ammoflags for AmmoTypes.xml:
#define AMMO_NEUROTOXIN 0x00000001 //1 // this ammo adds the cyanide drug effect to its target, killing it in a few turns
#define AMMO_BLIND 0x00000002 //2 // this ammo will blind if it hits the head
SectorNames.xml:
What is propably interesting for modders is that you can set up the room numbers via xml. You can specify up to 16 prison room numbers in Map/SectorNames.xml:
I13
Alma
Alma
Alma
Alma
1
100
2
38
39
40
41
42
43
44
45
46
47
48
49
50
51
These are the exact room numbers from the map editor. Prisoners will appear in any sector with a prison facility and specified prison rooms if prisoners are present.
Update: New items include working stun guns, which make capturing enemies alive a bit easier.
Update 2: As of r5740 and GameDir r1576, enemies can also be bound via 'stacks of binders'. Its basically a kit that degrades every time you capture an enemy with it. Pro: Lasts for more than one enemy. Con: You do not gt it back, contrary to handcuffs.
Also, a FacilityType assignment performance tag now influences the performance of your interrogators in that sector. By this you can build really (in-)efficient prisons.
Update 3: r5888 gives us a better dialogue, from where we can choose the exact prison.
Update 4: r5896 and GameDir r1613 give us actual prisoners in the map, placed in the correct prison cells.
Update 5: r6219 and GameDir r1703 give us a prisoner-type differentiation. There are admin/regular/elite prisoners. Advanced prisoners are harder to interrogate, but can become advanced militia, should they join you.
Report message to a moderator
|
|
|
|
|
|
|
Re: New feature: Take prisoners, interrogate them[message #312732]
|
Tue, 04 December 2012 00:12
|
|
Flugente |
|
Messages:3507
Registered:April 2009 Location: Germany |
|
|
Update: r5711 and GameDir r1570 add a stun gun (needs batteries, a hit will deal no damage but knock out an enemy) and pepper spray (blinds target for a few turns if hit in the face from the front) to our non-lethal arsenal. This will make it easier to catch enemies alive. Placeholder images only, perhaps someone could draw some?
This also allows to give Fox something to repel certain desperate people. :bunny:
[Updated on: Tue, 04 December 2012 00:24] by Moderator Report message to a moderator
|
|
|
|
|
|
|
Re: New feature: Take prisoners, interrogate them[message #312743]
|
Tue, 04 December 2012 01:39
|
|
Flugente |
|
Messages:3507
Registered:April 2009 Location: Germany |
|
|
1. Seems reasonable, good idea. Provided there is a simple way to change the name of specific buttons.
2. Well, I made it, that's why :bravo: I'll gladly add a better cursor if someone provides one.
3. That's exactly the way it is. When the target is not knocked down, the chance to arrest depends on your's and the targets stats and traits, and it is pretty hard. To be exact:
// check wether we will be successful
BOOLEAN success = FALSE;
if ( pSoldier->flags.fMercAsleep || pSoldier->bCollapsed )
success = TRUE;
else
{
// check wether we can forcefully handcuff the other soldier, but this will be hard
UINT32 attackrating = 10 * EffectiveExpLevel( this ) + EffectiveStrength( this, FALSE ) + 2 * EffectiveDexterity( this, FALSE ) + EffectiveAgility( this, FALSE );
UINT32 defenserating = 10 * EffectiveExpLevel( pSoldier ) + 2 * EffectiveStrength( pSoldier, FALSE ) + 2 * EffectiveDexterity( pSoldier, FALSE ) + 2 * EffectiveAgility( pSoldier, FALSE );
if (gGameOptions.fNewTraitSystem)
{
attackrating += 25 * NUM_SKILL_TRAITS( this, MARTIAL_ARTS_NT ) + 10 * HAS_SKILL_TRAIT( this, MELEE_NT );
defenserating += 25 * NUM_SKILL_TRAITS( pSoldier, MARTIAL_ARTS_NT ) + 10 * HAS_SKILL_TRAIT( pSoldier, MELEE_NT );
}
else
{
attackrating += 25 * NUM_SKILL_TRAITS( this, MARTIALARTS_OT ) + 25 * NUM_SKILL_TRAITS( this, HANDTOHAND_OT ) + 10 * HAS_SKILL_TRAIT( this, KNIFING_OT );
defenserating += 25 * NUM_SKILL_TRAITS( pSoldier, MARTIALARTS_OT ) + 25 * NUM_SKILL_TRAITS( pSoldier, HANDTOHAND_OT ) + 10 * HAS_SKILL_TRAIT( pSoldier, KNIFING_OT );
}
ReducePointsForFatigue( this, &attackrating );
ReducePointsForFatigue( pSoldier, &defenserating );
if ( Random(attackrating) > Random(defenserating) + 100 )
success = TRUE;
}
[Updated on: Tue, 04 December 2012 01:50] by Moderator Report message to a moderator
|
|
|
|
|
|
Re: New feature: Take prisoners, interrogate them[message #312774]
|
Tue, 04 December 2012 21:42
|
|
Bombrik |
|
Messages:17
Registered:October 2011 Location: Tantallon, Axius |
|
|
Am running into a small issue, game crashes anytime I try and set someone on prison duty. Tried it at Alma and San Mona, and had the same crash error.
"Runtime Error
Press to Exit
File: vobject.cpp
Line: 965
Function: BitVideoObjectToBuffer
Video object index is larger than the number of subimages"
Happened so far when I tried Ira, Sam, my own I.M.P., Beth, Sparky, Raven and Spider on Prison Duty in the aforementioned locations. Have not tried others.
Running latest SVN, in Window Mode at 1024x768 res. Not running any additional modifications. Using Release Build 5712.
Also, is there any way to tell *WHERE* the prisoners end up at?
Gambigobilla1. What is the main difference between stun gun and dart gun?
2. What happens if i handcuff Mike?
Would love to be able to recruit Mike, or get my hands on a mod that adds Mike but doesn't remove some useful merc, like Spider or Dr. Q.
Report message to a moderator
|
Private
|
|
|
|
|
Re: New feature: Take prisoners, interrogate them[message #312778]
|
Tue, 04 December 2012 23:42
|
|
Flugente |
|
Messages:3507
Registered:April 2009 Location: Germany |
|
|
1. Prisons are facilities (types 3, 21, 22). You can thus define prisons anywhere via xml. These are the 5 standard predefined prisons in Arulco - and there is of course, the hidden prison #6, which is as big as Alma.
Your prisoners are sent to the biggest prison (because having a selection dialogue is surprisingly difficult due to the... inflexible MessageBox-code). Next commit will include a small message as to where they were sent.
2. They are freed by the army, and ALL of them will rearm themselves and join the army here. So if the army frees Tia, and you have 30 prisoners there, the victorious attacker platoon will grow b 30 individuals. Thus, if you want to use a prison and make lots of prisoners, you better guard it well...
Report message to a moderator
|
|
|
|
|
|
Re: New feature: Take prisoners, interrogate them[message #312818]
|
Thu, 06 December 2012 01:52
|
|
Flugente |
|
Messages:3507
Registered:April 2009 Location: Germany |
|
|
@Sandro: Exactly my plan. So I'll leave this open for you to put it in, thank you :bunny:
Update: As of r5714, we can finally turn the tables and ask the army to surrender to us. If they accept, all remaining, non-dying enemies will become prisoners, and the battle will effectively end.
At the moment, the decision on wether the enemy will surrender is very simple (pseudocode):
if ( 2 * number of mercs + number of militia >= 6 * number of enemies)
SurrenderToPlayer();
This can be fleshed out, but I'll wait for thoughts on this.
[Updated on: Thu, 06 December 2012 02:57] by Moderator Report message to a moderator
|
|
|
|
Re: New feature: Take prisoners, interrogate them[message #312820]
|
Thu, 06 December 2012 02:42
|
|
Sam Hotte |
|
Messages:1965
Registered:March 2009 Location: Middle of Germany |
|
|
1. Could you take type of enemy and militia into account? Like e.g. blackshirts never surrender to green militia or red shirts surrender to fewer opponents than elites?
2. In a battle without militia your equation results in "a normal player squad of 6 mercs can only make the very last enemy surrender". Wouldn't a ">=" fit better?
[Updated on: Thu, 06 December 2012 02:42] by Moderator Report message to a moderator
|
Sergeant Major
|
|
|
|
|
|
|
|
|
Re: New feature: Take prisoners, interrogate them[message #312838]
|
Thu, 06 December 2012 20:53
|
|
TBCoW |
|
Messages:6
Registered:December 2012 |
|
|
Hi.
I have such idea. Each side (attacking and defending) should have psychological strenght level. It is varied by:
-Current health state
-Experience
-Leadership
-Morale
-Amount of soliders
-Solider rank
Toggle Spoilerside = (current average team health/ max average team health)*((number of soliders weak * 'persuation level weak')+(number of soliders regular/mercs * 'persuation level regular')+(number of soliders elite * 'persuation level elite')*(highest leadership/100)*(highest experience/10)*(average team morale/100)
Persuation levels:
0,75
Report message to a moderator
|
Private
|
|
|
|
|
|
|
Re: New feature: Take prisoners, interrogate them[message #312911]
|
Sun, 09 December 2012 09:57
|
|
Bombrik |
|
Messages:17
Registered:October 2011 Location: Tantallon, Axius |
|
|
Sometimes when having a merc set to Interrogation Duty, he/she will work on the task for almost, but not quite, an hour, then the "Prisoner" job tag will start flashing red. Switching them off, and then setting other mercs to the task don't seem to solve this, and the prisoners do not become processed. Any idea what this could be?
Edit: Also noticed that, the message about where prisoners are sent, is always the same zone they got captured in.
[Updated on: Sun, 09 December 2012 10:01] by Moderator Report message to a moderator
|
Private
|
|
|
Re: New feature: Take prisoners, interrogate them[message #312915]
|
Sun, 09 December 2012 16:36
|
|
Flugente |
|
Messages:3507
Registered:April 2009 Location: Germany |
|
|
Hmm, never experienced that. Could you upload a savegame, and tell me the exact revision of your exe?
Both fixed in r5721, thanks for spotting this!
[Updated on: Sun, 09 December 2012 17:10] by Moderator Report message to a moderator
|
|
|
|
|
|
Re: New feature: Take prisoners, interrogate them[message #313000]
|
Thu, 13 December 2012 11:04
|
|
sardonic_wrath |
|
Messages:48
Registered:June 2011 |
|
|
that is freakin awesome feature!
Just a thought - since enemy types are already treated differently (surrender strength), what about keeping this distinction when they are imprisoned?
Elite prisoners could be harder to interogate, more likely to reveal intel (or maybe better intel?), and turn into dark blue militia if "recruited", etc, you get the idea.
Question would of course be if the interrogation process would start with elite prisoners, to get valuable results, or with weaker enemies, to empty the cells as fast as possible if a riot seems immenent
Report message to a moderator
|
Corporal
|
|
|
|
|
|
|
|
Goto Forum:
Current Time: Sun Dec 01 22:23:06 GMT+2 2024
Total time taken to generate the page: 0.02917 seconds
|