void Update() { forbidActionForSeconds -= Time.deltaTime; timer -= Time.deltaTime; if (timer < 0) { timer = interval; Fire(); } foreach (Transform t in bucket) { if (t.GetComponent <Collider>()) { if (t.GetComponent <Rigidbody>()) { if (!t.GetComponent <Rigidbody>().isKinematic) { if (SMW_GF.inst.ColliderWasNumber(t.GetComponent <Collider>())) { t.gameObject.GetComponent <Rigidbody>().velocity = -transform.right * fireVelocity; } } NumberInfo ni = t.GetComponent <NumberInfo>(); if ((ni.fraction.numerator > 0 && faceLeft == true) || (ni.fraction.numerator < 0 && faceLeft == false)) { t.parent = null; // drop numbers of the wrong sign // ni.neverEats=true; // don't let this number interfere with the number line flow } } } } }
public GameObject MakeIntoRocket(GameObject rocket) { TimedObjectDestructor tod = rocket.AddComponent <TimedObjectDestructor>(); tod.autoDestruct = false; tod.DestroyNow(10); // rockets die out after 10 secodns. rocket.transform.parent = null; rocket.GetComponent <Collider>().enabled = true; // Create the rocket. rocket.GetComponent <Rigidbody>().isKinematic = false; // Why is this true by default?! rocket.GetComponent <Rigidbody>().useGravity = false; rocket.GetComponent <Rigidbody>().drag = 0.01f; rocket.GetComponent <Rigidbody>().angularDrag = 0.01f; rocket.GetComponent <Rigidbody>().collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic; NumberInfo ni = rocket.GetComponent <NumberInfo>(); if (!ni.gameObject.GetComponent <DoesExplodeOnImpact>()) { ni.gameObject.AddComponent <DoesExplodeOnImpact>(); } // // commented Debug.Log ("rocket created, value;"+rocket.GetComponent<NumberInfo>().fraction); return(rocket); }
public LotteryNumberAnalyzer(IList <LotteryData> lotteryDataPackage, NumberInfo numberInfo) { _lotteryDataPackage = lotteryDataPackage; _numberInfo = numberInfo; InitHistoryDatas(); }
IEnumerator NumberGlowRedAndDie(NumberInfo ni) { float glowTime = Random.Range(1.5f, 2f); float t = 0; float redSpeed = 1; List <Renderer> rs = new List <Renderer>(); foreach (Renderer rr in ni.GetComponentsInChildren <Renderer>()) { if (rr.material.HasProperty("_Color")) { rs.Add(rr); } } while (t < glowTime) { t += Time.deltaTime; yield return(new WaitForSeconds(Time.deltaTime)); foreach (Renderer r in rs) { if (r) { r.material.color = Color.Lerp(r.material.color, Color.red, Time.deltaTime * redSpeed); } } } // if (ni) ni.gameObject.AddComponent<ShrinkAndDisappear>(); // Destroy (ni.gameObject); }
public override void SetProperties(SimpleJSON.JSONClass N) { base.SetProperties(N); NumberInfo ni = GetComponentInChildren <NumberInfo>(); if (N.GetKeys().Contains(Fraction.fractionKey)) { if (ni) { ni.SetNumber(JsonUtil.ConvertJsonToFraction(Fraction.fractionKey, N)); } else { Debug.Log("ERROR: no number in this flower!:" + name); } } else { if (ni) { NumberManager.inst.DestroyOrPool(ni); // Destroy(ni.gameObject); // this flower shouldn't exist, but was included with the prefab .. so we destroy it after placement because json says it shouldn't have a numberinfo } else { Debug.Log("ERROR: no number in this flower!:" + name); } } }
public override void Update() { if (LevelBuilder.inst.levelBuilderIsShowing) { return; // transform.root.GetComponent<LevelMachineCauldronGroup>().puzzleFrozen) return; } if (GenerateReady()) { GenerateNumber(new Fraction(index, 1)); NumberInfo ni = dripNumber.GetComponent <NumberInfo>(); ni.greaterThanCombine = 1; ni.lessThanCombine = 0; // no combinations! ni.childMeshRenderer.material = Utils.FadeMaterial(); ni.childMeshRenderer.material.color = new Color(1, 1, 1, 0.5f); dripNumber.AddComponent <CauldronNumber>(); currentNumber = dripNumber; } if (dripNumber != null) { DripFX(); } genTimer2 -= Time.deltaTime; }
public override void Clear() { base.Clear(); m_textBox = null; m_info = null; m_isValidNumber = false; }
public void Init(NumberInfo n) { ni = n; ni.growTimer = 0; ni.growing = true; // ni.baseScale = 0.5f; //childMeshRenderer.transform.localScale.x; }
public void OnReceivedNumber(Collider other) { if (finished) { // commented Debug.Log ("finisheD"); return; } if (recTimer > 0) { // // commented Debug.Log ("rectimer"); return; } ResourceNumber rn = other.GetComponent <ResourceNumber>(); if (rn) { recTimer = 1f; NumberInfo ni = other.GetComponent <NumberInfo>(); totalChargeCollected = Fraction.Add(ni.fraction, totalChargeCollected); charge.Add(other.gameObject); GrabNewNumber(other.gameObject, ni); if (Fraction.AbsGreater(totalChargeCollected, maxCharge)) { StartCoroutine(OverfillAndEmpty()); // EmptyBattery(); } else { } } }
public override bool IsValidAmmo(GameObject o) { if (o.GetComponent <ResourceNumber>()) { return(false); } NumberInfo ni = o.GetComponent <NumberInfo>(); if (!ni) { return(false); } bool flag = false; if (ni.fraction.numerator > 10 || ni.fraction.numerator < -10) { PlayerNowMessage.inst.Display("That number is too big for the Wave gadget.", transform.position); } else if (ni.fraction.denominator != 1) { PlayerNowMessage.inst.Display("The Wave gadget only collects integers."); } else { flag = true; } if (!base.IsValidAmmo(o)) { flag = false; } return(flag); }
public override void ModifyAmmo(NumberModifier.ModifyOperation fn) { if (numberHeld) { NumberInfo ni = numberHeld.GetComponent <NumberInfo>(); if (!ni) { return; } Fraction fracc = fn(ni.fraction); // commented Debug.Log("set ni:"+fracc); ni.SetNumber(fracc); MonsterAIRevertNumber mairn = ni.GetComponent <MonsterAIRevertNumber>(); if (mairn) { mairn.SetNumber(ni.fraction); } if (fracc.numerator == 0) { DropAmmo(true); NullifyAmmo(); } UpdateAmmoGraphics(true); // commented Debug.Log("modified! "); } // RecalcInfoText(); }
void AttemptToFireNumber(NumberInfo fireNumber) { grabbingNumber = null; if (fireNumber.fraction.IsMultipleOf(cannonFrac)) //.numerator % cannonNumber == 0 && fireNumber.fraction.denominator == 1){ // success! Fire the number. { GameObject rocket = SMW_GF.inst.FireRocketFromTo(firePos.position, firePos.forward, fireNumber.fraction, 1, 18, 200, null, true); ScaleUpAndStop sup = rocket.AddComponent <ScaleUpAndStop>(); sup.stopScale = Vector3.one * 3.5f; EffectsManager.inst.CreateSmokePuffBig(firePos.position, firePos.forward); Destroy(fireNumber.gameObject); } else { if (!ignoredNumbers.Contains(fireNumber)) { ignoredNumbers.Add(fireNumber); checkIgnoredTimer = Random.Range(1.5f, 2.5f); } fireNumber.GetComponent <Rigidbody>().isKinematic = false; fireNumber.GetComponent <Collider>().enabled = true; fireNumber.transform.position = startPos.position; float fireForce = 3000f; fireNumber.GetComponent <Rigidbody>().AddForce((-startPos.forward + startPos.right * 1.5f) * fireForce); // reject number off and to the right. This prevents it rejecing into the next incoming number AudioManager.inst.PlayWrongAnswerError(firePos.position, 1, 1); AudioManager.inst.PlayDepressingCannonSound(firePos.position, 1f); EffectsManager.inst.CreateSmokePuffBig(startPos.position, -startPos.forward); if (Vector3.Distance(Player.inst.transform.position, transform.position) < 20f) { PlayerNowMessage.inst.Display("This cannon can only use multiples of 10, like 10, 20, or 30."); } } }
public override bool IsValidAmmo(GameObject o) { // an alternate different system compared to CanCollectNumber, probably more apt NumberInfo ni = o.GetComponent <NumberInfo>(); if (!ni) { return(false); } if (o.GetComponent <ResourceNumber>()) { return(false); } bool flag = (ni.fraction.numerator <10 && ni.fraction.numerator> -10); if (!flag) { PlayerNowMessage.inst.Display("That number is too big for the Bow gadget.", transform.position); return(flag); } flag = ni.fraction.denominator == 1; if (!flag) { PlayerNowMessage.inst.Display("The Bow gadget only collects integers."); } return(flag); }
public void OnTriggerEnter(Collider other) { ClearDeadGhosts(); if (ghosts.Contains(other)) { return; } if (SMW_GF.inst.ColliderWasNumber(other)) { NumberInfo ni = other.GetComponentInChildren <NumberInfo>(); float x = Mathf.Sqrt((float)ni.fraction.numerator / (float)ni.fraction.denominator); // commented Debug.Log ("float of " + ni.fraction.numerator / ni.fraction.denominator + " was " +x); // commented Debug.Log ("round == " +Mathf.Round(x)); if (Mathf.Round(x) == x) { FreezeNumber(ni, x); // float. Grabbable, free ni.gameObject.AddComponent <CubeWarmer>(); // It becomes a number fire. } else { // commented Debug.Log (" x was : " +x); TurnNumberIntoGhost(ni); } } }
public void Collect(GameObject o, bool muted = false) { // Debug.Log("Adding "+o+" to slot "+this.name); // was AddItemToSlot // Note that ITEM is the 2D item we see in inventory // and ITEM3D is the item that still exists in the game world but is now deactivated. PickUppableObject pip = o.GetComponent <PickUppableObject>(); pip.OnInventoryCollect(muted); NumberInfo ni = o.GetComponent <NumberInfo>(); GameObject inventoryItem = (GameObject)Instantiate(Inventory.inst.itemPrefab); // Removing hand if (ni) { // Make the inventory icon for NumberInfos only. inventoryItem.GetComponent <InventoryItem>().SetUpDigits(ni); } else if (pip.inventoryIcon != null) { inventoryItem.GetComponent <Image>().sprite = pip.inventoryIcon; if (pip.useColor == true) { inventoryItem.GetComponent <Image>().color = pip.inventoryIconColor; } } inventoryItem.transform.SetParent(transform, false); //parent = emptySlot.transform; inventoryItem.GetComponent <InventoryItem>().item3d = o; foreach (IMyPickupable im in o.GetComponents(typeof(IMyPickupable))) { im.OnPlayerPickup(); } o.SetActive(false); }
void GrabNewNumber(GameObject other, NumberInfo ni) { // ni.SetStability(true); // ni.dying=false; // ni.bNeedsWobble=false; other.transform.localScale = Vector3.one; // Make it non-numbery Destroy(other.GetComponent <Collider>()); Destroy(other.GetComponent <Rigidbody>()); other.layer = 0; EnemyBrick eb = other.GetComponent <EnemyBrick>(); if (eb) { Destroy(eb); } // Move new number other.transform.position = inputTransform.position; other.transform.rotation = inputTransform.rotation; SMW_GF.inst.MoveObjTo(other, inputTransform.position + inputTransform.forward * 2f, 1, false, .9f); StartCoroutine(PostGrabNumber(other)); AudioManager.inst.PlayCartoonEat(transform.position, 1); }
public void CollectNumberRight(GameObject o) { if (eating || !canAcceptNumbers || !CanCollectNumber(o)) { return; } if (numberRight == null) { numberRight = null; // for missing objects.. ugh } if (numberRight) { return; } NumberInfo ni = o.GetComponent <NumberInfo>(); if (ni) { if (ni.fraction.denominator != 1 || ni.fraction.numerator < 0) { return; // pos integers only } SetNumberRight(ni); } if (numberRight && numberLeft) { EatNumbers(); } }
override public void GadgetLateUpdate() { fireTimeout -= Time.deltaTime; if (holdingMouse) { if (mode == GadgetFactorSwapperMode.Split) { targetA = CheckLaser(r1, gadgetGraphics.transform.position + (GetAimVector()) * range); if (targetA) { if (!targetA_resultA || !targetA_resultB) { CreateTargetResultsA(); } } else { ClearTargets(); } } else if (mode == GadgetFactorSwapperMode.Join) { targetB = CheckLaser(r1, gadgetGraphics.transform.position + (GetAimVector() + Camera.main.transform.right * .1f) * range); targetC = CheckLaser(r2, gadgetGraphics.transform.position + (GetAimVector() + Camera.main.transform.right * -.1f) * range); } } }
float GetEndArcThreshhold() { // pre-calculate where the whooshing object wil colllide and end its journey. float maxDistToColliderBeforeEndArc = 0.1f; RaycastHit hit = new RaycastHit(); for (int i = 0; i < vCount - 1; i++) { Vector3 currentDirection = (GetPositionAtIndex(i + 1) - GetPositionAtIndex(i)); // tangent to the arc at this point Ray ray = new Ray(GetPositionAtIndex(i), currentDirection.normalized); if (Physics.Raycast(ray, out hit, Mathf.Max(currentDirection.magnitude, maxDistToColliderBeforeEndArc), layerMask)) { if (!hit.collider.GetComponent <WhooshingObject>() && !hit.collider.GetComponent <NumberHoop>()) { NumberInfo ni = hit.collider.GetComponent <NumberInfo>(); if (ni) { // path is obstructed by a number which may die at any time. Check periodically if it dies, then if it does, Recalculate the arc. numberWasObstructing = true; obstructingNumber = ni; // Debug.Log("NEW num obstructing!"); } else { // Debug.Log("Nothing obstructing!"); } // Debug.Log("collide i :"+i+", hit col:"+hit.collider.name); return(i); // don't collide with other objects being whooshed! } } } return(vCount); // no colliisons }
public void CollectNumberLeft(GameObject o) // DRY { if (eating || !canAcceptNumbers || !CanCollectNumber(o)) { return; } if (numberLeft == null) { numberLeft = null; // for missing objects.. ugh } if (numberLeft) { return; } if (seedT.childCount > 0) { // if (seedT.GetChild(0).gameObject.activeSelf) return; // if player picked it up, it would be inactive.. return; } NumberInfo ni = o.GetComponent <NumberInfo>(); if (ni) { if (ni.fraction.denominator != 1 || ni.fraction.numerator < 0) { return; // pos integers only } SetNumberLeft(ni); } if (numberRight && numberLeft) { EatNumbers(); } }
public GameObject JustAteFX(Vector3 p, NumberInfo ni) { return(null); GameObject ret = (GameObject)Instantiate(justAteFX); ret.transform.position = p; if (ni.icon) { ret.GetComponentInChildren <JustAteFX>().justAteIcon.material.mainTexture = ni.icon.texture; } ret.GetComponentInChildren <JustAteFX>().numberSphereIcon.material.mainTexture = ni.fraction.GetAsFloat() > 0 ? NumberManager.inst.positiveSphereIcon : NumberManager.inst.negativeSphereIcon; ret.GetComponentInChildren <CCText>().Text = ni.fraction.ToString(); switch (ni.fraction.ToString().Length) { case 0: break; case 1: ret.GetComponentInChildren <CCText>().transform.localScale = Vector3.one * 0.75f; break; case 2: ret.GetComponentInChildren <CCText>().transform.localScale = Vector3.one * 0.55f; break; case 3: ret.GetComponentInChildren <CCText>().transform.localScale = Vector3.one * 0.45f; break; // case 4: default: ret.GetComponentInChildren <CCText>().transform.localScale = Vector3.one * 0.4f; break; } return(ret); }
void Trigger(GameObject other) { if (grabbing) { return; } NumberInfo ni = other.GetComponent <NumberInfo>(); if (ni) { if (ignoredNumbers.Contains(ni)) { return; } AudioManager.inst.PlayCartoonEat(ni.transform.position, 0.85f, 0.2f); ni.transform.position = startPos.position; ni.GetComponent <Rigidbody>().isKinematic = true; ni.GetComponent <Collider>().enabled = false; grabbingNumber = ni; grabbing = true; grabTimer = 0; } }
public override bool CanCollectItem(GameObject o) { NumberInfo ni = o.GetComponent <NumberInfo>(); bool flag = false; if (!ni) { PlayerNowMessage.inst.Display("The Zooka can only hold number orbs!"); flag = false; } else if (rocketAmmo.Count >= maxAmmo) { PlayerNowMessage.inst.Display("The Zooka can only hold 3 numbers!"); flag = false; } else { flag = true; } if (flag) { flag = CanCollectNumber(ni); } if (!base.IsValidAmmo(o)) { flag = false; } return(flag); }
public ThreeRegionDataInfo(ThreeRegion regionShape, int count, NumberInfo numberInfo) { _regionShape = regionShape; _count = count; _numberInfo = numberInfo; _keyNumbers = new ConcurrentDictionary <int, PeriodNumberInfo>(); }
void FreezeNumber(NumberInfo ni, float x) { ni.GetComponent <Rigidbody>().velocity = Vector3.zero; ni.GetComponent <Rigidbody>().useGravity = false; ghosts.Add(ni.gameObject.GetComponent <Collider>()); ni.SetNumber(new Fraction((int)x, 1)); // Integer result detected, allow it to stay (set number to its square root result ni.gameObject.SendMessage("StopDying", SendMessageOptions.DontRequireReceiver); }
void SetNumberLeft(NumberInfo ni) // DRY { numberLeft = ni; ni.transform.position = startPositionLeft.position; ni.transform.localScale = Vector3.one * 1.5f; ni.transform.parent = startPositionLeft; ni.transform.GetComponent <Rigidbody>().isKinematic = true; ni.gameObject.AddComponent <UseGravityOnPlayerPickup>(); }
public void ReceiveNumberZ(GameObject o) { NumberInfo ni = o.GetComponent <NumberInfo>(); if (ni) { ReceiveNumberInput(axis[2], ni); } }
void OnCollisionEnter(Collision hit) { NumberInfo ni = hit.collider.GetComponent <NumberInfo>(); if (ni && !ni.GetComponent <ResourceNumber>()) { transform.root.GetComponent <LevelMachine_DanMeyerCubes>().TrySolve(ni); } }
void NumberDestroyed(NumberInfo ni) { ni.numberDestroyedDelegate -= NumberDestroyed; ni.numberChangedDelegate -= HandleNumberChanged; if (blobNumbers.Contains(ni)) { blobNumbers.Remove(ni); } }
void PlayerTouched(GameObject o) { NumberInfo ni = o.GetComponent <NumberInfo>(); if (ni != null && spikeyChildren.Contains(ni)) { MovePlayerBack(); } }
public void TrySolve(NumberInfo ni) { if (cubeState == CubeState.Ready) { StartCoroutine(Solving(ni.fraction)); float kickForce = 400f; // get thatwrong answer away from me! ni.GetComponent <Rigidbody>().AddForce((ni.transform.position - editorCameraParent.position) * kickForce); } }
public override void Initialize(PropertiesModel.Property property) { base.Initialize(property); m_info = property.EditorAdditionalData<NumberInfo>(); m_textBox = new MetroTextBox(); MetroSkinManager.ApplyMetroStyle(m_textBox); m_textBox.Width = 0; m_textBox.Dock = DockStyle.Top; m_textBox.TextChanged += m_textBox_TextChanged; m_textBox.CustomPaintForeground += m_textBox_CustomPaintForeground; m_textBox.Leave += m_textBox_Leave; Content.Controls.Add(m_textBox); UpdateEditor(); m_textBox.Refresh(); }