void Awake() { welcomeText = welcomeTextObj.GetComponent<DynamicText>(); if (GameObject.FindGameObjectWithTag("Data")) { playerData = GameObject.FindGameObjectWithTag("Data").GetComponent<PlayerData>(); } }
public override void Awake() { base.Awake(); myCount = DynamicText.GetTextMesh(this); stats = GameStatistics.Instance; level = LevelManager.Instance; }
void Start() { dynText = GetComponent<DynamicText>(); orgColor = dynText.color; if (url.Equals("")) url = GetComponent<DynamicText>().GetText(); if (cam == null) cam = Camera.main; }
void Update() { width = Mathf.Clamp(width, 1, 100); height = Mathf.Clamp(height, 1, 100); int chGradientLen = charGradient.Length; if (chGradientLen < 1) { Debug.LogWarning("No char gradient!", this); return; } dynamicText = GetComponent<DynamicText>(); if (dynamicText == null) { Debug.LogError("No Dynamic Text!", this); return; } int charCount = height * (width + 3); StringBuilder sb = dynamicText.textSB; sb.EnsureCapacity(charCount); sb.Length = charCount; int sbOffs = 0; for (int y = 0; y < height; ++y) { sb[sbOffs++] = '.'; for (int x = 0; x < width; ++x) { float t = Time.fixedTime; float s1 = Mathf.Sin(t * 0.77f + x * 0.41f) * 3; float s2 = Mathf.Sin(t * 0.65f - y * 0.51f) * 3; float s3 = Mathf.Sin(t * 1.93f - x * 0.27f) * 4; float s4 = Mathf.Sin(t * 1.91f + y * 0.29f) * 3; int chValue = (int)(s1 * s2 + s3 + s4 + chGradientLen * 16 + chGradientLen / 2) % chGradientLen; //dynamicText.textSB.Append(charGradient[chValue]); sb[sbOffs++] = charGradient[chValue]; } sb[sbOffs++] = '.'; sb[sbOffs++] = '\n'; } dynamicText.FinishedTextSB(); }
/// <summary> /// Загрузить представление из потока /// </summary> public override void LoadFromStream(Stream stream) { // очистка представления Clear(); // загрузка XML-документа XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(stream); // проверка типа представления XmlElement rootElem = xmlDoc.DocumentElement; if (!rootElem.Name.Equals("SchemeView", StringComparison.OrdinalIgnoreCase)) { return; } // получение заголовка представления Title = rootElem.GetAttribute("title"); SchemeParams.Title = Title; // загрузка параметров схемы XmlNode schemeNode = rootElem.SelectSingleNode("Scheme"); if (schemeNode != null) { SchemeParams.Size = ReadSizeProp(schemeNode, Scheme.DefaultSize); SchemeParams.BackColor = ReadStringProp(schemeNode, "BackColor"); SchemeParams.BackImage = ReadImageNameProp(schemeNode, "BackImageName"); SchemeParams.ForeColor = ReadStringProp(schemeNode, "ForeColor"); SchemeParams.Font = ReadFontProp(schemeNode, true); } // загрузка элементов схемы XmlNode elemsNode = rootElem.SelectSingleNode("Elements"); if (elemsNode != null) { foreach (XmlNode elemNode in elemsNode.ChildNodes) { string tagName = elemNode.Name.ToLowerInvariant(); Element element = null; int inCnlNum = 0; int ctrlCnlNum = 0; if (tagName == "statictext" || tagName == "dynamictext") { DynamicText dynamicText = tagName == "dynamictext" ? new DynamicText() : null; StaticText staticText = dynamicText == null ? new StaticText() : dynamicText; element = staticText; staticText.AutoSize = ReadBoolProp(elemNode, "AutoSize"); staticText.BackColor = ReadStringProp(elemNode, "BackColor"); staticText.BorderColor = ReadStringProp(elemNode, "BorderColor"); staticText.ForeColor = ReadStringProp(elemNode, "ForeColor"); staticText.Font = ReadFontProp(elemNode); staticText.Text = ReadStringProp(elemNode, "Text"); staticText.WordWrap = ReadBoolProp(elemNode, "WordWrap"); staticText.HAlign = ReadHAlignProp(elemNode); staticText.VAlign = ReadVAlignProp(elemNode); if (dynamicText != null) { dynamicText.ToolTip = ReadStringProp(elemNode, "ToolTip"); dynamicText.UnderlineOnHover = ReadBoolProp(elemNode, "UnderlineOnHover"); dynamicText.BackColorOnHover = ReadStringProp(elemNode, "BackColorOnHover"); dynamicText.BorderColorOnHover = ReadStringProp(elemNode, "BorderColorOnHover"); dynamicText.ForeColorOnHover = ReadStringProp(elemNode, "ForeColorOnHover"); inCnlNum = ReadIntProp(elemNode, "InCnlNum"); ctrlCnlNum = ReadIntProp(elemNode, "CtrlCnlNum"); dynamicText.InCnlNum = inCnlNum; dynamicText.CtrlCnlNum = ctrlCnlNum; dynamicText.Action = ReadActionProp(elemNode); dynamicText.ShowValue = ReadShowValueProp(elemNode); } } else if (tagName == "staticpicture" || tagName == "dynamicpicture") { DynamicPicture dynamicPicture = tagName == "dynamicpicture" ? new DynamicPicture() : null; StaticPicture staticPicture = dynamicPicture == null ? new StaticPicture() : dynamicPicture; element = staticPicture; staticPicture.BorderColor = ReadStringProp(elemNode, "BorderColor"); staticPicture.Image = ReadImageNameProp(elemNode, "ImageName"); staticPicture.ImageStretch = ReadImageStretchProp(elemNode); if (dynamicPicture != null) { dynamicPicture.ToolTip = ReadStringProp(elemNode, "ToolTip"); dynamicPicture.ImageOnHover = ReadImageNameProp(elemNode, "ImageOnHoverName"); dynamicPicture.BorderColorOnHover = ReadStringProp(elemNode, "BorderColorOnHover"); inCnlNum = ReadIntProp(elemNode, "InCnlNum"); ctrlCnlNum = ReadIntProp(elemNode, "CtrlCnlNum"); dynamicPicture.InCnlNum = inCnlNum; dynamicPicture.CtrlCnlNum = ctrlCnlNum; dynamicPicture.Action = ReadActionProp(elemNode); XmlNode condsNode = elemNode.SelectSingleNode("Conditions"); if (condsNode != null) { dynamicPicture.Conditions = new List <Condition>(); XmlNodeList condNodes = condsNode.SelectNodes("Condition"); foreach (XmlNode condNode in condNodes) { Condition condition = new Condition(); condition.CompareOperator1 = ReadCompareOperatorProp(condNode, "CompareOperator1"); condition.CompareArgument1 = ReadDoubleProp(condNode, "CompareArgument1"); condition.CompareOperator2 = ReadCompareOperatorProp(condNode, "CompareOperator2"); condition.CompareArgument2 = ReadDoubleProp(condNode, "CompareArgument2"); condition.LogicalOperator = ReadLogicalOperatorProp(condNode, "LogicalOperator"); condition.Image = ReadImageNameProp(condNode, "ImageName"); dynamicPicture.Conditions.Add(condition); } } } } if (element != null) { element.ID = ReadIntProp(elemNode, "ID"); if (element.ID > 0) { element.Name = ReadStringProp(elemNode, "Name"); element.Location = ReadLocationProp(elemNode, Element.DefaultLocation); element.Size = ReadSizeProp(elemNode, Element.DefaultSize); element.ZIndex = ReadIntProp(elemNode, "ZIndex"); ElementList.Add(element); ElementDict[element.ID] = element; if (inCnlNum > 0) { AddCnlNum(inCnlNum); } if (ctrlCnlNum > 0) { AddCtrlCnlNum(ctrlCnlNum); } if (maxID < element.ID) { maxID = element.ID; } } } } } // загрузка словаря изображений схемы XmlNode imagesNode = rootElem.SelectSingleNode("Images"); if (imagesNode != null) { XmlNodeList imageNodes = imagesNode.SelectNodes("Image"); foreach (XmlNode imageNode in imageNodes) { Image image = new Image(); string name = ReadStringProp(imageNode, "Name"); image.Name = name; image.Data = Convert.FromBase64String(ReadStringProp(imageNode, "Data")); if (name != "") { ImageDict[name] = image; } } } // загрузка фильтра по входным каналам XmlNode cnlsFilterNode = rootElem.SelectSingleNode("CnlsFilter"); if (cnlsFilterNode != null) { string[] cnlNums = cnlsFilterNode.InnerText.Split(Separator, StringSplitOptions.RemoveEmptyEntries); foreach (string cnlNumStr in cnlNums) { int cnlNum; if (int.TryParse(cnlNumStr, out cnlNum)) { int ind = CnlsFilter.BinarySearch(cnlNum); if (ind < 0) { CnlsFilter.Insert(~ind, cnlNum); AddCnlNum(cnlNum); } } } } }
public DynamicText SaveDynamicText(DynamicText dynamicText, IfDefaultNotExistAction actionForDefaultCulture = IfDefaultNotExistAction.DoNothing) { return(m_databaseDynamicTextService.SaveDynamicText(dynamicText, actionForDefaultCulture)); }
public InventoryWeightLabel(PartyCharacterId activeCharacter) { On <SetLanguageEvent>(e => _version++); On <BlurEvent>(e => Raise(new HoverTextEvent(null))); On <InventoryChangedEvent>(e => { if (e.InventoryType == InventoryType.Player && _activeCharacter == (PartyCharacterId)e.InventoryId) { _version++; } }); On <HoverEvent>(e => { Hover(); e.Propagating = false; }); _activeCharacter = activeCharacter; _hoverSource = new DynamicText(() => { var player = Resolve <IParty>()[_activeCharacter]; if (player == null) { return(new TextBlock[0]); } // Carried Weight : %ld of %ld g return(Resolve <ITextFormatter>().Format( SystemTextId.Inv_CarriedWeightNdOfNdG, player.Apparent.TotalWeight, player.Apparent.MaxWeight).Get()); }, x => _version); var source = new DynamicText(() => { var player = Resolve <IParty>()[_activeCharacter]; if (player == null) { return(new TextBlock[0]); } // Weight : %d Kg int weight = player.Apparent.TotalWeight / 1000; return(Resolve <ITextFormatter>() .NoWrap() .Center() .Format(SystemTextId.Inv_WeightNKg, weight) .Get()); }, x => _version); AttachChild( new ButtonFrame( new FixedSize(66, 8, new HorizontalStack( new Spacing(1, 0), new UiText(source) ) ) ) { State = ButtonState.Pressed, Padding = 0 }); }
public InventoryStatsPage(PartyCharacterId activeCharacter) { _activeCharacter = activeCharacter; ProgressBar Progress(SystemTextId id, Func <ICharacterSheet, int> getValue, Func <ICharacterSheet, int> getMax) { var source = new DynamicText(() => BuildHoverText(id, getValue, getMax)); return(new ProgressBar(source, () => { var member = Resolve <IParty>()[activeCharacter]; return member == null ? 0 : getValue(member.Apparent); }, () => { var member = Resolve <IParty>()[activeCharacter]; return member == null ? 0 : getMax(member.Apparent); }, 100)); } var stack = new VerticalStack( new Header(SystemTextId.Inv2_Attributes), new HorizontalStack( new VerticalStack( new UiTextBuilder(SystemTextId.Attrib_STR).Right(), new Spacing(0, 2), new UiTextBuilder(SystemTextId.Attrib_INT).Right(), new Spacing(0, 2), new UiTextBuilder(SystemTextId.Attrib_DEX).Right(), new Spacing(0, 2), new UiTextBuilder(SystemTextId.Attrib_SPD).Right(), new Spacing(0, 2), new UiTextBuilder(SystemTextId.Attrib_STA).Right(), new Spacing(0, 2), new UiTextBuilder(SystemTextId.Attrib_LUC).Right(), new Spacing(0, 2), new UiTextBuilder(SystemTextId.Attrib_MR).Right(), new Spacing(0, 2), new UiTextBuilder(SystemTextId.Attrib_MT).Right() ), new Spacing(2, 0), new VerticalStack( new Spacing(105, 0), Progress(SystemTextId.Attrib_Strength, x => x.Attributes.Strength, x => x.Attributes.StrengthMax), new Spacing(0, 3), Progress(SystemTextId.Attrib_Intelligence, x => x.Attributes.Intelligence, x => x.Attributes.IntelligenceMax), new Spacing(0, 3), Progress(SystemTextId.Attrib_Dexterity, x => x.Attributes.Dexterity, x => x.Attributes.DexterityMax), new Spacing(0, 3), Progress(SystemTextId.Attrib_Speed, x => x.Attributes.Speed, x => x.Attributes.SpeedMax), new Spacing(0, 3), Progress(SystemTextId.Attrib_Stamina, x => x.Attributes.Stamina, x => x.Attributes.StaminaMax), new Spacing(0, 3), Progress(SystemTextId.Attrib_Luck, x => x.Attributes.Luck, x => x.Attributes.LuckMax), new Spacing(0, 3), Progress(SystemTextId.Attrib_MagicResistance, x => x.Attributes.MagicResistance, x => x.Attributes.MagicResistanceMax), new Spacing(0, 3), Progress(SystemTextId.Attrib_MagicTalent, x => x.Attributes.MagicTalent, x => x.Attributes.MagicTalentMax) ) ), new Header(SystemTextId.Inv2_Skills), new HorizontalStack( new VerticalStack( new UiTextBuilder(SystemTextId.Skill_CLO).Right(), new Spacing(0, 2), new UiTextBuilder(SystemTextId.Skill_LON).Right(), new Spacing(0, 2), new UiTextBuilder(SystemTextId.Skill_CRI).Right(), new Spacing(0, 2), new UiTextBuilder(SystemTextId.Skill_LP).Right() ), new Spacing(2, 0), new VerticalStack( new Spacing(105, 0), Progress(SystemTextId.Skill_CloseRangeCombat, x => x.Skills.CloseCombat, x => x.Skills.CloseCombatMax), new Spacing(0, 3), Progress(SystemTextId.Skill_LongRangeCombat, x => x.Skills.RangedCombat, x => x.Skills.RangedCombatMax), new Spacing(0, 3), Progress(SystemTextId.Skill_CriticalHit, x => x.Skills.CriticalChance, x => x.Skills.CriticalChanceMax), new Spacing(0, 3), Progress(SystemTextId.Skill_Lockpicking, x => x.Skills.LockPicking, x => x.Skills.LockPickingMax) ) ) ); Children.Add(new HorizontalStack(new Spacing(4, 0), stack, new Spacing(4, 0))); }
/// <summary> /// Загрузить представление из потока /// </summary> public override void LoadFromStream(Stream stream) { // очистка представления Clear(); // загрузка XML-документа XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(stream); // проверка формата файла (потока) XmlElement rootElem = xmlDoc.DocumentElement; if (!rootElem.Name.Equals("SchemeView", StringComparison.OrdinalIgnoreCase)) { throw new ScadaException(SchemePhrases.IncorrectFileFormat); } // загрузка документа схемы XmlNode documentNode = rootElem.SelectSingleNode("Document") ?? rootElem.SelectSingleNode("Scheme"); if (documentNode != null) { SchemeDoc.LoadFromXml(documentNode); // загрузка заголовка схемы для старого формата if (SchemeDoc.Title == "") { SchemeDoc.Title = rootElem.GetAttribute("title"); } // установка заголовка представления Title = SchemeDoc.Title; // загрузка фильтра по входным каналам для старого формата XmlNode cnlsFilterNode = rootElem.SelectSingleNode("CnlsFilter"); if (cnlsFilterNode != null) { SchemeDoc.CnlFilter.ParseCnlFilter(cnlsFilterNode.InnerText); } // добавление входных каналов представления foreach (int cnlNum in SchemeDoc.CnlFilter) { AddCnlNum(cnlNum); } } // загрузка компонентов схемы XmlNode componentsNode = rootElem.SelectSingleNode("Components") ?? rootElem.SelectSingleNode("Elements"); if (componentsNode != null) { foreach (XmlNode componentNode in componentsNode.ChildNodes) { // создание компонента string nodeName = componentNode.Name.ToLowerInvariant(); BaseComponent component = null; if (nodeName == "statictext") { component = new StaticText(); } else if (nodeName == "dynamictext") { component = new DynamicText(); } else if (nodeName == "staticpicture") { component = new StaticPicture(); } else if (nodeName == "dynamicpicture") { component = new DynamicPicture(); } if (component != null) { // загрузка компонента и добавление его в представление component.SchemeDoc = SchemeDoc; component.LoadFromXml(componentNode); Components[component.ID] = component; // добавление входных каналов представления if (component is IDynamicComponent) { IDynamicComponent dynamicComponent = (IDynamicComponent)component; AddCnlNum(dynamicComponent.InCnlNum); AddCtrlCnlNum(dynamicComponent.CtrlCnlNum); } // определение макс. идентификатора компонентов if (component.ID > maxComponentID) { maxComponentID = component.ID; } } } } // загрузка изображений схемы XmlNode imagesNode = rootElem.SelectSingleNode("Images"); if (imagesNode != null) { Dictionary <string, Image> images = SchemeDoc.Images; XmlNodeList imageNodes = imagesNode.SelectNodes("Image"); foreach (XmlNode imageNode in imageNodes) { Image image = new Image(); image.LoadFromXml(imageNode); if (!string.IsNullOrEmpty(image.Name)) { images[image.Name] = image; } } } }
public void Start() { scWindow = new SharpCanvasWindow(600, 600, "Diktator 3.0", false); scWindow.Start(60, 60); mainWindow = scWindow.Window; mainWindow.SetClearColor(OpenTK.Color.White); customShaderId = mainWindow.LoadShaderFromString(@"#version 410 core #extension GL_ARB_explicit_uniform_location : require layout (location = 20) uniform mat4 projection; layout (location = 21) uniform mat4 modelView; layout (location = 3) uniform vec3 tint; layout (location = 2) in vec2 textureCoord; layout (location = 1) in vec4 position; out vec2 frag_textureCoord; out vec3 frag_tint; void main(void){ gl_Position = projection * modelView * position; frag_textureCoord = textureCoord; frag_tint = tint; }", @"#version 410 core #extension GL_ARB_explicit_uniform_location : require in vec2 frag_textureCoord; in vec3 frag_tint; uniform sampler2D textureObject; out vec4 color; void main(void){ color = texture(textureObject, frag_textureCoord); color = color + (vec4(frag_tint, 1)*color.a); }"); int markerTexture = mainWindow.LoadTexture("x.png"); Button.buttonTexture = mainWindow.LoadTexture("button.png"); Button.glyphMap = new GlyphMap(GlyphMap.czechGlyphs, 64); Button.glyphMap.texture = mainWindow.LoadTextureFromBitmap(Button.glyphMap.bitmap); selectionMarker = new Sprite3D(new OpenTK.Vector3(0, 0, 10), new OpenTK.Vector3(0.03f, 0.03f, 1), markerTexture); questionDiv = new ShadedSprite(new OpenTK.Vector3(0, 0.5f, -2), new OpenTK.Vector3(1.6f, 0.85f, 1), Button.buttonTexture, customShaderId); questionDiv.shaderUniforms.Add(3, new UniformVec3(new OpenTK.Vector3(1, 1, 1))); questionText = new DynamicText(new OpenTK.Vector3(0, 0.5f, -2), new OpenTK.Vector3(0.08f, 0.2f, 1), "Kolik sou 1+1???", Button.glyphMap); questionText.AlignText(TextAlignment.Centralized); buttons[0] = new Button(new OpenTK.Vector3(0.5f, -0.25f, -2), new OpenTK.Vector3(0.8f, 0.3f, 1)); buttons[1] = new Button(new OpenTK.Vector3(0.5f, -0.6f, -2), new OpenTK.Vector3(0.8f, 0.3f, 1)); buttons[2] = new Button(new OpenTK.Vector3(-0.5f, -0.25f, -2), new OpenTK.Vector3(0.8f, 0.3f, 1)); buttons[3] = new Button(new OpenTK.Vector3(-0.5f, -0.6f, -2), new OpenTK.Vector3(0.8f, 0.3f, 1)); buttons[0].OnClickAction = () => { Console.WriteLine("1 pressed."); }; buttons[1].OnClickAction = () => { Console.WriteLine("2 pressed."); }; buttons[2].OnClickAction = () => { Console.WriteLine("3 pressed."); }; buttons[3].OnClickAction = () => { Console.WriteLine("4 pressed."); }; canvas = mainWindow.CreateCanvas(backgroundColor); mainWindow.AddDrawable(questionDiv); mainWindow.AddDrawable(questionText); mainWindow.AddDrawable(buttons[0].buttonSprite); mainWindow.AddDrawable(buttons[1].buttonSprite); mainWindow.AddDrawable(buttons[2].buttonSprite); mainWindow.AddDrawable(buttons[3].buttonSprite); mainWindow.AddDrawable(buttons[0].buttonText); mainWindow.AddDrawable(buttons[1].buttonText); mainWindow.AddDrawable(buttons[2].buttonText); mainWindow.AddDrawable(buttons[3].buttonText); mainWindow.AddDrawable(selectionMarker); canvas.RotateFlip(RotateFlipType.RotateNoneFlipY); mainWindow.ReloadCanvas(); mainWindow.AddUpdateAction(Update); }
/// <summary> /// Executes an action on default culture text if it does not exist. Actions include - nothing, create empty string, copy current culture text /// </summary> /// <param name="actionForDefaultCulture">Specific action</param> /// <param name="dynamicText">Current dynamic text entity</param> /// <param name="currentCulture">Current culture entity</param> /// <param name="dictionaryScope">Current dictionary scope entity</param> private void ExecuteDefaultCultureAction( IfDefaultNotExistAction actionForDefaultCulture, DynamicText dynamicText, ICulture currentCulture, IDictionaryScope dictionaryScope ) { if (actionForDefaultCulture == IfDefaultNotExistAction.DoNothing) { return; } var defaultCulture = GetDefaultCulture(); if (currentCulture.Equals(defaultCulture)) { return; } var defaultText = m_staticTextUoW.GetByNameAndCultureAndScope( dynamicText.Name, defaultCulture.Name, dictionaryScope.Name ); if (defaultText != null) { return; } string text; switch (actionForDefaultCulture) { case IfDefaultNotExistAction.DoNothing: return; case IfDefaultNotExistAction.CreateEmpty: text = string.Empty; break; case IfDefaultNotExistAction.CreateTextCopy: text = dynamicText.Text; break; default: throw new ArgumentOutOfRangeException( nameof(actionForDefaultCulture), actionForDefaultCulture, "Invalid default language save action" ); } m_staticTextUoW.AddStaticText( dynamicText.Name, dynamicText.Format, text, defaultCulture.Name, dictionaryScope.Name, dynamicText.ModificationUser, DateTime.UtcNow ); }
public InventoryRightPane(PartyCharacterId activeCharacter, string exitButtonId, bool showTotalPartyGold) : base(Handlers) { var header = new Header(new StringId(AssetType.SystemText, 0, (int)SystemTextId.Inv_Backpack)); var slotSpans = new IUiElement[InventoryHeight]; for (int j = 0; j < InventoryHeight; j++) { var slotsInRow = new IUiElement[InventoryWidth]; for (int i = 0; i < InventoryWidth; i++) { int index = j * InventoryWidth + i; slotsInRow[i] = new InventoryBackpackSlot(activeCharacter, index); } slotSpans[j] = new HorizontalStack(slotsInRow); } var slotStack = new VerticalStack(slotSpans); //var slotFrame = new ButtonFrame(slotStack) { State = ButtonState.Pressed, Theme = new FrameTheme() }; HorizontalStack moneyAndFoodStack; if (showTotalPartyGold) { var money = new Button(GoldSummaryButtonId, new VerticalStack( new Padding(64, 0), new UiSprite <CoreSpriteId>(CoreSpriteId.UiGold) { Highlighted = true }, new Text("Total party gold $10.0") ) { Greedy = false } ) { IsPressed = true }; moneyAndFoodStack = new HorizontalStack(money); } else { var goldSource = new DynamicText(() => { var player = Resolve <IParty>()[activeCharacter]; var gold = player?.Apparent.Inventory.Gold ?? 0; return(new[] { new TextBlock($"{gold / 10}.{gold % 10}") }); }, x => _version); var goldButton = new Button(GoldButtonId, new VerticalStack( new Padding(31, 0), new UiSprite <CoreSpriteId>(CoreSpriteId.UiGold), new Text(goldSource) ) { Greedy = false }); var foodSource = new DynamicText(() => { var player = Resolve <IParty>()[activeCharacter]; var food = player?.Apparent.Inventory.Rations ?? 0; return(new[] { new TextBlock(food.ToString()) }); }, x => _version); var foodButton = new Button(FoodButtonId, new VerticalStack( new Padding(31, 0), new UiSprite <CoreSpriteId>(CoreSpriteId.UiFood), new Text(foodSource) ) { Greedy = false }); moneyAndFoodStack = new HorizontalStack(goldButton, foodButton); } var stack = new VerticalStack( header, slotStack, // slotFrame, new Padding(0, 2), moneyAndFoodStack, new Padding(0, 9), new InventoryExitButton(exitButtonId) ) { Greedy = false }; Children.Add(stack); }
internal static string ToQueryString( string source, int? width, int? height, int clientCacheDuration, int serverCacheDuration, RotateFlipType rotateFlip, bool drawGrayscale, bool drawSepia, DynamicText text, DynamicImageFormat imageFormat, KeyValuePair<Type, IDictionary<string, string>>? imageCreator, Dictionary<Type, IDictionary<string, string>> imageTransformations) { HttpServerUtility server = HttpContext.Current.Server; string parameterFormat = "{0}={1}"; Dictionary<string, string> parameters = new Dictionary<string, string>(); // width if (width.HasValue && (0 < width.Value)) { parameters.Add( ResizeImageTransformation.SIZEW_KEY, string.Format(parameterFormat, ResizeImageTransformation.SIZEW_KEY, width.Value)); } // height if (height.HasValue && (0 < height.Value)) { parameters.Add( ResizeImageTransformation.SIZEH_KEY, string.Format(parameterFormat, ResizeImageTransformation.SIZEH_KEY, height.Value)); } // client cache duration if (0 < clientCacheDuration) { parameters.Add( DynamicImageProvider.CLIENTCACHEDUR_KEY, string.Format(parameterFormat, DynamicImageProvider.CLIENTCACHEDUR_KEY, clientCacheDuration)); } // server cache duration if (0 < serverCacheDuration) { parameters.Add( DynamicImageProvider.SERVERCACHEDUR_KEY, string.Format(parameterFormat, DynamicImageProvider.SERVERCACHEDUR_KEY, serverCacheDuration)); } // rotate flip if (RotateFlipType.RotateNoneFlipNone != rotateFlip) { parameters.Add( RotateFlipImageTransformation.ROTATETYPE_KEY, string.Format(parameterFormat, RotateFlipImageTransformation.ROTATETYPE_KEY, rotateFlip)); } // grayscale if (drawGrayscale) { parameters.Add( GrayscaleImageTransformation.GRAYSCALE_KEY, string.Format(parameterFormat, GrayscaleImageTransformation.GRAYSCALE_KEY, drawGrayscale)); } // sepia if (drawSepia) { parameters.Add( SepiaImageTransformation.SEPIA_KEY, string.Format(parameterFormat, SepiaImageTransformation.SEPIA_KEY, drawSepia)); } if ((null != text) && !string.IsNullOrEmpty(text.Value)) { // text parameters.Add( TextImageTransformation.TEXTVALUE_KEY, string.Format(parameterFormat, TextImageTransformation.TEXTVALUE_KEY, server.UrlEncode(text.Value))); // text font if (null != text.Font) { string stringFont = new FontConverter().ConvertToString(text.Font); if ("Arial;10.0f" != stringFont) { parameters.Add( TextImageTransformation.TEXTFONT_KEY, string.Format(parameterFormat, TextImageTransformation.TEXTFONT_KEY, server.UrlEncode(stringFont))); } } // text color if (Color.Black != text.Color) { parameters.Add( TextImageTransformation.TEXTCOLOR_KEY, string.Format(parameterFormat, TextImageTransformation.TEXTCOLOR_KEY, text.Color.ToArgb())); } // text halignment if (StringAlignment.Far != text.HorizontalAlign) { parameters.Add( TextImageTransformation.TEXTHEIGHTALIGN_KEY, string.Format(parameterFormat, TextImageTransformation.TEXTHEIGHTALIGN_KEY, text.HorizontalAlign)); } // text valignment if (StringAlignment.Far != text.VerticalAlign) { parameters.Add( TextImageTransformation.TEXTWIDTHALIGN_KEY, string.Format(parameterFormat, TextImageTransformation.TEXTWIDTHALIGN_KEY, text.VerticalAlign)); } } // image format if (DynamicImageFormat.Original != imageFormat) { parameters.Add( DynamicImageProvider.IMAGEFORMAT_KEY, string.Format(parameterFormat, DynamicImageProvider.IMAGEFORMAT_KEY, imageFormat)); } if ((null == imageCreator) || (null == imageCreator.Value.Key)) { // source if (!string.IsNullOrEmpty(source)) { parameters.Add( LocalizedImageCreation.SOURCE_KEY, string.Format(parameterFormat, LocalizedImageCreation.SOURCE_KEY, server.UrlEncode(source))); } } // set for last the custom creators and transformations // to be able to yield duplicate keys // image creation type if ((null != imageCreator) && (null != imageCreator.Value.Key)) { parameters.Add( DynamicImageProvider.CREATIONTYPE_KEY, string.Format(parameterFormat, DynamicImageProvider.CREATIONTYPE_KEY, server.UrlEncode(imageCreator.Value.Key.AssemblyQualifiedName))); if ((null != imageCreator.Value.Value) && (0 < imageCreator.Value.Value.Count)) { foreach (KeyValuePair<string, string> param in imageCreator.Value.Value) { if (!string.IsNullOrEmpty(param.Key)) { if (parameters.ContainsKey(param.Key) || param.Key.StartsWith(DynamicImageProvider.TRANSFTYPEPREFIX_KEY, StringComparison.InvariantCultureIgnoreCase)) { throw new InvalidOperationException("Duplicate parameter key in query string (creation type)."); } parameters.Add(param.Key, string.Format(parameterFormat, server.UrlEncode(param.Key), server.UrlEncode(param.Value))); } } } } // image tranformations types if ((null != imageTransformations) && (0 < imageTransformations.Count)) { int i = 0; foreach (Type t in imageTransformations.Keys) { string typeKey = string.Format("{0}{1}", DynamicImageProvider.TRANSFTYPEPREFIX_KEY, i++); parameters.Add( typeKey, string.Format(parameterFormat, typeKey, server.UrlEncode(t.AssemblyQualifiedName))); if ((null != imageTransformations[t]) && (0 < imageTransformations[t].Count)) { foreach (KeyValuePair<string, string> param in imageTransformations[t]) { if (parameters.ContainsKey(param.Key) || param.Key.StartsWith(DynamicImageProvider.TRANSFTYPEPREFIX_KEY, StringComparison.InvariantCultureIgnoreCase)) { throw new InvalidOperationException("Duplicate parameter key in query string (creation type)."); } parameters.Add(param.Key, string.Format(parameterFormat, server.UrlEncode(param.Key), server.UrlEncode(param.Value))); } } } } return (parameters.Count > 0) ? string.Join("&", new List<string>(parameters.Values).ToArray()) : string.Empty; }
public TimeActions(DynamicText label, int timeUnits) { startingTimeUnits = timeUnits; timeLabel = label; ResetTimeUnits(); }
private string GenerateText(int length, string charArray) { if (string.IsNullOrEmpty(charArray)) { return null; } // generate a new text string text = string.Empty; for (int i = 0; i < length; i++) { text += charArray[CaptchaImage.random.Next(charArray.Length)]; } return text; }
/// <summary> /// Creates a gradient button image according to the specified params. /// </summary> /// <param name="parameters">The creator params.</param> /// <returns>A new image based on the params.</returns> public Image Get(NameValueCollection parameters) { TextContainerSizeType textSizeType; if (!TextDependentImageCreator.ParseTextSizeParam(parameters, out textSizeType)) { textSizeType = TextContainerSizeType.Specified; } // the size is required Size size; if (!ResizeImageTransformation.ParseSizeParam(parameters, out size)) { throw new ArgumentNullException("size"); } Image image; switch (textSizeType) { case TextContainerSizeType.Specified: { using (Bitmap temp = new Bitmap(size.Width, size.Height)) { MemoryStream ms = new MemoryStream(); temp.Save(ms, ImageFormat.Png); image = Image.FromStream(ms); } break; } case TextContainerSizeType.StrechToText: { // fit the size on the text DynamicText text; if (!TextImageTransformation.ParseTextParam(parameters, out text)) { text = new DynamicText(); text.Value = "Gradient button"; } Size textSize; using (Bitmap temp = new Bitmap(size.Width, size.Height)) { using (Graphics g = Graphics.FromImage(temp)) { textSize = g.MeasureString(text.Value, text.Font).ToSize(); } } using (Bitmap temp = new Bitmap(textSize.Width + TextDependentImageCreator.padding.Width, textSize.Height + TextDependentImageCreator.padding.Height)) { MemoryStream ms = new MemoryStream(); temp.Save(ms, ImageFormat.Png); image = Image.FromStream(ms); } break; } default: { throw new NotSupportedException("textSizeType"); } } // add background image using (Graphics g = Graphics.FromImage(image)) { // add transparent background using (Pen pen = new Pen(Color.Transparent)) { g.DrawRectangle(pen, new Rectangle(Point.Empty, new Size(image.Width, image.Height))); } } return image; }
// Methods /// <summary> /// Utility method that returns a query string representation based on the provided parameter values. /// </summary> /// <param name="source">The image source.</param> /// <param name="width">The image width.</param> /// <param name="height">The image height.</param> /// <param name="clientCacheDuration">The image client cache duration.</param> /// <param name="serverCacheDuration">The image server cache duration.</param> /// <param name="rotateFlip">The image rotate flip type.</param> /// <param name="drawGrayscale">The image draw grayscale type.</param> /// <param name="drawSepia">The image draw sepia type.</param> /// <param name="text">The image dynamic text.</param> /// <param name="gradientBackground">The button gradient background.</param> /// <param name="sizeType">The button size type.</param> /// <param name="textRenderTime">The time when the text is rendered.</param> internal static string ToQueryString( int width, int height, int clientCacheDuration, int serverCacheDuration, RotateFlipType rotateFlip, bool drawGrayscale, bool drawSepia, DynamicText text, DynamicImageFormat imageFormat, KeyValuePair<Type, IDictionary<string, string>>? imageCreator, Dictionary<Type, IDictionary<string, string>> imageTransformations, GradientBackground gradientBackground, TextContainerSizeType sizeType) { string dynamicImageQueryString = DynamicImageProvider.ToQueryString( null, width, height, clientCacheDuration, serverCacheDuration, rotateFlip, drawGrayscale, drawSepia, text, imageFormat, imageCreator, imageTransformations); List<string> parameters = new List<string>(); string parameterFormat = "{0}={1}"; if (null != gradientBackground) { // gradient border color if (Color.Gray != gradientBackground.BorderColor) { parameters.Add(string.Format(parameterFormat, GradientButtonImageTransformation.GRADIENTBKGCOLOR_KEY, gradientBackground.BorderColor.ToArgb())); } // gradient start color if (Color.Brown != gradientBackground.GradientStartColor) { parameters.Add(string.Format(parameterFormat, GradientButtonImageTransformation.GRADIENTBKGSTARTCOLOR_KEY, gradientBackground.GradientStartColor.ToArgb())); } // gradient end color if (Color.White != gradientBackground.GradientEndColor) { parameters.Add(string.Format(parameterFormat, GradientButtonImageTransformation.GRADIENTBKGENDCOLOR_KEY, gradientBackground.GradientEndColor.ToArgb())); } // gradient round corner radius if (0 <= gradientBackground.RoundCornerRadius) { parameters.Add(string.Format(parameterFormat, GradientButtonImageTransformation.GRADIENTBKGRCORNER_KEY, gradientBackground.RoundCornerRadius)); } // gradient border width if (0 <= gradientBackground.BorderWidth) { parameters.Add(string.Format(parameterFormat, GradientButtonImageTransformation.GRADIENTBKGBWIDTH_KEY, gradientBackground.BorderWidth)); } // gradient type if (GradientType.BackwardDiagonal != gradientBackground.Type) { parameters.Add(string.Format(parameterFormat, GradientButtonImageTransformation.GRADIENTBKGTYPE_KEY, gradientBackground.Type)); } // gradient inner border color if (Color.Gray != gradientBackground.InnerBorderColor) { parameters.Add(string.Format(parameterFormat, GradientButtonImageTransformation.GRADIENTBKGIBCOLOR_KEY, gradientBackground.InnerBorderColor.ToArgb())); } // gradient inner border width if (0 <= gradientBackground.InnerBorderWidth) { parameters.Add(string.Format(parameterFormat, GradientButtonImageTransformation.GRADIENTBKGIBWIDTH_KEY, gradientBackground.InnerBorderWidth)); } } // size type if (TextContainerSizeType.Specified != sizeType) { parameters.Add(string.Format(parameterFormat, TextDependentImageCreator.TEXTCONTSIZETYPE_KEY, sizeType)); } return (0 < parameters.Count) ? string.Concat(dynamicImageQueryString, "&", string.Join("&", parameters.ToArray())) : dynamicImageQueryString; }
/// <summary> /// Клонировать объект /// </summary> public override object Clone() { DynamicText dynamicText = new DynamicText(); dynamicText.CopyFrom(this); return dynamicText; }
/// <summary> /// Сохранить представление в поток /// </summary> public void SaveToStream(Stream stream) { XmlDocument xmlDoc = new XmlDocument(); XmlDeclaration xmlDecl = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null); xmlDoc.AppendChild(xmlDecl); // запись заголовка представления XmlElement rootElem = xmlDoc.CreateElement("SchemeView"); rootElem.SetAttribute("title", SchemeParams.Title); xmlDoc.AppendChild(rootElem); // запись параметров схемы XmlElement schemeElem = xmlDoc.CreateElement("Scheme"); rootElem.AppendChild(schemeElem); WriteProp(schemeElem, "Size", SchemeParams.Size); WriteProp(schemeElem, "BackColor", SchemeParams.BackColor); if (SchemeParams.BackImage != null) { WriteProp(schemeElem, "BackImageName", SchemeParams.BackImage.Name); } WriteProp(schemeElem, "ForeColor", SchemeParams.ForeColor); WriteProp(schemeElem, "Font", SchemeParams.Font); // запись элементов схемы XmlElement elemsElem = xmlDoc.CreateElement("Elements"); rootElem.AppendChild(elemsElem); foreach (Element elem in ElementList) { XmlElement elemElem = xmlDoc.CreateElement(elem.GetType().Name); elemsElem.AppendChild(elemElem); WriteProp(elemElem, "ID", elem.ID); WriteProp(elemElem, "Name", elem.Name); WriteProp(elemElem, "Location", elem.Location); WriteProp(elemElem, "Size", elem.Size); WriteProp(elemElem, "ZIndex", elem.ZIndex); if (elem is StaticText) { StaticText staticText = (StaticText)elem; WriteProp(elemElem, "AutoSize", staticText.AutoSize); WriteProp(elemElem, "BackColor", staticText.BackColor); WriteProp(elemElem, "BorderColor", staticText.BorderColor); WriteProp(elemElem, "ForeColor", staticText.ForeColor); WriteProp(elemElem, "Font", staticText.Font); WriteProp(elemElem, "Text", staticText.Text); WriteProp(elemElem, "WordWrap", staticText.WordWrap); WriteProp(elemElem, "HAlign", staticText.HAlign); WriteProp(elemElem, "VAlign", staticText.VAlign); if (elem is DynamicText) { DynamicText dynamicText = (DynamicText)elem; WriteProp(elemElem, "ToolTip", dynamicText.ToolTip); WriteProp(elemElem, "UnderlineOnHover", dynamicText.UnderlineOnHover); WriteProp(elemElem, "BackColorOnHover", dynamicText.BackColorOnHover); WriteProp(elemElem, "BorderColorOnHover", dynamicText.BorderColorOnHover); WriteProp(elemElem, "ForeColorOnHover", dynamicText.ForeColorOnHover); WriteProp(elemElem, "InCnlNum", dynamicText.InCnlNum); WriteProp(elemElem, "CtrlCnlNum", dynamicText.CtrlCnlNum); WriteProp(elemElem, "Action", dynamicText.Action); WriteProp(elemElem, "ShowValue", dynamicText.ShowValue); } elemsElem.AppendChild(elemElem); } else if (elem is StaticPicture) { StaticPicture staticPicture = (StaticPicture)elem; WriteProp(elemElem, "BorderColor", staticPicture.BorderColor); if (staticPicture.Image != null) { WriteProp(elemElem, "ImageName", staticPicture.Image.Name); } WriteProp(elemElem, "ImageStretch", staticPicture.ImageStretch); if (elem is DynamicPicture) { DynamicPicture dynamicPicture = (DynamicPicture)elem; WriteProp(elemElem, "ToolTip", dynamicPicture.ToolTip); if (dynamicPicture.ImageOnHover != null) { WriteProp(elemElem, "ImageOnHoverName", dynamicPicture.ImageOnHover.Name); } WriteProp(elemElem, "BorderColorOnHover", dynamicPicture.BorderColorOnHover); WriteProp(elemElem, "InCnlNum", dynamicPicture.InCnlNum); WriteProp(elemElem, "CtrlCnlNum", dynamicPicture.CtrlCnlNum); WriteProp(elemElem, "Action", dynamicPicture.Action); if (dynamicPicture.Conditions != null && dynamicPicture.Conditions.Count > 0) { XmlElement condsElem = xmlDoc.CreateElement("Conditions"); elemElem.AppendChild(condsElem); foreach (Condition cond in dynamicPicture.Conditions) { WriteProp(condsElem, "Condition", cond); } } } } } // запись словаря изображений схемы XmlElement imagesElem = xmlDoc.CreateElement("Images"); rootElem.AppendChild(imagesElem); foreach (Image image in ImageDict.Values) { WriteProp(imagesElem, "Image", image); } // запись фильтра по входным каналам XmlElement cnlsFilterElem = xmlDoc.CreateElement("CnlsFilter"); cnlsFilterElem.InnerText = string.Join <int>(" ", CnlsFilter); rootElem.AppendChild(cnlsFilterElem); xmlDoc.Save(stream); }
private void ProcessDynamicText(DynamicText directive) { GenerateDebugLine(this.builder, directive.Line); this.builder.AppendLine(directive.Value); }
public override void Start() { base.Start(); GameObject level = GameObject.Find("LevelText"); LevelText = DynamicText.GetTextMesh(level.transform.GetChild(0).gameObject); LevelText.SetText(""); pausedMenu = navigate.GetMenu("Pause Menu"); }
public LogicalInventorySlot(InventorySlotId id) { On <InventoryChangedEvent>(e => { if (e.Id == _id.Id) { _version++; } }); _id = id; IText amountSource; if (id.Slot == ItemSlotId.Gold) { amountSource = new DynamicText(() => { var gold = Inventory?.Gold.Amount ?? 0; return(new[] { new TextBlock($"{gold / 10}.{gold % 10}") }); // i18n: May need to vary based on the current game language }, x => _version); } else if (id.Slot == ItemSlotId.Rations) { amountSource = new DynamicText(() => { var food = Inventory?.Rations.Amount ?? 0; return(new[] { new TextBlock(food.ToString(CultureInfo.InvariantCulture)) }); // i18n: Will need to be changed if we support a language that doesn't use Hindu-Arabic numerals. }, x => _version); } else { amountSource = new DynamicText(() => { var slotInfo = Slot; return(slotInfo == null || slotInfo.Amount < 2 ? Array.Empty <TextBlock>() : new[] { new TextBlock(slotInfo.Amount.ToString(CultureInfo.InvariantCulture)) { Alignment = TextAlignment.Right } }); // i18n: Will need to be changed if we support a language that doesn't use Hindu-Arabic numerals. }, x => _version); } _visual = AttachChild(new VisualInventorySlot(_id, amountSource, () => Slot)) .OnButtonDown(() => { var im = Resolve <IInventoryManager>(); var inputBinder = Resolve <IInputBinder>(); if (im.ItemInHand.Item != null || inputBinder.IsCtrlPressed || inputBinder.IsShiftPressed || inputBinder.IsAltPressed) { _visual.SuppressNextDoubleClick = true; } }) .OnClick(() => { var inputBinder = Resolve <IInputBinder>(); if (inputBinder.IsCtrlPressed) { Raise(new InventoryPickupEvent(null, _id.Id, _id.Slot)); } else if (inputBinder.IsShiftPressed) { Raise(new InventoryPickupEvent(5, _id.Id, _id.Slot)); } else if (inputBinder.IsAltPressed) { Raise(new InventoryPickupEvent(1, _id.Id, _id.Slot)); } else { Raise(new InventorySwapEvent(_id.Id, _id.Slot)); } }) .OnDoubleClick(() => Raise(new InventoryPickupEvent(null, _id.Id, _id.Slot))) .OnRightClick(OnRightClick) .OnHover(Hover) .OnBlur(Blur); }
// Methods internal static bool ParseTextParam(NameValueCollection parameters, out DynamicText text) { if ((null != parameters) && !string.IsNullOrEmpty(parameters[TextImageTransformation.TEXTVALUE_KEY])) { text = new DynamicText(); text.Value = parameters[TextImageTransformation.TEXTVALUE_KEY]; if (!string.IsNullOrEmpty(parameters[TextImageTransformation.TEXTFONT_KEY])) { text.Font = (Font)new FontConverter().ConvertFromString(parameters[TextImageTransformation.TEXTFONT_KEY]); } if (!string.IsNullOrEmpty(parameters[TextImageTransformation.TEXTCOLOR_KEY])) { text.Color = Color.FromArgb(int.Parse(parameters[TextImageTransformation.TEXTCOLOR_KEY])); } if (!string.IsNullOrEmpty(parameters[TextImageTransformation.TEXTHEIGHTALIGN_KEY])) { text.HorizontalAlign = (StringAlignment)Enum.Parse(typeof(StringAlignment), parameters[TextImageTransformation.TEXTHEIGHTALIGN_KEY]); } if (!string.IsNullOrEmpty(parameters[TextImageTransformation.TEXTWIDTHALIGN_KEY])) { text.VerticalAlign = (StringAlignment)Enum.Parse(typeof(StringAlignment), parameters[TextImageTransformation.TEXTWIDTHALIGN_KEY]); } return true; } else { text = null; return false; } }
// Use this for initialization void Start() { gameplay = this; _MainCamera = (Camera)gameObject.GetComponent("Camera"); _SelectionListWindow = new SelectionListWindow(Screen.width / 2, Screen.height / 2 + 100); _AbilityManagerList = new SelectionListGenericWindow(Screen.width / 2, Screen.height / 2 + 100); _SelectionCardNameWindow = new SelectionCardNameWindow(Screen.width / 2 - 50, Screen.height / 2); _SelectionCardNameWindow.CreateCardList(); _SelectionCardNameWindow.SetGame(this); _DecisionWindow = new DecisionWindow(Screen.width / 2, Screen.height / 2 + 100); _DecisionWindow.SetGame(this); _NotificationWindow = new NotificacionWindow(Screen.width / 2, Screen.height / 2 + 100); _NotificationWindow.SetGame(this); FromHandToBindList = new List<Card>(); AttackedList = new List<Card>(); UnitsCalled = new List<Card>(); EnemySoulBlastQueue = new List<Card>(); _PopupNumber = new PopupNumber(); _MouseHelper = new MouseHelper(this); GameChat = new Chat(); opponent = PlayerVariables.opponent; playerHand = new PlayerHand(); enemyHand = new EnemyHand(); field = new Field(this); enemyField = new EnemyField(this); guardZone = new GuardZone(); guardZone.SetField(field); guardZone.SetEnemyField(enemyField); guardZone.SetGame(this); fieldInfo = new FieldInformation(); EnemyFieldInfo = new EnemyFieldInformation(); Data = new CardDataBase(); List<CardInformation> tmpList = Data.GetAllCards(); for(int i = 0; i < tmpList.Count; i++) { _SelectionCardNameWindow.AddNewNameToTheList(tmpList[i]); } //camera = (CameraPosition)GameObject.FindGameObjectWithTag("MainCamera").GetComponent("CameraPosition"); //camera.SetLocation(CameraLocation.Hand); LoadPlayerDeck(); LoadEnemyDeck(); gamePhase = GamePhase.CHOOSE_VANGUARD; bDrawing = true; bIsCardSelectedFromHand = false; bPlayerTurn = false; bDriveAnimation = false; bChooseTriggerEffects = false; DriveCard = null; //Texture showed above a card when this is selected for an action (An attack, for instance) CardSelector = GameObject.FindGameObjectWithTag("CardSelector"); _CardMenuHelper = (CardHelpMenu)GameObject.FindGameObjectWithTag("CardMenuHelper").GetComponent("CardHelpMenu"); _GameHelper = (GameHelper)GameObject.FindGameObjectWithTag("GameHelper").GetComponent("GameHelper"); bPlayerTurn = PlayerVariables.bFirstTurn; //ActivePopUpQuestion(playerDeck.DrawCard()); _CardMenu = new CardMenu(this); _AbilityManager = new AbilityManager(this); _AbilityManagerExt = new AbilityManagerExt(); _GameHelper.SetChat(GameChat); _GameHelper.SetGame(this); EnemyTurnStackedCards = new List<Card>(); dummyUnitObject = new UnitObject(); dummyUnitObject.SetGame(this); stateDynamicText = new DynamicText(); }
// Methods internal static string ToQueryString( int width, int height, int clientCacheDuration, int serverCacheDuration, RotateFlipType rotateFlip, bool drawGrayscale, bool drawSepia, DynamicText text, DynamicImageFormat imageFormat, KeyValuePair<Type, IDictionary<string, string>>? imageCreator, Dictionary<Type, IDictionary<string, string>> imageTransformations, TextContainerSizeType sizeType, CaptchaStyle distortionStyle, ReadnessLevel readnessLevel, Color backColor) { string dynamicImageQueryString = DynamicImageProvider.ToQueryString( null, width, height, clientCacheDuration, serverCacheDuration, rotateFlip, drawGrayscale, drawSepia, text, imageFormat, imageCreator, imageTransformations); List<string> parameters = new List<string>(); string parameterFormat = "{0}={1}"; // size type if (TextContainerSizeType.Specified != sizeType) { parameters.Add(string.Format(parameterFormat, TextDependentImageCreator.TEXTCONTSIZETYPE_KEY, sizeType)); } // distortion style if (CaptchaStyle.Confetti != distortionStyle) { parameters.Add(string.Format(parameterFormat, CaptchaImageTransformation.DISTSTYLE_KEY, distortionStyle)); } // readness level if (ReadnessLevel.Normal != readnessLevel) { parameters.Add(string.Format(parameterFormat, CaptchaImageTransformation.READLEVEL_KEY, readnessLevel)); } // back color if (Color.White != backColor) { parameters.Add(string.Format(parameterFormat, CaptchaImageTransformation.CAPTCHABACKCOLOR_KEY, backColor.ToArgb())); } return (0 < parameters.Count) ? string.Concat(dynamicImageQueryString, "&", string.Join("&", parameters.ToArray())) : dynamicImageQueryString; }
public override void Read(string filename) { FileData f = new FileData(filename); int magic = f.readInt(); // I don't know what this is for, but it's always the same value // so I use it as an endianness sentinel. int endianness = f.readInt(); if (endianness == 0x10) { f.Endian = System.IO.Endianness.Big; Endian = System.IO.Endianness.Big; } else { f.Endian = System.IO.Endianness.Little; Endian = System.IO.Endianness.Little; } f.skip(0x14); int fileSize = f.readInt(); f.skip(0x20); bool done = false; while (!done) { ChunkType chunkType = (ChunkType)f.readInt(); int chunkSize = f.readInt(); // in dwords! switch (chunkType) { // Invalid chunk case ChunkType.Invalid: // uhhh. i think there's a specific exception for this throw new Exception("Malformed file"); case ChunkType.Symbols: int numSymbols = f.readInt(); while (symbols.Count() < numSymbols) { int len = f.readInt(); symbols.Add(f.readString()); f.skip(4 - (f.pos() % 4)); } break; case ChunkType.Colors: int numColors = f.readInt(); for (int i = 0; i < numColors; i++) { Color color; color.r = (short)f.readShort(); color.g = (short)f.readShort(); color.b = (short)f.readShort(); color.a = (short)f.readShort(); colors.Add(color); } break; case ChunkType.End: done = true; break; case ChunkType.Transforms: int numTransforms = f.readInt(); for (int i = 0; i < numTransforms; i++) { // idk if this is the right order for opentk. should be? transforms.Add(new Matrix3x2( f.readFloat(), f.readFloat(), f.readFloat(), f.readFloat(), f.readFloat(), f.readFloat() )); } break; case ChunkType.Positions: int numPositions = f.readInt(); for (int i = 0; i < numPositions; i++) { positions.Add(new Vector2(f.readFloat(), f.readFloat())); } break; case ChunkType.Properties: properties.unk1 = f.readInt(); properties.unk2 = f.readInt(); properties.unk3 = f.readInt(); properties.unk4 = f.readInt(); properties.unk5 = f.readInt(); properties.unk6 = f.readInt(); properties.unk7 = f.readInt(); properties.framerate = f.readInt(); properties.width = f.readInt(); properties.height = f.readInt(); properties.unk8 = f.readInt(); properties.unk9 = f.readInt(); break; case ChunkType.TextureAtlases: int numAtlases = f.readInt(); for (int i = 0; i < numAtlases; i++) { TextureAtlas atlas = new TextureAtlas(); atlas.id = f.readInt(); atlas.unk = f.readInt(); atlas.width = f.readFloat(); atlas.height = f.readFloat(); textureAtlases.Add(atlas); } break; case ChunkType.Shape: shapes.Add(new Shape(f)); break; case ChunkType.DynamicText: DynamicText text = new DynamicText(); text.id = f.readInt(); text.unk1 = f.readInt(); text.placeholderText = symbols[f.readInt()]; text.unk2 = f.readInt(); text.colorId = f.readInt(); text.unk3 = f.readInt(); text.unk4 = f.readInt(); text.unk5 = f.readInt(); text.alignment = (short)f.readShort(); text.unk6 = (short)f.readShort(); text.unk7 = f.readInt(); text.unk8 = f.readInt(); text.size = f.readFloat(); text.unk9 = f.readInt(); text.unk10 = f.readInt(); text.unk11 = f.readInt(); text.unk12 = f.readInt(); texts.Add(text); break; case ChunkType.MovieClip: movieclips.Add(new MovieClip(f)); break; default: f.skip(chunkSize * 4); break; } } }