public void EventStatus() { var responseString = _client.GetXHR("http://astrum.amebagames.com/_/event/status"); var eventStatus = JsonConvert.DeserializeObject <EventStatus>(responseString); foreach (var @event in eventStatus.list.Where(ev => ev.status)) { switch (@event.type) { case "furyraid": _client.ViewModel.IsFuryRaidEnable = true; _client.ViewModel.IsLimitedRaidEnable = false; _client.ViewModel.IsBreedingEnable = false; _client.ViewModel.FuryRaidEventId = @event._id; break; case "limitedraid": _client.ViewModel.IsFuryRaidEnable = false; _client.ViewModel.IsLimitedRaidEnable = true; _client.ViewModel.IsBreedingEnable = false; _client.ViewModel.LimitedRaidEventId = @event._id; break; case "breeding": _client.ViewModel.IsFuryRaidEnable = false; _client.ViewModel.IsLimitedRaidEnable = false; _client.ViewModel.IsBreedingEnable = true; _client.ViewModel.BreedingEventId = @event._id; break; case "raid": break; } } if (_client.ViewModel.IsFuryRaidEnable) { _client.ViewModel.IsFuryRaid = true; _client.FuryRaid(); } else if (_client.ViewModel.IsLimitedRaidEnable) { _client.ViewModel.IsLimitedRaid = true; _client.LimitedRaid(); } else if (_client.ViewModel.IsBreedingEnable) { // } if (!_client.ViewModel.Fever) { _client.ViewModel.IsFuryRaid = false; _client.ViewModel.IsLimitedRaid = false; _client.ViewModel.IsBreedingRaid = false; _client.Raid(); } }
public void Run() { _client.Access("stage"); var viewModel = _client.ViewModel; var stage = EnterStage(); var areaId = stage._id; while (viewModel.IsRunning) { if (stage.isBossStage) { AreaBossBattle(areaId); return; } else if (stage.stageClear && stage.nextStage.isBossStage) { stage = ForwardStage(areaId); AreaBossBattle(areaId); return; } else { viewModel.IsFuryRaid = false; viewModel.IsLimitedRaid = false; if (viewModel.IsFuryRaidEnable) { viewModel.IsFuryRaid = true; if (stage.furyraid != null) { if (stage.furyraid.rare == 4) { viewModel.CanFuryRaid = true; } } else if (viewModel.CanFuryRaid) { _client.FuryRaid(); viewModel.CanFuryRaid = false; return; } else if (!viewModel.Fever) { if (stage.status.furyraid.find != null) { if (stage.status.furyraid.find.isNew || viewModel.CanFullAttack) { _client.FuryRaid(); return; } } if (stage.status.furyraid.rescue != null) { if (stage.status.furyraid.rescue.isNew) { _client.FuryRaid(); return; } } } } if (viewModel.IsLimitedRaidEnable) { var limitedRaidId = stage.status.limitedraid._id; if (limitedRaidId != null) { viewModel.IsLimitedRaid = true; if (viewModel.CanFullAttackForEvent) { _client.LimitedRaid(); return; } } } if (stage.status.raid != null && !viewModel.Fever) { viewModel.IsFuryRaid = false; viewModel.IsLimitedRaid = false; viewModel.IsBreedingRaid = false; if (stage.status.raid.find != null) { if (stage.status.raid.find.isNew || viewModel.CanFullAttack) { _client.Raid(); return; } } if (stage.status.raid.rescue != null) { if (stage.status.raid.rescue.isNew || viewModel.CanFullAttack) { _client.Raid(); return; } } } if (viewModel.IsStaminaEmpty) { bool staminaGreaterThanKeep = viewModel.StaminaValue >= viewModel.KeepStamina; bool staminaGreaterThanExp = viewModel.StaminaValue >= (viewModel.ExpMax - viewModel.ExpValue); bool isBpFull = viewModel.BpValue >= AstrumClient.BP_FULL; bool isFever = viewModel.Fever; if (staminaGreaterThanKeep || staminaGreaterThanExp || isBpFull || isFever) { viewModel.IsStaminaEmpty = false; } else { return; } } if (stage.staminaEmpty) { if (stage.items != null && viewModel.ExpMax - viewModel.ExpValue > 100) { var item = stage.items.Find(e => AstrumClient.INSTANT_HALF_STAMINA.Equals(e._id)); if (item.stock > viewModel.MinStaminaStock && viewModel.Fever) { _client.UseItem(AstrumClient.ITEM_STAMINA, AstrumClient.INSTANT_HALF_STAMINA, 1); return; } else { viewModel.IsStaminaEmpty = true; return; } } else { viewModel.IsStaminaEmpty = true; return; } } //forward stage = ForwardStage(areaId); } } }