public void RenderSkillsPanel(List <SkillData> data) { if (data != null) { if (skillsOptionPrefab != null) { int new_panels = data.Count - content.childCount; for (int i = 0; i < new_panels; i++) { Instantiate(skillsOptionPrefab, content).gameObject.SetActive(false); } } int total = content.childCount; int index = 0; for (int i = 0; i < total; i++) { SkillRow row = content.GetChild(i).GetComponent <SkillRow>(); SkillData skill_data = data[index]; if (row != null) { if (EffectsController.instance.GetCurrentLevel() >= skill_data.UnlocksAtLevel) { row.RenderSkillBlock(skill_data); } index++; } } } else { Debug.LogError("Skill data is null"); } }
public void AfterSkillUsed(int skillId) { foreach (Transform child in content) { SkillRow row = child.GetComponent <SkillRow>(); if (row != null && row.currentSkill.Id == skillId) { row.AfterSkillUsed(); } } }
public Skill(SkillRow skillRow) { EffectType = skillRow.EffectType; Variety = skillRow.Variety; ID = skillRow.ID; Name = skillRow.Name; MpCost = skillRow.MpCost; Multiple = skillRow.Multiple; IsConstant = skillRow.IsConstant; EffectValue = skillRow.EffectValue; IsRemote = skillRow.IsRemote; EffectiveWay = skillRow.EffectiveWay; EffectiveResult = skillRow.EffectiveResult; Duration = skillRow.Duration; MoveSpeed = skillRow.MoveSpeed; Desc = _GetDescription(); if (!string.IsNullOrEmpty(skillRow.ImageKey)) { ImageKey = IMAGE_PATH_PREFIX + skillRow.ImageKey; } }
public void UpdateView() { pushedPage = null; var sheet = CharacterSheetStorage.Instance.selectedCharacter; if (sheet == null) { return; } #if USE_GRID var grid = new Grid() { ColumnSpacing = 5, RowSpacing = 5, BackgroundColor = Color.LightGray, }; grid.ColumnDefinitions = new ColumnDefinitionCollection() { new ColumnDefinition() { Width = GridLength.Auto, }, new ColumnDefinition() { Width = GridLength.Star, }, new ColumnDefinition() { Width = GridLength.Auto, }, }; Skills.Children.Add(grid); #endif var skillsCount = sheet.skills.Count; var rowsCount = skillRows.Count; var updateCount = Math.Min(skillsCount, rowsCount); var index = skillsCount; var hasChanges = false; while (--index >= 0) { if (sheet.skills[index] == null) { sheet.skills.RemoveAt(index); hasChanges = true; } } if (hasChanges) { CharacterSheetStorage.Instance.SaveCharacter(); } for (var i = 0; i < updateCount; i++) { var skillIndex = i; var row = skillRows[i]; var skill = sheet.skills[i]; UpdateValue(row.classSkill, skill.classSkill); UpdateValue(row.name, skill.Name); row.name.TextColor = (skill.trainedOnly && (skill.rank.GetTotal(sheet) <= 0)) ? Color.Red : Color.Black; UpdateValue(row.total, skill.GetTotal(sheet).ToString()); EventHandler handler = (s, e) => Skill_DoubleTap(skill, skillIndex); MainPage.SetTapHandler(row.nameFrame, handler, 2); MainPage.SetTapHandler(row.totalFrame, handler, 2); } var count = skillsCount - rowsCount; if (count > 0) { for (var i = 0; i < count; i++) { var skillIndex = updateCount + i; var skill = sheet.skills[skillIndex]; var skillRow = new SkillRow(); skillRow.classSkill = new CheckBox() { IsChecked = skill.classSkill, IsEnabled = false, HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Center, }; #if !USE_GRID skillRow.layout = new StackLayout() { Orientation = StackOrientation.Horizontal, }; #endif skillRow.nameFrame = CreateFrame(skill.Name); skillRow.nameFrame.HorizontalOptions = LayoutOptions.FillAndExpand; skillRow.name = skillRow.nameFrame.Content as Label; skillRow.name.TextColor = (skill.trainedOnly && (skill.rank.GetTotal(sheet) <= 0)) ? Color.Red : Color.Black; skillRow.totalFrame = CreateFrame(skill.GetTotal(sheet).ToString()); skillRow.totalFrame.HorizontalOptions = LayoutOptions.End; skillRow.totalFrame.WidthRequest = 40; skillRow.total = skillRow.totalFrame.Content as Label; EventHandler handler = (s, e) => Skill_DoubleTap(skill, skillIndex); MainPage.AddTapHandler(skillRow.nameFrame, handler, 2); MainPage.AddTapHandler(skillRow.totalFrame, handler, 2); skillRows.Add(skillRow); #if USE_GRID var row = skillIndex + 1; grid.Children.Add(skillRow.classSkill, 0, row); grid.Children.Add(skillRow.nameFrame, 1, row); grid.Children.Add(skillRow.totalFrame, 2, row); #else skillRow.layout.Children.Add(skillRow.classSkill); skillRow.layout.Children.Add(skillRow.nameFrame); skillRow.layout.Children.Add(skillRow.totalFrame); Skills.Children.Add(skillRow.layout); #endif } } else if (count < 0) { while (skillRows.Count > sheet.skills.Count) { var last = skillRows.Count - 1; var skillRow = skillRows[last]; skillRows.RemoveAt(last); Skills.Children.Remove(skillRow.totalFrame); Skills.Children.Remove(skillRow.nameFrame); Skills.Children.Remove(skillRow.classSkill); } } #if USE_GRID rowsCount = skillRows.Count + 1; if ((grid.RowDefinitions == null) || (grid.RowDefinitions.Count != rowsCount)) { grid.RowDefinitions = new RowDefinitionCollection(); for (int i = 0; i < rowsCount; i++) { grid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto, }); } } #endif var ranksSpent = 0; foreach (var skill in sheet.skills) { ranksSpent += skill.rank.GetTotal(sheet); } var ranksLeft = sheet.skillRanks.GetTotal(sheet) - ranksSpent; SkillRanksLeft.Text = ranksLeft.ToString(); if (ranksLeft < 0) { SkillRanksLeft.TextColor = Color.Red; } else if (ranksLeft > 0) { SkillRanksLeft.TextColor = Color.Green; } else { SkillRanksLeft.TextColor = Color.Black; } Languages.Text = sheet.Languages; }
public void RemoveSkillRow(SkillRow row) { this.Rows.Remove(row); }
public void AddSkillRow(SkillRow row) { this.Rows.Add(row); }
public SpellEffectRow AddSpellEffectRow(string SpellEffectBaseId, SkillRow parentSkillRowBySkill_SpellEffect) { SpellEffectRow rowSpellEffectRow = ((SpellEffectRow)(this.NewRow())); object[] columnValuesArray = new object[] { SpellEffectBaseId, null, null}; if ((parentSkillRowBySkill_SpellEffect != null)) { columnValuesArray[2] = parentSkillRowBySkill_SpellEffect[6]; } rowSpellEffectRow.ItemArray = columnValuesArray; this.Rows.Add(rowSpellEffectRow); return rowSpellEffectRow; }
public SkillRowChangeEvent(SkillRow row, global::System.Data.DataRowAction action) { this.eventRow = row; this.eventAction = action; }
public AttributeCreation(CharacterCreation parent, CharacterCreationOutput output) { myParent = parent; myOutput = output; float y = 4; myPointsLabel = new UILabel(Font.Large, new Vector2(4, y)); AddChild(myPointsLabel); UnusedPoints = GameClient.CharacterUnusedAttribPoints; y += 30; foreach (CharAttribute attrib in CharAttribute.GetAll()) { var row = new AttribRow(this, attrib, myOutput); row.Top = y; row.Left = 4; y += 30; AddChild(row); } y += 20; var skills = CharSkill.GetAll(); skillRows = new SkillRow[skills.Length]; int i = 0; foreach (CharSkill skill in skills) { var row = new SkillRow(new Vector2(4, y), skill, myOutput); y += 25; skillRows[i] = row; i++; AddChild(row); } var button = new UIButton(new Vector2(150, 20), new Vector2(300 - 150 - 4, y)) { Text = "Create Character", CentreText = true }; AddChild(button); button.Click += new MouseButtonEventHandler(button_Click); var back = new UIButton(new Vector2(50, 20), new Vector2(4, y)) { Text = "Back", CentreText = true }; back.Click += new MouseButtonEventHandler(back_Click); AddChild(back); y += 20; Width = 300; Height = y + 4 + PaddingTop + PaddingBottom; }