示例#1
0
        // assigns employee to the job
        public bool AssignEmploye(Job job, HumanoidFighter fighter)
        {
            if (job.employees.Count == job.requiredEmployeeAmount ||
                fighter.activity != FighterActivity.None ||
                !job.requirement.Validate(fighter) ||
                job.employees.Contains(fighter))
            {
                return(false);
            }

            job.employees.Add(fighter);
            fighter.activity = FighterActivity.PerformingJob;
            UIManagementManager.Instance.RefreshInventoryView();

            if (job.reward != null)
            {
                for (int i = 0; i < job.reward.Count; i++)
                {
                    FighterEffect rewardEffect = job.reward[i] as FighterEffect;
                    if (rewardEffect != null)
                    {
                        rewardEffect.fighterTargets.Add(fighter);
                    }
                }
            }

            if (job.penalty != null)
            {
                for (int i = 0; i < job.penalty.Count; i++)
                {
                    FighterEffect penaltyEffect = job.penalty[i] as FighterEffect;
                    if (penaltyEffect != null)
                    {
                        penaltyEffect.fighterTargets.Add(fighter);
                    }
                }
            }

            if (job.turnEffects != null)
            {
                for (int i = 0; i < job.turnEffects.Count; i++)
                {
                    FighterEffect turnEffect = job.turnEffects[i] as FighterEffect;
                    if (turnEffect != null)
                    {
                        turnEffect.fighterTargets.Add(fighter);
                    }
                }
            }

            return(true);
        }
示例#2
0
        // FIXME: Execution order!!!
        protected void Start()
        {
            // TEMP!!!!:
            // Generate galaxy jobs
            for (int i = 0; i < 10; i++)
            {
                Job job = new Job();
                job.category     = JobCategory.Regular;
                job.description  = "etc.";
                job.duration     = Random.Range(1, 9);
                job.expiration   = Random.Range(1, 9);
                job.isCancelable = false;
                //job.isPersistent = false;
                job.jobName = "job_" + job.GetHashCode().ToString();

                job.penalty = new List <Effect>();
                job.penalty.Add(new Effect());
                job.penalty[0].isHidden = false;
                //job.penalty[0].description = "etc.";
                job.penalty[0].creditsLoss           = Random.Range(0, 1000);
                job.penalty[0].reputationLoss        = Random.Range(0, 50);
                job.penalty[0].coachingInfluenceLoss = Random.Range(0, 10);
                //job.penalty[0].parent = job;

                job.requiredEmployeeAmount  = 5;
                job.requirement             = new JobRequirement();
                job.requirement.minStrength = Random.Range(1, 3);

                job.reward = new List <Effect>();
                job.reward.Add(new Effect());
                job.reward[0].creditsGain = Random.Range(0, 177);
                // job.reward[0].parent = job;


                job.turnEffects = new List <Effect>();
                FighterEffect turnEffect = new FighterEffect();
                // turnEffect.creditsLoss = Random.Range(10, 100);
                //turnEffect.lostGladiatorAmount = 1;
                turnEffect.coachingInfluenceGain = 10;
                turnEffect.coachingInfluenceLoss = 2;
                turnEffect.creditsGain           = 12;
                //turnEffect.lostAudienceManipulatorAmount = 2;
                //turnEffect.lostDrugAmount = 2;
                //turnEffect.lostShowEnhancerAmount = 2;
                //turnEffect.lostWeaponAmount = 2;
                //turnEffect.reputationGain = 2;
                //turnEffect.reputationLoss = 3;
                turnEffect.moraleLoss = Random.Range(i, 10);
                //turnEffect.moraleGain = Random.Range(i, 20);
                //turnEffect.baseStrengthGain = Random.Range(i, 20);
                //turnEffect.baseStrengthLoss = Random.Range(i, 20);
                //turnEffect.lostSkillAmount = 2;
                //turnEffect.lostTraitAmount = 2;

                job.turnEffects.Add(turnEffect);
                //GameManager.Instance.content.jobs.Add(job);
            }



            //// TEMP!!!!:
            //Management.Job autograph = new Management.Job();
            //autograph.category = Management.JobCategory.Permanent;
            //autograph.description = "Autograph";
            //autograph.duration = -1;
            //autograph.expiration = 0;
            //autograph.isCancelable = false;
            //autograph.isPersistent = true;
            //autograph.jobName = "Autograph signing";
            ////autograph.penalty = new List<JobEffect>();
            ////autograph.penalty.reputationLoss = 10;
            //autograph.requiredEmployeeAmount = 1;
            //autograph.requirement = new JobRequirement();
            //autograph.requirement.minPopularity = 10;

            //autograph.reward = new List<JobEffect>();
            //autograph.reward.Add(new JobEffect());
            //autograph.reward[0].reputationGain = 10;
            //autograph.reward[0].parent = autograph;


            //autograph.turnEffects = new List<Management.JobEffect>();
            //autograph.turnEffects.Add(new FighterJobEffect());
            //((Management.FighterJobEffect)autograph.turnEffects[0]).moraleLoss = 20;

            //autograph.requirement.additionalRequirements.Add(fighter => fighter.morale > 0);

            //jobs.Add(autograph);


            //persistentJobOffers = GetPersistenJobs();
            //for (int i = 0; i < jobs.Count; i++) {
            //    if (jobs[i].isPersistent) {
            //        persistentJobOffers.Add(jobs[i]);
            //    }
            //}

            //Debug.Log(Inventory.Instance.ownedHumanoids[0].popularity);
            // TEMP:!!!
        }