1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

Slave skins

Discussion in 'Civ4 - Unit Graphics' started by LittleRedPoint, Dec 13, 2005.

  1. LittleRedPoint

    LittleRedPoint Slaver

    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
     

    Attached Files:

  2. WildWeazel

    WildWeazel hard-coded Supporter

    Joined:
    Jul 14, 2003
    Messages:
    6,956
    Location:
    %CIV3%\Conquests\Scenarios\
    The.. kilt? looks strange.. like cow skin. Solid brown would look better IMO.
    Nice skin tho. :)
     
  3. LittleRedPoint

    LittleRedPoint Slaver

    Joined:
    Dec 13, 2004
    Messages:
    155
    Location:
    Estonia (EU)
  4. JDexter

    JDexter Prince

    Joined:
    Dec 18, 2003
    Messages:
    565
    Gender:
    Male
    Location:
    Germany
    Nice texture, although of course slavery = bad! ;)
     
  5. WildWeazel

    WildWeazel hard-coded Supporter

    Joined:
    Jul 14, 2003
    Messages:
    6,956
    Location:
    %CIV3%\Conquests\Scenarios\
    slavery = historical = Civ ;)
     
  6. Felzor

    Felzor Chieftain

    Joined:
    Nov 30, 2005
    Messages:
    47
    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;
     
  7. WildWeazel

    WildWeazel hard-coded Supporter

    Joined:
    Jul 14, 2003
    Messages:
    6,956
    Location:
    %CIV3%\Conquests\Scenarios\
    That's true. Various races and ethnicities have been enslaved over the centuries.
     
  8. Sildo

    Sildo A circle

    Joined:
    Sep 8, 2005
    Messages:
    279
    It could also be an african worker.
     
  9. LittleRedPoint

    LittleRedPoint Slaver

    Joined:
    Dec 13, 2004
    Messages:
    155
    Location:
    Estonia (EU)
    :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.
     
  10. WildWeazel

    WildWeazel hard-coded Supporter

    Joined:
    Jul 14, 2003
    Messages:
    6,956
    Location:
    %CIV3%\Conquests\Scenarios\
    There will always be people worrying about using units of a specific race, or with swastikas, or whatever. But like gorn said,
     
  11. Felzor

    Felzor Chieftain

    Joined:
    Nov 30, 2005
    Messages:
    47
    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;
     
  12. Kael

    Kael Deity

    Joined:
    May 6, 2002
    Messages:
    17,401
    Location:
    Ohio
    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.
     
  13. Seven05

    Seven05 Warmonger

    Joined:
    Dec 5, 2005
    Messages:
    2,056
    Gender:
    Male
    Location:
    USA
    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...
     
  14. WildWeazel

    WildWeazel hard-coded Supporter

    Joined:
    Jul 14, 2003
    Messages:
    6,956
    Location:
    %CIV3%\Conquests\Scenarios\
    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.
     
  15. LittleRedPoint

    LittleRedPoint Slaver

    Joined:
    Dec 13, 2004
    Messages:
    155
    Location:
    Estonia (EU)
    :D It is dark man, not black :D
    Because he has to work outside long days, so he just gets to much sun... :D
     
  16. Impaler[WrG]

    Impaler[WrG] Civ4:Col UI programmer

    Joined:
    Dec 5, 2005
    Messages:
    1,750
    Location:
    Vallejo, California
    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.
     
  17. Jecrell

    Jecrell Ruled: Civ3 - Civ5

    Joined:
    Oct 9, 2005
    Messages:
    709
    Location:
    California, USA
    This doesn't make sense to me as a unit skin, this would be better as a full blown modification.
     
  18. LittleRedPoint

    LittleRedPoint Slaver

    Joined:
    Dec 13, 2004
    Messages:
    155
    Location:
    Estonia (EU)
    Well Snaif made unit Allegance mod, thare we talked about this. I give a shot to make this control. All the phyton code is thare, just have to mod it a bit.
     
  19. Felzor

    Felzor Chieftain

    Joined:
    Nov 30, 2005
    Messages:
    47
    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;
     
  20. Felzor

    Felzor Chieftain

    Joined:
    Nov 30, 2005
    Messages:
    47
    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;
     

Share This Page