public void OnMcTypeChanged(int newValue) { mcType = newValue <= (int)MagicCircleType.END ? (MagicCircleType)newValue : MagicCircleType.END; if (!drag) { selectedMagicCircle = null; } if (selectedMagicCircle != null) { mcType = selectedMagicCircle.GetMcType(); if (newValue != (int)mcType) { mainTypeDropdown.value = (int)mcType; } } print("mcType = " + mcType); if (subTypeDropdown != null) { switch (mcType) { case MagicCircleType.Element: subTypeDropdown.options.Clear(); for (int i = (int)ElementType.START; i <= (int)ElementType.END; i++) { subTypeDropdown.options.Add(new Dropdown.OptionData((( ElementType )i).ToString())); } break; case MagicCircleType.Form: subTypeDropdown.options.Clear(); for (int i = (int)FormType.START; i <= (int)FormType.END; i++) { subTypeDropdown.options.Add(new Dropdown.OptionData((( FormType )i).ToString())); } break; case MagicCircleType.Movement: subTypeDropdown.options.Clear(); for (int i = (int)MovementType.START; i <= (int)MovementType.END; i++) { subTypeDropdown.options.Add(new Dropdown.OptionData((( MovementType )i).ToString())); } break; default: subTypeDropdown.options.Clear(); break; } mainTypeDropdown.RefreshShownValue(); subTypeDropdown.RefreshShownValue(); } }
private void ShowSecond() { First.IsVisible = false; MagicCircle.Show(this, 1000, async() => { Flash.Show(this); Current.CountUpBattle(); Enemy = await _vm.GetOtherRandomAsync(); Second.IsVisible = true; SecondButton.Refresh(); }); }
private void ShowNames() { Sound.Pray(); MagicCircle.Show(this, 3000, () => { Flash.Show(this, 1000, () => { Second.IsVisible = true; var masters = CodeMasterServce.GetMasters <JobMaster>(); var target1 = CodeMasterServce.GetNameRandom(); while (_vm.User.Names.Any(item => target1.Attribute == item.Attribute)) { target1 = CodeMasterServce.GetNameRandom(); } var target2 = masters[MyRandom.GetRandom(masters.Count)]; var gotName = new Name(target1, target2); _vm.User.Names.Add(gotName); var name = new Chu2Name(); name.BindingContext = gotName; name.ShowAttribute = true; name.ShowAttributeType = true; name.ShowParameter = true; GetResult.Children.Add(name); var image = new Charactor(); image.BindingContext = gotName; image.HorizontalOptions = LayoutOptions.End; Second.Children.Insert(0, image); Device.StartTimer(TimeSpan.FromSeconds(3), () => { if (_vm.User.Names.Count == 2) { Second.IsVisible = false; Third.IsVisible = true; _vm.User.MainName = _vm.User.Names[0]; _vm.User.SubName = _vm.User.Names[1]; Sound.Normal(); _steps.Next(); } else { GetResult.Children.Clear(); Second.Children.Remove(image); ShowNames(); } return(false); }); }); }); }
public virtual bool AddMagicCircle(MagicCircle mc) { if (innerMagicCircleList.ContainsKey((int)mc.GetMcType())) { Debug.LogError("This Magic Circle already contains this type. Can't add new Magic Circle " + mc.mcType); return(false); } else { mc.mcParent = this; innerMagicCircleList.Add((int)mc.GetMcType(), mc); UpdateCirclePositions(); return(true); } }
public void readySpell(Entity target) { _nextSpell = selectedSpell; if (target != null) { player_.startCast(); casting_ = true; GameObject a = Instantiate(magicCircle, player_.getCirclePos().position, Quaternion.identity); MagicCircle c = a.GetComponent <MagicCircle>(); circles.Add(c); c.player = player_.getCirclePos(); c.selector = this; } }
public void ActivateMagicCircle(bool shouldActivate) { MagicCircle mc = (MagicCircle)selectedUISN.linkedSpellNode; if (mc != null) { if (shouldActivate) { mc.Activate(); } else { mc.Deactivate(); } } }
void _battle_DamagedEvent(object sender, DamageEventArgs args) { if (args.Target == Current) { if (args.Damage == 0) { Damege.Show(CurrentDamage, "Miss"); return; } Damege.Show(CurrentDamage, args.Damage.ToString()); CurrentImage.Damaged(); if (args.IsCritical) { Flash.Show(this); MagicCircle.Show(this, 500); CutInFace.Show(this, new NameModelViewModel().Hissatsu, Enemy.MainName, false, 2); DependencyService.Get <IDeviceService>().PlayVibrate(); } else if (MyRandom.GetRandom(10) > 3) { BattleComment.Show(BattleCommentAreaForCurrent, Current.GetBattleComment()); } } else { if (args.Damage == 0) { Damege.Show(EnemyDamage, "Miss"); return; } Damege.Show(EnemyDamage, args.Damage.ToString()); EnemyImage.Damaged(); if (args.IsCritical) { Flash.Show(this); MagicCircle.Show(this, 500); CutInFace.Show(this, new NameModelViewModel().Hissatsu, Current.MainName, true, 2); DependencyService.Get <IDeviceService>().PlayVibrate(); } else if (MyRandom.GetRandom(10) > 3) { BattleComment.Show(BattleCommentAreaForEnemy, Enemy.GetBattleComment()); } } }
void Start() { EnergyManager.Instance.StartTurn += this.StartTurn; EnergyManager.Instance.TurnsEnd += this.TurnsEnd; UIValue = transform.FindChild("Value").GetComponent<UILabel>(); UIValue.text = magicValue.ToString(); magicCircle = gameObject.AddComponent<MagicCircle>(); //AddEffect("Refresh", 2); MagicCircleStart(); //if (test == 0)//||test==1 ||test==2 // AddEffect("Weaken", 1); //if (test == 1) // AddEffect("Entrench", 3); //if (test == 2) // AddEffect("Refresh", 1); //test++; }
public void DestroyNode(SpellNode node) { RemoveNode(node); MagicCircle mc = (MagicCircle)node; if (mc != null) { mc.Deactivate(); // for( int i = 0; i < links.Count; i++ ) // { // if( links[i].destination == node || links[i].source == node ) // { // DestroyLink(links[i]); // } // } } Destroy(node); }
public void checkTeleport() { PlayerMove playerMove = this.GetComponent <PlayerMove>(); MagicCircleCollision magcCircCol = playerMove.ColMagicCircle.GetComponent <MagicCircleCollision>(); bool onPortal = magcCircCol.inMagicCircle; if (onPortal) { MagicCircle magicCircle = magcCircCol.targetPortal.GetComponent <MagicCircle>(); playerMove.isDead = !playerMove.isDead; magicCircle.teleport(this.gameObject); } else if (playerMove.cooldownAtack == 0) { Debug.Log("Attack"); playerMove.playerAnim.GetComponent <Animator>().SetBool("beAttacking", true); playerMove.Speed = 0; playerMove.cooldownAtack = playerMove.cooldownAtackTimer; } }
public virtual bool RemoveMagicCircle(MagicCircle mc) { foreach (int currMcType in innerMagicCircleList.Keys) { Debug.Log("innerMagicCircleList: " + ((MagicCircleType)currMcType).ToString()); } if (innerMagicCircleList.ContainsKey((int)mc.GetMcType())) { mc.Deactivate(); mc.RemoveAllMagicCircles(); innerMagicCircleList.Remove((int)mc.GetMcType()); Destroy(mc.gameObject); UpdateCirclePositions(); return(true); } else { Debug.LogError("This Magic Circle is not on the parent magic circle. Can't remove it " + mc.mcType); return(false); } }
void Start() { EnergyManager.Instance.StartTurn += this.StartTurn; EnergyManager.Instance.FireGo += this.FireGo; oldMagicValue = magicValue; explainLabel = GameObject.Find("ExplainLabel").GetComponent<UILabel>(); magicCircle = gameObject.AddComponent<MagicCircle>(); UpdateTexture(); magicCircle.EnlargeStart(); magicCircle.Type = StartType.Shrink; UpdateMagicValue(); //AddEffect("Cohension", 2); //关卡判断 if (LevelManager.Instance.level == 1 && LevelManager.Instance.key.Contains("AttackMagic")) { GuideText.Instance.ReturnText(3); LevelManager.Instance.key.Remove("AttackMagic"); StartCoroutine(Level1()); } }
public void SetMagicCircle(MagicCircle magicCircle) { this.magicCircle = magicCircle; }
private void ShowSecond() { First.IsVisible = false; if (!string.IsNullOrEmpty(_achivementCode)) { StartPrayText.Text = "実績解禁!!"; } StartPray.IsVisible = true; Sound.Pray(); Sound.PrayVoice(); MagicCircle.Show(this, 3000, () => { StartPray.IsVisible = false; Flash.Show(this, 1000, () => { Second.IsVisible = true; var masters = CodeMasterServce.GetMasters <JobMaster>(); var target1 = string.IsNullOrEmpty(_achivementCode) ? CodeMasterServce.GetNameRandom() : CodeMasterServce.GetNameRandomByAttribute(_achivementCode); var target2 = masters[MyRandom.GetRandom(masters.Count)]; var gotName = new Name(target1, target2); var name = new Chu2Name(); name.BindingContext = gotName; name.ShowAttribute = true; name.ShowAttributeType = true; name.ShowParameter = true; GetResult.Children.Add(name); var image = new Charactor(); image.BindingContext = gotName; image.HorizontalOptions = LayoutOptions.End; Second.Children.Insert(0, image); _current.CountUpPray(); var hasName = _current.Names.FirstOrDefault(n => n.Attribute == gotName.Attribute); if (hasName != null) { BackButton.IsVisible = false; Device.StartTimer(TimeSpan.FromSeconds(3), () => { SelectItem.Show(this, "同じ属性の二つ名を既に持っています。二つ名を入れ替えますか?", new List <SelectItem.Item>() { new SelectItem.Item() { Label = "二つ名を入れ替える", Selected = () => { _current.Names.Remove(hasName); AddNewName(gotName); Device.StartTimer(TimeSpan.FromSeconds(2), () => { Back(); return(false); }); } }, new SelectItem.Item() { Label = "キャンセル", Selected = () => { CutIn.Show(this, "二つ名の取得をキャンセルしました", 3, () => { Back(); }); } } }); return(false); }); } else { AddNewName(gotName); } }); }); }
public void OnCreateMC() { if (spell == null) { CreateSpell(); } if (rootMagicCircle == null || !rootMagicCircle.Contains((int)mcType)) { if (mcType == MagicCircleType.None) { rootMagicCircle = null; } OnEmissionRateChanged(value1Slider.value); Transform pos = rootMagicCircle == null ? defaultMagicCircle.transform : rootMagicCircle.transform; // GameObject newObj = Instantiate( defaultMagicCircle, pos ) as GameObject; // newObj.name = mcType.ToString() + " Magic Circle"; SpellNode newNode = spell.AddNode(mcType); newNode.name = mcType.ToString() + " Magic Circle"; MagicCircle newMc; switch (mcType) { case MagicCircleType.Element: ElementMagicCircle tempMC = newNode as ElementMagicCircle; // tempMC.SetMcType( mcType ); tempMC.SetElement((ElementType)subType); tempMC.emissionRate.SetDefaultValue(emissionRate); newMc = tempMC as MagicCircle; break; case MagicCircleType.Form: FormMagicCircle tempFormMC = newNode as FormMagicCircle; // tempMC.SetMcType( mcType ); // tempMC.SetElement( (ElementType) subType ); tempFormMC.SetForm((FormType)subType); tempFormMC.sizeMultiplier.SetDefaultValue(sizeMultiplier); newMc = tempFormMC as MagicCircle; break; case MagicCircleType.Movement: MovementMagicCircle tempMovementMC = newNode as MovementMagicCircle; // tempMC.SetMcType( mcType ); // tempMC.SetElement( (ElementType) subType ); tempMovementMC.SetMovement((MovementType)subType); tempMovementMC.force.SetDefaultValue(force); newMc = tempMovementMC as MagicCircle; break; default: newMc = newNode as MagicCircle; newMc.SetMcType(mcType); break; } if (rootMagicCircle == null) { rootMagicCircle = newMc; } else { // rootMagicCircle.AddMagicCircle( newMc ); } selectedMagicCircle = newMc; } }
// Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) { // if left click is pressed... Vector3 mousePoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); Collider2D obj = Physics2D.OverlapPoint((Vector2)mousePoint); if (obj != null) { MagicCircle mc = obj.GetComponent <MagicCircle>(); if (mc != null) { drag = true; } if (mc != null && selectedMagicCircle != mc) { selectedMagicCircle = mc; if (selectedMagicCircle.GetMcType() == MagicCircleType.None) { rootMagicCircle = selectedMagicCircle; } UpdateSelectSensitiveDropdowns(); } } } if (Input.GetMouseButtonDown(2)) { if (selectedMagicCircle != null) { Vector3 mousePoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); Collider2D obj = Physics2D.OverlapPoint((Vector2)mousePoint); if (obj != null) { MagicCircle mc = obj.GetComponent <MagicCircle>(); if (mc != null && selectedMagicCircle != mc) { linkableSourceMagicCircle = mc; print(linkablePropertiesSink.captionText.text); string[] linkableMethods = LinkableFinder.FindPropertiesToLinkTo(linkablePropertiesSink.captionText.text, selectedMagicCircle, linkableSourceMagicCircle); linkablePropertiesSource.options.Clear(); for (int i = 0; i < linkableMethods.Length; i++) { linkablePropertiesSource.options.Add(new Dropdown.OptionData(linkableMethods[i])); } linkablePropertiesSource.RefreshShownValue(); } } } } if (Input.GetMouseButtonUp(1)) { selectedMagicCircle = null; linkablePropertiesSink.options.Clear(); linkablePropertiesSource.options.Clear(); } if (Input.GetMouseButtonUp(0)) { drag = false; } if (drag) { Vector3 mousePoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); selectedMagicCircle.transform.position = new Vector3(mousePoint.x, mousePoint.y, selectedMagicCircle.transform.position.z); } }
public PatternMatching(MagicCircle magicCircle, short[][] target2DArray) { this.MagicCircle = magicCircle; this.target2DArray = target2DArray; }
void FixedUpdate() { if (source != null && destination != null && source.IsMagicCircle() && destination.IsMagicCircle()) { MagicCircle mcSource = (MagicCircle)source; MagicCircle mcDestination = (MagicCircle)destination; if (mcSource.isActive != wasActivated) { wasActivated = mcSource.isActive; PendingOperation operation = mcSource.isActive ? PendingOperation.Activate : PendingOperation.Deactivate; pendingOpList.Add(new PendingOperationContainer(operation, delayTime)); // timeTillActivate = delayTime; // pendingOperation = mcSource.isActive ? PendingOperation.Activate : PendingOperation.Deactivate; } // Timer to count down until you activate the magic circle List <int> removePoc = new List <int>(); for (int i = 0; i < pendingOpList.Count; i++) { if (pendingOpList[i].timeTillOp <= 0) { // Activate the magic if (pendingOpList[i].pendingOp == PendingOperation.Activate) { mcDestination.Activate(); } // Only Deactivate the magic if it hasn't already been deactivated else if (mcDestination.isActive && pendingOpList[i].pendingOp == PendingOperation.Deactivate) { mcDestination.Deactivate(); } removePoc.Add(i); } // Keep decreasing the time until it reaches 0; else { pendingOpList[i].timeTillOp -= Time.fixedDeltaTime; } } for (int i = removePoc.Count - 1; i >= 0; i--) { pendingOpList.RemoveAt(i); } // if( timeTillActivate <= 0 ) // { // // Only Activate the magic if it hasn't already been activated // if( !mcDestination.isActive && pendingOperation == PendingOperation.Activate ) // { // mcDestination.Activate(); // } // // Only Deactivate the magic if it hasn't already been activated // else if( mcDestination.isActive && pendingOperation == PendingOperation.Deactivate ) // { // mcDestination.Deactivate(); // } // } // // Keep decreasing the time until it reaches 0; // else // { // timeTillActivate -= Time.fixedDeltaTime; // } } else { timeTillActivate = 0; } }