Slave skins

Joined
Dec 13, 2004
Messages
155
Location
Estonia (EU)
Hi,

I made skin for slave unit.
LRP unit skins contain:
- Black slave skin
- White slave skin
- Inquisitor skin
- Copper age warrior skin

How to use it for slave:
1. Make a copy of worker folder in C:/.../Sid Meier's Civilization 4/Assets/Art/Units/...
2. rename this copy folder to "Slave"
3. unpack and copy this skin to slave folder (re-write worker_128.dds)
now you have the graphics

To have the unit you have to mod XML
Mod this in custoAssets folder! Do not mod xml in original game folder!
You have to mod xml files
1. make new unit class slave into UnitClasInfos.xml
2. then make new unit slave into UnitInfos.xml
3. make new entri into CIV4ArtDefines.xml make copy of worker lines
4. rename the Type ART_DEF_WORKER to ART_DEF_SLAVE
4. rename the folder worker to slave inside NIF and KFM tags
5. change the UnitMeshGroup in UnitInfos.xml to a ART_DEF_SLAVE
now you have the unit

To get slave as a combat result you just have to mod Snaitf's "Unit Allegence mode" code in CvEventManager.py:

Code:
def onCombatResult(self, argsList):
		'Combat Result'
		pWinner,pLoser = argsList
		playerX = PyPlayer(pWinner.getOwner())
		unitX = PyInfo.UnitInfo(pWinner.getUnitType())
		playerY = PyPlayer(pLoser.getOwner())
		unitY = PyInfo.UnitInfo(pLoser.getUnitType())
		#############################
		## Start Modifaction Block ##
		#############################
		xType = unitX.getUnitCombatType()
		yType = unitY.getUnitCombatType()	
		if (yType != gc.getInfoTypeForString("UNITCOMBAT_SIEGE") and yType != gc.getInfoTypeForString("UNITCOMBAT_ARMOR") and yType != gc.getInfoTypeForString("UNITCOMBAT_HELICOPTER") and yType != gc.getInfoTypeForString("UNITCOMBAT_NAVAL") and yType != gc.getInfoTypeForString("NONE")):
			if (xType != gc.getInfoTypeForString("UNITCOMBAT_HELICOPTER") and xType != gc.getInfoTypeForString("NONE")):
				iRand = random.randint(1, 100)
				if (iRand <= 5):
					newUnit = playerX.player.initUnit(pLoser.getUnitType(), pWinner.getX(), pWinner.getY(), UnitAITypes.NO_UNITAI)
					newUnit.finishMoves()
					newUnit.setDamage(50, False)
					newUnit.setExperience(pLoser.getExperience(), -1)
					newUnit.setLevel(pLoser.getLevel())
					for iCount in range(gc.getNumPromotionInfos()):
						if (pLoser.isHasPromotion(iCount)):
							newUnit.setHasPromotion(iCount, True)

##End Snaitf code and start LittleRedPoint slavery code :) code#################################################

		player = gc.getActivePlayer()	
		xType = unitX.getUnitCombatType()
		yType = unitY.getUnitCombatType()
		unitSlave = gc.getInfoTypeForString("UNIT_SLAVE")
		if (player.isCivic(gc.getInfoTypeForString("CIVIC_SLAVERY"))):
			if (yType != gc.getInfoTypeForString("UNITCOMBAT_SIEGE") and yType != gc.getInfoTypeForString("UNITCOMBAT_ARMOR") and yType != gc.getInfoTypeForString("UNITCOMBAT_HELICOPTER") and yType != gc.getInfoTypeForString("UNITCOMBAT_NAVAL") and yType != gc.getInfoTypeForString("NONE")):
				if (xType != gc.getInfoTypeForString("UNITCOMBAT_HELICOPTER") and xType != gc.getInfoTypeForString("NONE")):
					iRand = random.randint(1, 100)					
					if (iRand >= 80):
						newUnit = playerX.player.initUnit(unitSlave, pWinner.getX(), pWinner.getY(), UnitAITypes.NO_UNITAI)
						newUnit.finishMoves()
		#############################
		##  End Modifaction Block  ##
		#############################

So now it is possible to make event to combat that you have chance to get some units what you like. This has a condition that active player must have civic slavery then you have cance 20% to get slave as combat result. First you must add slave to your Civ4UnitInfos.xml

I keep the Snaitf-s code in game and i put this new code under Snaitf-s code. The random condition must be changed to "if (iRand >= 80):" that you can't get both. Now itis possible to get slave or unit.
But you have 25% overall chance to get something from battle.
So download Snaift Unit Allegence mod and update this with my modification.

Here is a code what is mixed wit Sanitf's unit allegence mod code. It is shorter and useful if you are interested using both options.
Code:
def onCombatResult(self, argsList):
		'Combat Result'
		pWinner,pLoser = argsList
		playerX = PyPlayer(pWinner.getOwner())
		unitX = PyInfo.UnitInfo(pWinner.getUnitType())
		playerY = PyPlayer(pLoser.getOwner())
		unitY = PyInfo.UnitInfo(pLoser.getUnitType())
		#############################
		## Start Modifaction Block ##
		#############################
		xType = unitX.getUnitCombatType()
		yType = unitY.getUnitCombatType()
		player = gc.getActivePlayer()
		unitSlave = gc.getInfoTypeForString("UNIT_SLAVE")
		if (yType != gc.getInfoTypeForString("UNITCOMBAT_SIEGE") and yType != gc.getInfoTypeForString("UNITCOMBAT_ARMOR") and yType != gc.getInfoTypeForString("UNITCOMBAT_HELICOPTER") and yType != gc.getInfoTypeForString("UNITCOMBAT_NAVAL") and yType != gc.getInfoTypeForString("NONE")):
			if (xType != gc.getInfoTypeForString("UNITCOMBAT_HELICOPTER") and xType != gc.getInfoTypeForString("NONE")):
				iRand = random.randint(1, 100)
				if (iRand <= 5):
					newUnit = playerX.player.initUnit(pLoser.getUnitType(), pWinner.getX(), pWinner.getY(), UnitAITypes.NO_UNITAI)
					newUnit.finishMoves()
					newUnit.setDamage(50, False)
					newUnit.setExperience(pLoser.getExperience(), -1)
					newUnit.setLevel(pLoser.getLevel())
					for iCount in range(gc.getNumPromotionInfos()):
						if (pLoser.isHasPromotion(iCount)):
							newUnit.setHasPromotion(iCount, True)
				elif (iRand >=80):
					if (player.isCivic(gc.getInfoTypeForString("CIVIC_SLAVERY"))):
						newUnit = playerX.player.initUnit(unitSlave, pWinner.getX(), pWinner.getY(), UnitAITypes.NO_UNITAI)
						newUnit.finishMoves()

Snaitf is genius!!! :D He made good option to add new functionality! He is my hero!

I made some new skins, if you find these useful, then take them.
About Inquistor - i don't like spy image, so i reskin Great prophet so that he looks like cardinal, even have red hat :) .

Have fun
 

Attachments

  • Slave.jpg
    Slave.jpg
    115 KB · Views: 3,877
  • LRP_Skins.jpg
    LRP_Skins.jpg
    227.2 KB · Views: 2,376
  • LRP_UNIT_skins.zip
    45.5 KB · Views: 487
Excellent skin! Would do great for a Civil War mod, otherwise its uses are limited. From what I recall, historically slaves outside of the United States weren't exclusively black.

&#65250;&#65244;&#65268;&#65248;&#65227; &#65250;&#65276;&#65204;&#65247;&#65165;
 
It could also be an african worker.
 
:D i thought about "racial" stuff. For me it is not important at all. It is graphic, so you have to make worker to look a bit different. I know that slaves were in every ethnic group. In the moment thare is a limited way to make new units. This is one option.
 
Oh no, I'm not complaining at all. Just pointing out that some people might not download your mod because they don't like having a generic slave unit being black. Others probably won't care :)

&#65250;&#65244;&#65268;&#65248;&#65227; &#65250;&#65276;&#65204;&#65247;&#65165;
 
Weasel Op said:
There will always be people worrying about using units of a specific race, or with swastikas, or whatever. But like gorn said,

History has slaves of all races. The offense comes from the fact that you have a mod that is 99% white guys and the one unit you make black is the slave unit. So the question becomes why did the creator decide to make the slave unit black? Because when he imagines a slave he thinks of a black person. Its not for historical accuracy.

Just like it may be offensive to give all Islamic disciples the ability to sneak into rival cities and blow up. Historically some Islamic folks did that, but that doesn't make it a charateristic of Islamic people. Going out of your way to highlight a specific minority in a negative light is going to offend some people.
 
Considering that 99% of the units in the game are white as you pointed out he was left with the option of making them all black and having a white slave or making the slave black and not changing all of the other units... or, not making the mod at all or leaving the slave to look nearly identical to the worker.

I suppose orange jumpsuits would have been more politically correct if not historically accurate.

Damned if you do, damned if you don't...
 
Kael said:
History has slaves of all races. The offense comes from the fact that you have a mod that is 99% white guys and the one unit you make black is the slave unit. So the question becomes why did the creator decide to make the slave unit black? Because when he imagines a slave he thinks of a black person. Its not for historical accuracy.
There will eventually be complete line of black units, and Arab units, and *insert race here* units, if the Flavor Units Project gets going. Just because he made 1 unit doesn't mean he's characterizing all blacks as slaves, or all slaves as blacks. It's just a single unit, that I'm sure will be used in a scenario before long.
 
Is this simply a replacement for the worker or is it a brand new Unit, I dont see any reason it couldn't be a new unit which replicates some or all of the workers abilites and is enabled by the Slavery Civic. Perhaps limiting them to only building Farms, Plantations, Mines and Quarries. They would be considerably cheaper then regualar workers. Captured workers and Settlers would convert to slaves if your civics is slavery otherwise they would just be destroyed (is that doable?). Emancipation eliminates all your slaves and prevents them from being built. Other Civic options keep slaves already made but do not alow new ones to be produced or captured.

EDIT - I dont seem to be able to find the dds files your refering too, dose this involve the unpacked graphics thing I have heard of? I haven't done anything with my art assets yet.
 
This doesn't make sense to me as a unit skin, this would be better as a full blown modification.
 
I totally agree that this unit should be enabled with the slavery civic, and that it should not be built. Slaves should definitely be captured. With the slavery civic enabled, I think there should be a 15% chance of creating a new slave unit after a victorious battle. Thus, the slaves would sort of be like PoWs, forced to do labor but not as efficiently as a normal worker. Another option for a really skilled modder would be to make "slave capturing" a unit promotion--you know, 25% of capturing a slave after this unit wins a battle--slave capturing I, slave capturing II, etc.

With that said, since all the units in the game are white, I think it's funny to suddenly have them become black when turned into slaves. I think you should make a white slave too--not just out of common respect--but for accurate gameplay. Just dress them in tattered clothing rather than worker duds.

Still, I have to admit that it's absolutely hilarious that when you skin a slave unit, you skin it black. Talk about engraved culturual stereotypes. :(

&#65250;&#65244;&#65268;&#65248;&#65227; &#65250;&#65276;&#65204;&#65247;&#65165;
 
History has slaves of all races. The offense comes from the fact that you have a mod that is 99% white guys and the one unit you make black is the slave unit. So the question becomes why did the creator decide to make the slave unit black? Because when he imagines a slave he thinks of a black person. Its not for historical accuracy.

Just like it may be offensive to give all Islamic disciples the ability to sneak into rival cities and blow up. Historically some Islamic folks did that, but that doesn't make it a charateristic of Islamic people. Going out of your way to highlight a specific minority in a negative light is going to offend some people.

Kael has it right. Try to see it from the position of a black person playing this game. Along the same token, I thought it was a dumb move by Firaxis to make the scout unit be American Indian. Every unit in the game is white (except specials), but apparently the game developers think that historically Native Americans were quick, nimble, and suitable to fill the role of scout. Firaxis should either make everybody one race, or hurry up the "flavoring."

&#65250;&#65244;&#65268;&#65248;&#65227; &#65250;&#65276;&#65204;&#65247;&#65165;
 
Top Bottom