예제 #1
0
        public FlagQuizController()
        {
            var quizRepository = new QuizRepository();

            _flagRepository = new FlagRepository();
            _game           = quizRepository.Get(1);
        }
예제 #2
0
        void LoadEntities(string worldId)
        {
            IBiomeRepository    biomeRepository    = new BiomeRepository(Path.Combine(ApplicationPaths.WorldsDirectory, worldId, "biomes.xml"));
            IBorderRepository   borderRepository   = new BorderRepository(Path.Combine(ApplicationPaths.WorldsDirectory, worldId, "borders.xml"));
            ICultureRepository  cultureRepository  = new CultureRepository(Path.Combine(ApplicationPaths.WorldsDirectory, worldId, "cultures.xml"));
            IFactionRepository  factionRepository  = new FactionRepository(Path.Combine(ApplicationPaths.WorldsDirectory, worldId, "factions.xml"));
            IFlagRepository     flagRepository     = new FlagRepository(Path.Combine(ApplicationPaths.WorldsDirectory, worldId, "flags.xml"));
            IHoldingRepository  holdingRepository  = new HoldingRepository(Path.Combine(ApplicationPaths.WorldsDirectory, worldId, "holdings.xml"));
            IProvinceRepository provinceRepository = new ProvinceRepository(Path.Combine(ApplicationPaths.WorldsDirectory, worldId, "provinces.xml"));
            IResourceRepository resourceRepository = new ResourceRepository(Path.Combine(ApplicationPaths.WorldsDirectory, worldId, "resources.xml"));
            IUnitRepository     unitRepository     = new UnitRepository(Path.Combine(ApplicationPaths.WorldsDirectory, worldId, "units.xml"));
            IWorldRepository    worldRepository    = new WorldRepository(ApplicationPaths.WorldsDirectory);

            IEnumerable <Biome>    biomeList    = biomeRepository.GetAll().ToDomainModels();
            IEnumerable <Border>   borderList   = borderRepository.GetAll().ToDomainModels();
            IEnumerable <Culture>  cultureList  = cultureRepository.GetAll().ToDomainModels();
            IEnumerable <Faction>  factionList  = factionRepository.GetAll().ToDomainModels();
            IEnumerable <Flag>     flagList     = flagRepository.GetAll().ToDomainModels();
            IEnumerable <Province> provinceList = provinceRepository.GetAll().ToDomainModels();
            IEnumerable <Resource> resourceList = resourceRepository.GetAll().ToDomainModels();
            IEnumerable <Unit>     unitList     = unitRepository.GetAll().ToDomainModels();

            armies    = new ConcurrentDictionary <Tuple <string, string>, Army>();
            biomes    = new ConcurrentDictionary <string, Biome>(biomeList.ToDictionary(biome => biome.Id, biome => biome));
            borders   = new ConcurrentDictionary <Tuple <string, string>, Border>(borderList.ToDictionary(border => new Tuple <string, string>(border.SourceProvinceId, border.TargetProvinceId), border => border));
            cultures  = new ConcurrentDictionary <string, Culture>(cultureList.ToDictionary(culture => culture.Id, culture => culture));
            factions  = new ConcurrentDictionary <string, Faction>(factionList.ToDictionary(faction => faction.Id, faction => faction));
            flags     = new ConcurrentDictionary <string, Flag>(flagList.ToDictionary(flag => flag.Id, flag => flag));
            holdings  = new ConcurrentDictionary <string, Holding>();
            provinces = new ConcurrentDictionary <string, Province>(provinceList.ToDictionary(province => province.Id, province => province));
            relations = new ConcurrentDictionary <Tuple <string, string>, Relation>();
            resources = new ConcurrentDictionary <string, Resource>(resourceList.ToDictionary(resource => resource.Id, resource => resource));
            units     = new ConcurrentDictionary <string, Unit>(unitList.ToDictionary(unit => unit.Id, unit => unit));
            world     = worldRepository.Get(worldId).ToDomainModel();
        }
예제 #3
0
    public void SpawnSecrets()
    {
        foreach (Transform child in lineItemTransform)
        {
            Destroy(child.gameObject);
        }
        List <NotSecretLineItem> lineItems = new List <NotSecretLineItem>();

        foreach (var secret in FlagRepository.instance.secretFlags.secrets)
        {
            //Debug.Log("secret.secret.ToString(): "+secret.secret.ToString());
            if (FlagRepository.ReadSecretKey(secret.secret.ToString()) != 0)               //If the secret has been discovered
            {
                GameObject        newGO             = Instantiate(lineItemPrefab, lineItemTransform, false);
                NotSecretLineItem notSecretLineItem = newGO.GetComponent <NotSecretLineItem>();
                notSecretLineItem.Unpack(secret);
                lineItems.Add(notSecretLineItem);
            }
        }
        //Move Stricken items to the bottom of the list
        foreach (var item in lineItems)
        {
            if (item.isStricken)
            {
                item.gameObject.transform.SetAsLastSibling();
            }
        }
    }
예제 #4
0
        public IEnumerable <dynamic> Get(string resource, int userId, [FromUri] object[] resourceIds)
        {
            try
            {
                var repository = new FlagRepository(this.MetaUser.Tenant, this.MetaUser.LoginId, this.MetaUser.UserId);
                return(repository.Get(resource, userId, resourceIds));
            }
            catch (UnauthorizedException)
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Forbidden));
            }
            catch (DataAccessException ex)
            {
                throw new HttpResponseException(new HttpResponseMessage
                {
                    Content    = new StringContent(ex.Message),
                    StatusCode = HttpStatusCode.InternalServerError
                });
            }
#if !DEBUG
            catch
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError));
            }
#endif
        }
예제 #5
0
 public MainPage()
 {
     InitializeComponent();
     // Load our data
     repository = new FlagRepository();
     // Setup the view
     InitializeData();
 }
예제 #6
0
 public void Unpack(NotSecretData nsData /*, NotSecrets _NotSecrets*/)
 {
     //notSecretsRef = _NotSecrets;
     notSecretData = nsData;
     myText        = nsData.text;
     isStricken    = FlagRepository.ReadSecretKey(notSecretData.secret.ToString()) == 2; //2 is stricken
     TextSetStricken();
     myRect.sizeDelta = new Vector2(myRect.sizeDelta.x, text.preferredHeight);
 }
예제 #7
0
        private Flag GetRandomFlag(FlagRepository repository)
        {
            Random r = new Random();

            int opt = r.Next(1, 10);

            while (opt == this.Id)
            {
                opt = r.Next(1, 10);
            }

            return(repository.GetFlag(opt));
        }
예제 #8
0
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.B))   //B for Book
        {
            UI.Instance.DisplayReadable(sampleBook);
        }

        /*
         * if (Input.GetKeyDown(KeyCode.Keypad0)) {
         *  float test = Sonos.GetVolume(AudioType.Music);
         *  Debug.Log("AudioType.Music: "+test);
         * }
         * //*/
        if (Input.GetKeyDown(KeyCode.Keypad0))
        {
            FlagRepository.WriteQuestKey(QuestNames.q001TwilightCottonCandy.ToString(), true);
        }
//Saving / Loading
        if (Input.GetKeyDown(KeyCode.S))   //Save
        {
            UI.Instance.SaveGameData(0);
        }
        if (Input.GetKeyDown(KeyCode.L))   //Load
        {
            UI.Instance.LoadGameData(0);
        }
//Currency
        if (Input.GetKeyDown(KeyCode.KeypadPlus))   //Add LOTS of funds
        {
            Currency.instance.Cash += 10000000m;
        }
        if (Input.GetKeyDown(KeyCode.KeypadMinus))   //Subtract Funds
        {
            Currency.instance.Cash -= 100m;
        }
        if (Input.GetKeyDown(KeyCode.KeypadMultiply))   //Try a Purchase, display if successful
        {
            if (Currency.instance.Purchase(500m))
            {
                Debug.Log("Purchase successful!");
            }
            else
            {
                Debug.Log("Not enough funds!");
            }
        }
    }
예제 #9
0
    public void OnPointerClick(PointerEventData eventData)
    {
        int strikeState = FlagRepository.ReadSecretKey(notSecretData.secret.ToString());

        if (strikeState == 1)
        {
            isStricken = true;
            FlagRepository.SecretKeyStrike(notSecretData.secret.ToString());
            transform.SetAsLastSibling();
        }
        else
        {
            isStricken = false;
            FlagRepository.WriteSecretKey(notSecretData.secret.ToString(), 1);
        }
        TextSetStricken();
    }
예제 #10
0
    public void EvaluateQuestCompletion()
    {
        bool allTrue = true;

        foreach (var quest in profileData.quests)
        {
            if (!FlagRepository.ReadQuestKey(quest.ToString()))
            {
                allTrue = false;
                break;
            }
        }
        if (allTrue)
        {
            badgeImage.sprite = spriteBadgeComplete;
        }
    }
예제 #11
0
        public Question(Flag flag, FlagRepository repository)
        {
            this.Id = flag.Id;

            this.Options = new List <string>();

            this.Options.Add(flag.Name);

            while (this.Options.Count < 4)
            {
                Flag option = GetRandomFlag(repository);
                if (!this.Options.Contains(option.Name))
                {
                    this.Options.Add(option.Name);
                }
            }

            this.Options.Sort();
        }
예제 #12
0
 private void Awake()
 {
     //Singleton Pattern
     if (instance != null && instance != this)
     {
         Destroy(gameObject);
         return;
     }
     instance = this;
     DontDestroyOnLoad(gameObject);
     //Initialize each to 0 //TODO: Load in these values
     foreach (QuestNames flag in Enum.GetValues(typeof(QuestNames)))
     {
         flags.questFlags.Add(flag.ToString(), false);
     }
     foreach (var flag in secretFlags.secrets)
     {
         flags.secretFlags.Add(flag.secret.ToString(), 0);
     }
     RegisterLuaFunctions();
 }
예제 #13
0
 public void CheckConditions()
 {
     isUsable = true;
     if (items.Count > 0)
     {
         foreach (var item in items)
         {
             if (!Inventory.instance.InventoryHas(item.name))
             {
                 isUsable = false;
                 break;
             }
         }
     }
     if (quests.Count > 0)
     {
         foreach (var quest in quests)
         {
             if (!FlagRepository.ReadQuestKey(quest.ToString()))
             {
                 isUsable = false;
                 break;
             }
         }
     }
     if (secrets.Count > 0)
     {
         foreach (var secret in secrets)
         {
             if (FlagRepository.ReadSecretKey(secret.ToString()) < 1)   //Secret hasn't been found
             {
                 isUsable = false;
                 break;
             }
         }
     }
     outline.color = isUsable ? colorOpen : colorLocked;
 }
예제 #14
0
        public async Task <IActionResult> Index(
            SubmitFlagViewModel model,
            [FromServices] FlagRepository _flagRepository,
            [FromServices] ScoringRepository _scoreRepository
            )
        {
            if (ModelState.IsValid)
            {
                var quest = await _questRepository.GetQuest(model.QuestId);

                if (quest != null)
                {
                    var flag = await _flagRepository.GetFlag(quest);

                    if (CryptographicOperations.FixedTimeEquals(Encoding.Unicode.GetBytes(flag), Encoding.Unicode.GetBytes(model.Flag)))
                    {
                        await _scoreRepository.AddTeamScore(User.Identity.Name !, quest.Id);

                        return(RedirectToAction("Index", "Scoreboard"));
                    }
                }
            }
            return(RedirectToAction("Index"));
        }
예제 #15
0
 public AdminController(FlagRepository flagRepository)
 {
     _flagRepository = flagRepository;
 }
예제 #16
0
 public IntroController(FlagRepository flagRepository, QuestRepository questRepository)
 {
     _flagRepository  = flagRepository;
     _questRepository = questRepository;
 }
예제 #17
0
 public CookieJarController(FlagRepository flagRepository)
 {
     _flagRepository = flagRepository;
 }