public static IQuest getTypeQuest(QuestType type, FlagList flags, Client client) { switch (type) { case EXTERMINATION: return(new ExterminationQuest(flags, client)); } throw new System.ArgumentException("unkown QuestType"); }
public ExterminationQuest(ExterminationMissonBuilder builder, FlagList flags) { this.flags = flags; this.LEVEL = builder.getLevel(); this.TARGET_ID = builder.getTargetId(); this.compentionType = CompentionType.FINISH; this.EXTERMINATION_NUMBER = builder.getExterminationNumber(); INTERNAL_NUMBER = flags.getEnemyKilled(TARGET_ID); this.NAME = builder.getName(); this.DESCRIPTION = builder.getDescription(); this.FLAVOR_TEXT = builder.getFlavorText(); }
public ExterminationQuest(FlagList flags, Client client) { this.LEVEL = client.Level; this.client = client; this.flags = flags; this.TARGET_ID = EnemyHelper.getRandomEnemyFromLevel(LEVEL); this.INTERNAL_NUMBER = flags.getEnemyKilled(TARGET_ID); var compensationTypes = Enum.GetValues(typeof(CompentionType)); int compensationTypeRand = UnityEngine.Random.Range(0, compensationTypes.Length - 1); this.compentionType = (CompentionType)compensationTypes.GetValue(compensationTypeRand); EXTERMINATION_NUMBER = LEVEL + UnityEngine.Random.Range(2, 6); var targetName = EnemyMasterManager.getInstance().getEnemyBuilderFromId(TARGET_ID).getName(); NAME = "駆除依頼"; DESCRIPTION = targetName + "を" + EXTERMINATION_NUMBER + "匹倒す"; FLAVOR_TEXT = "最近問題になっている" + targetName + "を駆除しよう"; }
public IQuest build(FlagList flags) { return(new ExterminationQuest(this, flags)); }