private async void ListView_ItemSelected(object sender, SelectedItemChangedEventArgs e) { var item = e.SelectedItem as MainPageMenuItem; if (item == null) { return; } switch (item.Title) { case "Profil": await Navi.PushAsync(new Profile()); break; case "Ustawienia": await Navi.PushAsync(new Settings()); break; case "Pomoc": await Navi.PushAsync(new Help()); break; case "O aplikacji": await Navi.PushAsync(new AboutApp()); break; } IsPresented = false; MasterPage.ListView.SelectedItem = null; }
public override void activate(Navi navi) { if (navi.active_chip != null) // deactivate any other active chip before activating { navi.active_chip.deactivate(navi); } navi.active_chip = this; // If being activated by me if (navi.localOwner.Id == navi.owner.Id) { AC_dispObj = navi.AC_dispA; } // If being activated by enemy if (navi.localOwner.Id != navi.owner.Id) { AC_dispObj = navi.AC_dispB; } AC_dispObj.SetActive(true); AC_disp = AC_dispObj.GetComponent <ActiveChipDisplay>(); AC_disp.RecieveData(this); AC_disp.max_duration = power; AC_disp.duration = power; AC_disp.power_text.text = "" + Math.Ceiling(AC_disp.duration); AC_disp.duration_ring.fillAmount = AC_disp.duration / AC_disp.max_duration; // ***** Buster Charge Up ****** int i = 0; while (i < navi.charge_levels.Length) { navi.charge_levels[i] *= 0.75f; // reduce time for full charge by 25% i++; } }
} // empty constructor (surround pulls all animations from Tower public override void initAnim(Navi navi, ChipLogic c) { // grab effect sprite from Towers EffectDB.TOWER.initAnim(navi, c); // initAnim() stores sprite in c.chip_sprite c.chip_anim_frame = 0; // create renderer objects in all tiles surrounding navi int col = 1; while (col >= -1) // spawn in columns above, in, and below { if ((navi.column + col <= 5) && (navi.column + col >= 0)) // do not try to spawn off board { int r = 1; while (r >= -1) // spawn in rows ahead, in, and behind (for all good columns) { if ((navi.row + r <= 2) && (navi.row + r >= 0)) // do not try to spawn off board { if ((col != 0) || (r != 0)) // do not spawn on navi { GameObject attack_render = new GameObject(); attack_render.transform.position = navi.field.grid[navi.row + r][navi.column + col].transform.position; attack_render.AddComponent <SpriteRenderer>(); attack_render.GetComponent <SpriteRenderer>().sprite = c.chip_sprite[c.chip_anim_frame]; attack_render.GetComponent <SpriteRenderer>().sortingOrder = 1; SurroundTile st = new SurroundTile(navi.row + r, navi.column + col, false, attack_render); affectedArea.Add(st); } } r--; // row completed or failed } } col--; // column completed or failed } }
public override void OnSyncedUpdate(Navi navi, ChipLogic c) { c.frametimer -= Time.deltaTime; if (c.chip_anim_frame > 1) // attack is active on 3rd frame { int i = 0; while (i < affectedArea.Count) { if (!affectedArea[i].hit) // no hit from space yet, so check for hit // tests for hit and set to true if there is one so it won't check again { affectedArea[i].hit = navi.shot_handler.check_position(c.power, navi.playerNumber, c.stun, affectedArea[i].row, affectedArea[i].col, c.elem); } i++; } } if (c.frametimer <= 0) { c.frametimer = c.chipFR; if (c.chip_anim_frame < c.chip_sprite.Length - 1) // advance to next frame if not at end { c.chip_anim_frame++; foreach (SurroundTile bt in affectedArea) // update sprite of all burning tiles { bt.renderer.GetComponent <SpriteRenderer>().sprite = c.chip_sprite[c.chip_anim_frame]; } } else { c.deactivate(navi); } } }
public override void OnSyncedUpdate(Navi navi, ChipLogic c) { c.frametimer -= Time.deltaTime; if (c.frametimer <= 0) { c.frametimer = c.chipFR; if (c.chip_anim_frame < c.chip_sprite.Length - 1) // advance to next frame if not at end { c.chip_anim_frame++; c.chip_renderObj.GetComponent <SpriteRenderer>().sprite = c.chip_sprite[c.chip_anim_frame]; if (c.chip_anim_frame > 0) // cannon animation has 1 frame more than shoot at the front { navi.controlledSpriteSet(c.chip_anim_frame - 1); } if (c.chip_anim_frame == 2) { navi.shot_handler.check_bust(c.power, navi.playerNumber, c.stun, c.elem); // shot fired on 3rd frame } } else // animation finished { c.deactivate(navi); } } }
public override void initializeMap(GameRoot game_root) { MapCreator map_creator = MapCreator.get(); PartyControl party_control = PartyControl.get(); map_creator.setRoomNum(1, 1); map_creator.floor_root_go = new GameObject("Floor"); // 방 만들기. RoomController room = map_creator.createRoomFloor(new Map.RoomIndex(0, 0)); // 더미 방 만들기. map_creator.createVacancy(new Map.RoomIndex(0, -1)); // 방을 구분하는 벽을 만든다. map_creator.createRoomWall(); // 외벽을 만든다. map_creator.createOuterWalls(); GameRoot.get().createLocalPlayer(); GameRoot.get().createNetPlayers(); // 플레이어 위치 설정. chrBehaviorLocal local_player = PartyControl.get().getLocalPlayer(); Vector3 playerStartPosition = Vector3.zero; local_player.transform.position = playerStartPosition + PartyControl.get().getPositionOffset(local_player.control.global_index); for (int i = 0; i < PartyControl.get().getFriendCount(); i++) { chrBehaviorPlayer friend = PartyControl.get().getFriend(i); friend.control.cmdSetPositionAnon(playerStartPosition + PartyControl.get().getPositionOffset(friend.control.global_index)); } party_control.setCurrentRoom(room); // ボスの作成. chrControllerEnemyBase enemy; if (UsesHumanControlForBoss) { enemy = CharacterRoot.get().createEnemy("Boss1", "chrControllerEnemyBoss", "chrBehaviorEnemyBoss_Human") as chrControllerEnemyBase; } else { enemy = CharacterRoot.get().createEnemy("Boss1", "chrControllerEnemyBoss", "chrBehaviorEnemyBoss") as chrControllerEnemyBase; } enemy.cmdSetPosition(new Vector3(0.0f, 0.0f, 20.0f)); // 스테이터스 창. Navi.get().createStatusWindows(); }
public override void OnSyncedUpdate(Navi navi) { // update active chip display AC_disp.duration -= (Time.deltaTime * decay_rate); // Barrier loses 2 power per second, normal lifespan = 40s AC_disp.duration = (AC_disp.duration <= 0) ? 0 : AC_disp.duration; // no negative dur AC_disp.power_text.text = "" + Math.Ceiling(AC_disp.duration); AC_disp.duration_ring.fillAmount = AC_disp.duration / AC_disp.max_duration; // animate sprite frametimer -= Time.deltaTime; if (frametimer <= 0) { if (chip_anim_frame < chip_sprite.Length - 1) // advance to next frame if not at end { chip_anim_frame++; } else // repeat animation in reverse { Array.Reverse(chip_sprite); chip_anim_frame = 1; } chip_renderObj.GetComponent <SpriteRenderer>().sprite = chip_sprite[chip_anim_frame]; frametimer = chipFR; } // Terminate effect when duration runs out if (AC_disp.duration <= 0) { deactivate(navi); } }
public override void OnSyncedUpdate(Navi navi, ChipLogic c) { if (recov_amount > 3) // HP text number increase effect (going by 3s reduces strain) { recov_amount -= 3; navi.HP += 3; } else if (recov_amount > 0) // for non divisible by 3 { navi.HP += recov_amount; recov_amount = 0; } c.frametimer -= Time.deltaTime; if (c.frametimer <= 0) { c.frametimer = c.chipFR; if (c.chip_anim_frame < c.chip_sprite.Length - 1) // advance to next frame if not at end { c.chip_anim_frame++; c.chip_renderObj.GetComponent <SpriteRenderer>().sprite = c.chip_sprite[c.chip_anim_frame]; } else // animation finished { if (recov_amount > 0) // add any remaining chip.power to HP if animation was too short for HOT effect { navi.HP += recov_amount; recov_amount = 0; } c.deactivate(navi); } } }
public override void initAnim(Navi navi, ChipLogic c) { c.chip_sprite = effectAnim; c.chip_anim_frame = 0; c.frametimer = c.chipFR; current_row = navi.row; target_column = (navi.myNavi()) ? navi.column + 3 : navi.column - 3; // moves right if my navi, moves left if opponents target_column = (target_column < 0) ? 0 : target_column; target_column = (target_column > 5) ? 5 : target_column; target_top = navi.field.grid[0][target_column].gameObject.transform; target_bottom = navi.field.grid[2][target_column].gameObject.transform; //create the render object and set its position forward 3 rows c.chip_renderObj = new GameObject(); c.chip_renderObj.transform.position = navi.field.grid[current_row][target_column].gameObject.transform.position; c.chip_renderObj.AddComponent <SpriteRenderer>(); c.chip_renderObj.GetComponent <SpriteRenderer>().sortingOrder = 3; //!!!!!! NEED TO FIND SOME WAY OF ORGANIZING THESE SORTING LAYERS!!!!!! c.chip_renderObj.GetComponent <SpriteRenderer>().sprite = c.chip_sprite[c.chip_anim_frame]; // initialize values move_up = false; loop_up = true; move_speed = 1.5f; // MOVE SPEED HARD CODED duration = c.power / 2.0f; // Duration hard coded based on chip power hit_row = false; }
public void RegisterMessageCenter() { MessagingCenter.Subscribe <MainPage, bool>(this, Messages.HomeClicked, async(sends, arg) => { await GetData(); }); MessagingCenter.Subscribe <AccountService, bool>(this, Messages.LoginSuccessful, async(sends, arg) => { await GetData(); }); MessagingCenter.Subscribe <MainMapPageViewModel, string>(this, Messages.MapEventsClicked, async(sends, arg) => { await Navi.GoToEventPage(arg); }); MessagingCenter.Subscribe <MainMapPageViewModel, string>(this, Messages.MapProfileClicked, async(sends, arg) => { await Navi.GoToProfilePage(arg); }); }
private void Tick(object sender, EventArgs e) { if (Status != (EntityStatus)Api.Player.Status) { Status = (EntityStatus)Api.Player.Status; StatusChanged(this, new StatusChangedEventArgs { Status = Status }); } if (Zone != CurrentZone) { Zone = CurrentZone; ZoneChanged(this, EventArgs.Empty); } CastCheck(); if (OldPosition.Equals(CurrentPosition)) { IsMoving = false; } else if (!OldPosition.Equals(CurrentPosition)) { IsMoving = true; OldPosition = CurrentPosition; if (Tasks.Huntertask.Options.RecordWaypoints) { Navi.LearnRoutine(); } } }
/// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { panelTypes = Scripting.getObjectsFromFile("panelTypes.txt", "name"). ToDictionary(k => (string)k.Key, k => (PanelType)k.Value); damageTypes = Scripting.getObjectsFromFile("damageTypes.txt", "name"). ToDictionary(k => (string)k.Key, k => (DamageType)k.Value); chipsList = Scripting.getObjectsFromFile("chips/chips.txt", "name"). ToDictionary(k => (string)k.Key, k => (Chip)k.Value); areaList = Scripting.getObjectsFromFile("areas/areas.txt", "name"). ToDictionary(k => (string)k.Key, k => (Area)k.Value); attackTypes = Scripting.getObjectsFromFile("attackTypes.txt", "name"). ToDictionary(k => (string)k.Key, k => (AttackType)k.Value); naviList = Scripting.getObjectsFromFile("navis.txt", "name"). ToDictionary(k => (string)k.Key, k => (Navi)k.Value); navi = naviList["NormalNavi"]; currentKeyboard = new KeyboardState(); oldKeyboard = new KeyboardState(); stage = new Stage(); custom = new Custom(); virus = new List <Virus>(); virus.Add(new Mettaur()); virus.Add(new Mettaur2()); virus.Add(new MettaurΩ()); currentArea = areaList["ACDC1"]; navi.area = currentArea; base.Initialize(); }
async Task WriteDiaryAsync() { if (!IsAuthenticated) { return; } if (DiaryInfo == null) { return; } DiaryContent content; if (DiaryInfo.IsSecret) { content = await DiaryService.WriteDiaryAsync(User, DiaryInfo, Date, Content, UserData.Password); } else { content = await DiaryService.WriteDiaryAsync(User, DiaryInfo, Date, Content); } if (content != null) { Navi.NavigateTo(DiaryUrl.DiaryContent(DiaryInfo.DiaryName, Date)); } }
public override void OnSyncedUpdate(Navi navi) { if (effect != null) { effect.OnSyncedUpdate(navi, this); } }
private async void Save(object obj) { if (ValidateRecipe()) { try { UserDialogs.Instance.ShowLoading("Saving..."); ThisRecipe.UpdatedDate = DateTime.Now; ThisRecipe.Title = Title; ThisRecipe.Text = Instructions; ThisRecipe.Ingredients = Ingredients; ThisRecipe.Tags = Tags; DataRepository.Instance.Update <Recipes>(ThisRecipe); App.RecipesViewModel.OnNavigatedTo(); App.ItemDetailViewModel.GetDetails(ThisRecipe); await Navi.PopPageAsync(); UserDialogs.Instance.HideLoading(); } catch (Exception ex) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert(ex.Message); } } else { await UserDialogs.Instance.AlertAsync(ErrorMessage); } }
public override void activate(Navi navi) { if (navi.active_chip != null) // deactivate any other active chip before activating { navi.active_chip.deactivate(navi); } navi.active_chip = this; // If being activated by me if (navi.localOwner.Id == navi.owner.Id) { AC_dispObj = navi.AC_dispA; // ***** Fast Custom ****** navi.cust_dispA.GetComponent <Cust>().cust_speed /= 2; // Increase Cust speed by 50% } // If being activated by enemy if (navi.localOwner.Id != navi.owner.Id) { AC_dispObj = navi.AC_dispB; // ***** Fast Custom ****** navi.cust_dispB.GetComponent <Cust>().cust_speed /= 2; // Increase Cust speed by 50% } AC_dispObj.SetActive(true); AC_disp = AC_dispObj.GetComponent <ActiveChipDisplay>(); AC_disp.RecieveData(this); AC_disp.max_duration = power; AC_disp.duration = power; AC_disp.power_text.text = "" + Math.Ceiling(AC_disp.duration); AC_disp.duration_ring.fillAmount = AC_disp.duration / AC_disp.max_duration; }
private void SetIsBreakEx(int damage, int lockonBonus) { if ( enemyState == State.FOLLOWINGLEADER || enemyState == State.ATTACK) { if (life > 0) { life -= damage; } if (life <= 0) { // 敵機を破壊した. enemyState = State.BREAK; isBreakByPlayer = true; // 点数加算. Navi.get().AddScore(score * lockonBonus); // サブスクリーンへメッセージ出力. printMessage.SetMessage("DESTROYED " + enemyTypeString + " BY LOCK BONUS X " + lockonBonus); } else { // ダメージアニメーション. if (effectDamage) { Instantiate( effectDamage, transform.position, new Quaternion(0f, 0f, 0f, 0f)); } } } }
// Update is called once per frame void Update() { int i = 0; Navi n = navi.GetComponent <Navi>(); while (i < held) { BattleChip bc = chips[i].GetComponent <BattleChip>(); if ((bc.color_code == n.combo_color)) // chip in combo { if ((n.combo_color != ChipData.WHITE) && (n.combo_color != ChipData.GREY)) // white and grey don't combo { if (n.combo_level <= 2) { bc.cost = (bc.base_cost - 1 >= 0) ? bc.base_cost - 1 : 0; // no negative cost } else // after 3rd chip in combo, discount become 2 { bc.cost = (bc.base_cost - 2 >= 0) ? bc.base_cost - 2 : 0; // no negative cost } bc.cost_icon.GetComponent <Outline>().enabled = true; } } else // reset all non-combo-color chips back to base cost { bc.cost = bc.base_cost; bc.cost_icon.GetComponent <Outline>().enabled = false; } i++; } }
public override void deactivate(Navi navi, ChipLogic c) { navi.rate_controlled = false; // Navi controls its own animation again navi.swordAnim = false; UnityEngine.Object.Destroy(slash_renderer); // removes the slash effect base.deactivate(navi, c); }
public void LoadPointsOfInterest() { OpenFileDialog OpenDialog = new OpenFileDialog(); Tc.PointsComboBox.Items.Clear(); string PATH = (string.Format(Application.StartupPath + "\\Documents\\Points of intrest")); OpenDialog.InitialDirectory = PATH; OpenDialog.FilterIndex = 0; if (OpenDialog.ShowDialog() == DialogResult.OK) { Navi.Reset(); Points.Clear(); string PointsFilename = OpenDialog.FileName; Logger.AddDebugText(Tc.rtbDebug, string.Format(@"Nav file loaded = {0}", PointsFilename)); try { Points = XmlSerializationHelper.Deserialize <List <PointsOfInterest> >(PointsFilename) ?? new List <PointsOfInterest>(); OpenDialog.Dispose(); foreach (var item in Points) { Tc.PointsComboBox.Items.Add(item.Name); } Logger.AddDebugText(Tc.rtbDebug, string.Format(@"Added {0} Points of interest", Points.Count.ToString())); Tc.PointsComboBox.SelectedIndex = 0; } catch (Exception ex) { Logger.AddDebugText(Tc.rtbDebug, string.Format(@"LoadWaypoints error {0}", ex.ToString())); } } }
// 将连击数设置为0 public void clearComboCount() { this.combo_count = 0; this.combo = COMBO.NORMAL; Navi.get().setCombo(this.combo); }
private void SetIsBreakEx(int damage, int lockonBonus) { if ( enemyState == State.FOLLOWINGLEADER || enemyState == State.ATTACK) { if (life > 0) { life -= damage; } if (life <= 0) { // 毁坏敌机 enemyState = State.BREAK; isBreakByPlayer = true; // 统计得分 Navi.get().AddScore(score * lockonBonus); // 向子窗口输出消息 printMessage.SetMessage("DESTROYED " + enemyTypeString + " BY LOCK BONUS X " + lockonBonus); } else { // 毁坏动画 if (effectDamage) { Instantiate( effectDamage, transform.position, new Quaternion(0f, 0f, 0f, 0f)); } } } }
private async Task EditDiary() { if (!IsAuthenticated) { return; } if (DiaryInfo == null) { return; } List <DiaryContent> content; if (DiaryInfo.IsSecret) { content = await DiaryService.UpdateDiaryAsync(User, DiaryInfo, View.DiaryContents, UserData.Password); } else { content = await DiaryService.UpdateDiaryAsync(User, DiaryInfo, View.DiaryContents); } if (content?.Any() ?? false) { Navi.NavigateTo(DiaryUrl.DiaryContent(DiaryInfo.DiaryName, content.First().Date)); } else { Navi.NavigateTo(DiaryUrl.Home(DiaryInfo.DiaryName)); } }
protected override async Task OnPageInitializedAsync() { if (!IsAuthenticated) { Navi.NavigateTo("/login"); return; } var list = await DiaryService.GetWritableDiaryInfoAsync(User); DiaryInfo = list.FirstOrDefault(x => x.DiaryName == DiaryName); if (DiaryInfo == null) { Navi.NavigateTo(DiaryUrl.Home(DiaryName)); } if (DiaryInfo.IsSecret && string.IsNullOrWhiteSpace(UserData.Password)) { Navi.NavigateTo(DiaryUrl.SetPassword()); return; } LastDiary = await DiaryService.GetLastDiaryViewAsync(User, DiaryInfo); Date = DateTime.Today; }
public virtual void deactivate(Navi navi, ChipLogic c) { if (c.chip_renderObj != null) { UnityEngine.Object.Destroy(c.chip_renderObj); // removes the chip's sprite } navi.running_chips.Remove(c); // removes self from running chips list to no longer be called on synced update }
// Update is called once per frame void Update() { cost_icon.transform.GetChild(0).GetComponent <Text>().text = "" + cost; if (GameObject.FindGameObjectWithTag("My Navi") != null) { navi = GameObject.FindGameObjectWithTag("My Navi").GetComponent <Navi>(); } }
public Node(double cost, Navi goal, Node parent, Navi passConnect) { this.cost = cost; this.navi = passConnect; this.parent = parent; this.heuristicCost = Vector2.Distance(goal.position, passConnect.position); this.score = this.cost + this.heuristicCost; }
public static Navi get() { if (instance == null) { instance = GameObject.Find("GameCanvas").GetComponent <Navi>(); } return(instance); }
public override void initAnim(Navi navi, ChipLogic c) { List <Sprite> subarray = new List <Sprite>(); int start; // index of first frame in sheet switch (c.sword_size) { case 1: // sword (1x1) start = 4; break; case 2: // longsword (1x2) start = 0; break; case -1: // widesword (3x1) start = 8; break; default: // unlisted sword size: NOT A SWORD start = 0; break; } int i = 0; while (i < 4) // animation is 4 frames long { subarray.Add(effectAnim[start + i]); i++; } slash_eff = subarray.ToArray(); // load only corresponding cannon frames // prepare renderer for slash effect then deactivate until time to render slash_renderer = new GameObject(); slash_renderer.AddComponent <SpriteRenderer>(); slash_frame = 0; slash_renderer.GetComponent <SpriteRenderer>().sprite = slash_eff[slash_frame]; slash_renderer.GetComponent <SpriteRenderer>().sortingOrder = 6; //top layer, hit effect shows above auras if (!navi.myNavi()) // flip slash effect horizontally when created by opponent { slash_renderer.GetComponent <SpriteRenderer>().flipX = true; } slash_renderer.SetActive(false); hit = true; // reset hit check boolean to true until active frame of attack // take control of navi sword animation to sync animations c.chip_anim_frame = 0; c.frametimer = 2 * c.chipFR; // first frame is longer navi.rate_controlled = true; navi.swordAnim = true; navi.controlledSpriteSet(0); //sound navi.GetComponent <AudioSource>().PlayOneShot(Resources.Load <AudioClip>("Audio/s_sword")); c.interrupt = true; //sword attacks can be interrupted at any time }
public override void activate(Navi navi) { navi.running_chips.Add(this); // Chip uses a generic sword effect this.effect = EffectDB.SWORD.clone(); effect.initAnim(navi, this); OnSyncedUpdate(navi); // starts animation + logic }
void Awake() { S = this; }
public static Navi get() { if(Navi.instance == null) { Navi.instance = GameObject.Find("Navi").GetComponent<Navi>(); } return(Navi.instance); }