////////////////////////////////////////////////////////////////////////////////
// pc_custom_random - Adjust the PC to a random appearance
// By Deva B. Winblood.    December 13th, 2008
////////////////////////////////////////////////////////////////////////////////
#include "prc_inc_racial"

int StartingConditional()
{
    int bRet=FALSE;
    object oPC=GetPCSpeaker();
    int nParm=GetLocalInt(oPC,"nParm");
    int nRace=MyPRCGetRacialType(oPC);
    int nGender=GetGender(oPC);
    if (nParm==0&&nRace==RACIAL_TYPE_HALFLING) bRet=TRUE;
    else if (nParm==2&&nRace==RACIAL_TYPE_HALFLING) bRet=TRUE;
    else if (nParm==3&&nRace==RACIAL_TYPE_GNOME&&nGender==GENDER_MALE) bRet=TRUE;
    else if (nParm==4&&nRace==RACIAL_TYPE_HALFORC) bRet=TRUE;
    else if (nParm==5&&nRace==RACIAL_TYPE_ELF) bRet=TRUE;
    else if (nParm==6&&nRace==RACIAL_TYPE_HALFORC) bRet=TRUE;
    else if (nParm==8&&nRace==RACIAL_TYPE_HUMAN) bRet=TRUE;
    else if (nParm==1||nParm==7) bRet=TRUE;
    if (bRet)
    { // valid parameters
        FadeToBlack(oPC);
        int nTail=14;
        int nHead=-1;
        int nSkin=-1;
        int nHair=-1;
        int nApp=-1;
        string sSubRace="";
        int nR;
        if (nParm==0)
        { // brownie
            nApp=1002;
            nHead=Random(10);
            nTail=0;
            sSubRace="Brownie";
        } // brownie
        else if (nParm==1)
        { // non-brownie
            nApp=3;
        } // non-brownie
        else if (nParm==2)
        { // kobold
            nApp=3;
            nTail=2797;
            nR=d4();
            if (nR==1&&nGender==GENDER_FEMALE) nHead=176;
            else if (nR==1) nHead=169;
            else if (nR==2&&nGender==GENDER_FEMALE) nHead=175;
            else if (nR==2) nHead=168;
            else if (nR==3&&nGender==GENDER_FEMALE) nHead=174;
            else if (nR==3) nHead=167;
            else if (nR==4&&nGender==GENDER_FEMALE) nHead=173;
            else if (nR==4) nHead=166;
            nR=d6();
            if (nR==1) nSkin=16;
            else if (nR==2) nSkin=19;
            else if (nR==3) nSkin=39;
            else if (nR==4) nSkin=49;
            else if (nR==5) nSkin=53;
            else if (nR==6) nSkin=54;
            nR=Random(5)+1;
            if (nR==1) nHair=7;
            else if (nR==2) nHair=15;
            else if (nR==3) nHair=22;
            else if (nR==4) nHair=52;
            else if (nR==5) nHair=60;
            sSubRace="Kobold";
        } // kobold
        else if (nParm==3)
        { // Goblin
            nApp=2;
            nR=Random(9)+1;
            if (nR==1) nHead=33;
            else if (nR==2) nHead=32;
            else if (nR==3) nHead=31;
            else if (nR==4) nHead=30;
            else if (nR==5) nHead=29;
            else if (nR==6) nHead=28;
            else if (nR==7) nHead=27;
            else if (nR==8) nHead=26;
            else if (nR==9) nHead=25;
            nR=Random(16)+1;
            if (nR==1) nSkin=5;
            else if (nR==2) nSkin=23;
            else if (nR==3) nSkin=34;
            else if (nR==4) nSkin=35;
            else if (nR==5) nSkin=38;
            else if (nR==6) nSkin=39;
            else if (nR==7) nSkin=49;
            else if (nR==8) nSkin=50;
            else if (nR==9) nSkin=52;
            else if (nR==10) nSkin=53;
            else if (nR==11) nSkin=67;
            else if (nR==12) nSkin=78;
            else if (nR==13) nSkin=80;
            else if (nR==14) nSkin=95;
            else if (nR==15) nSkin=107;
            else if (nR==16) nSkin=111;
            sSubRace="Goblin";
        } // Goblin
        else if (nParm==4)
        { // Half-Ogre
            nTail=0;

            sSubRace="Half-Ogre";
        } // Half-Ogre
        else if (nParm==5)
        { // Drow
            nApp=1;
            sSubRace="Drow";
        } // Drow
        else if (nParm==6)
        { // Wemic
            nTail=0;
            nApp=1000;
            if (nGender==GENDER_FEMALE) nHead=Random(2)+1;
            else { nHead=d4(); }
            sSubRace="Wemic";
        } // Wemic
        else if (nParm==7)
        { // Non-Wemic
            nApp=5;
            nHead=Random(10);
        } // Non-Wemic
        else if (nParm==8)
        { // Skeleton
            nTail=0;
            sSubRace="Skeleton";
            nApp=1769;
            nR=Random(5)+1;
            if (nR==1) nHead=1;
            else if (nR==2) nHead=2;
            else if (nR==3) nHead=4;
            else if (nR==4) nHead=5;
            else if (nR==5) nHead=7;
            DelayCommand(1.0,SetCreatureBodyPart(CREATURE_PART_RIGHT_FOOT,1,oPC));
            DelayCommand(1.2,SetCreatureBodyPart(CREATURE_PART_LEFT_FOOT,1,oPC));
            DelayCommand(1.4,SetCreatureBodyPart(CREATURE_PART_RIGHT_SHIN,CREATURE_MODEL_TYPE_SKIN,oPC));
            DelayCommand(1.6,SetCreatureBodyPart(CREATURE_PART_LEFT_SHIN,CREATURE_MODEL_TYPE_SKIN,oPC));
            DelayCommand(1.8,SetCreatureBodyPart(CREATURE_PART_RIGHT_THIGH,1,oPC));
            DelayCommand(2.0,SetCreatureBodyPart(CREATURE_PART_LEFT_THIGH,1,oPC));
            DelayCommand(2.2,SetCreatureBodyPart(CREATURE_PART_PELVIS,1,oPC));
            DelayCommand(2.4,SetCreatureBodyPart(CREATURE_PART_TORSO,CREATURE_MODEL_TYPE_SKIN,oPC));
            DelayCommand(2.6,SetCreatureBodyPart(CREATURE_PART_BELT,1,oPC));
            DelayCommand(2.8,SetCreatureBodyPart(CREATURE_PART_NECK,1,oPC));
            DelayCommand(3.0,SetCreatureBodyPart(CREATURE_PART_RIGHT_FOREARM,CREATURE_MODEL_TYPE_SKIN,oPC));
            DelayCommand(3.2,SetCreatureBodyPart(CREATURE_PART_LEFT_FOREARM,CREATURE_MODEL_TYPE_SKIN,oPC));
            DelayCommand(3.4,SetCreatureBodyPart(CREATURE_PART_RIGHT_BICEP,CREATURE_MODEL_TYPE_SKIN,oPC));
            DelayCommand(3.6,SetCreatureBodyPart(CREATURE_PART_LEFT_BICEP,CREATURE_MODEL_TYPE_SKIN,oPC));
            DelayCommand(3.8,SetCreatureBodyPart(CREATURE_PART_RIGHT_SHOULDER,1,oPC));
            DelayCommand(4.0,SetCreatureBodyPart(CREATURE_PART_LEFT_SHOULDER,1,oPC));
            DelayCommand(4.2,SetCreatureBodyPart(CREATURE_PART_RIGHT_HAND,1,oPC));
            DelayCommand(4.4,SetCreatureBodyPart(CREATURE_PART_LEFT_HAND,1,oPC));
            nR=d8();
            if (nR==1) nSkin=16;
            else if (nR==2) nSkin=18;
            else if (nR==3) nSkin=20;
            else if (nR==4) nSkin=23;
            else if (nR==5) nSkin=30;
            else if (nR==6) nSkin=36;
            else if (nR==7) nSkin=40;
            else if (nR==8) nSkin=60;
            SetColor(oPC,COLOR_CHANNEL_TATTOO_1,52);
            SetColor(oPC,COLOR_CHANNEL_TATTOO_2,55);
        } // Skeleton
        sSubRace=GetStringUpperCase(sSubRace);
        SetSubRace(oPC,sSubRace);
        if (nApp>-1&&GetAppearanceType(oPC)!=nApp) SetCreatureAppearanceType(oPC,nApp);
        if (nTail>-1&&GetCreatureTailType(oPC)!=nTail) SetCreatureTailType(nTail,oPC);
        if (nHead>-1&&GetCreatureBodyPart(CREATURE_PART_HEAD,oPC)!=nHead) SetCreatureBodyPart(CREATURE_PART_HEAD,nHead,oPC);
        if (nSkin>-1) SetColor(oPC,COLOR_CHANNEL_SKIN,nSkin);
        if (nHair>-1) SetColor(oPC,COLOR_CHANNEL_HAIR,nHair);
        DelayCommand(2.0,FadeFromBlack(oPC));
    } // valid parameters
    return bRet;
}