// 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); }
// 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:!!! }