public void AssignWaveStat(Dictionary <string, IntFloat> monster_count, int wave, int wavelet) { float total_mass = 0; float total_time = 0; foreach (string name in monster_count.Keys) { int count = monster_count[name].myInt; enemyStats stat = Central.Instance.getEnemy(name); if (stat != null) { WaveStat wavestat = getWaveStat(Central.Instance.current_lvl, wave, wavelet, name); wavestat.speed = stat.speed; wavestat.total_modified_mass = stat.getModifiedMass() * count; wavestat.time = monster_count[name].myFloat; total_mass += wavestat.total_modified_mass; total_time += wavestat.time; } else { Debug.Log("Count not assign a WaveStat for " + name + "\n"); } } WaveStat total_wavestat = getWaveStat(Central.Instance.current_lvl, wave, wavelet, all); total_wavestat.speed = -1; total_wavestat.total_modified_mass = total_mass; total_wavestat.time = total_time; }
public enemyStats LoadEnemy(string line) { JSONParser p = new JSONParser(line); JSONObject pname = new JSONObject(); JSONObject pcost = new JSONObject(); JSONObject prunes = new JSONObject(); JSONObject mass = new JSONObject(); p.parse(); p.root.TryGetValue("name", out pname); p.root.TryGetValue("cost", out pcost); p.root.TryGetValue("mass", out mass); //this is here for wave balancing p.root.TryGetValue("runes", out prunes); EnemyType type = EnumUtil.EnumFromString <EnemyType>(pname.value, EnemyType.Null); if (type == EnemyType.Null) { Debug.LogError("Trying to initialize an unknown EnemyType from " + pname.value); return(null); } enemyStats enemy = new enemyStats(type); Central.Instance.enemies.Add(enemy); return(enemy); }
public void CheckBasicStats(enemyStats s) { //if (my_rigidbody.mass != s.mass) Debug.LogError(this.name + " mass Prefab != init file: " + my_rigidbody.mass + " vs " + s.mass + "\n"); //if (my_ai.speed != s.speed) Debug.LogError(this.name + " speed Prefab != init file: " + my_ai.speed + " vs " + s.speed + "\n"); //if (Get.GetDefense(defenses,EffectType.Force) != s.defense) Debug.LogError(this.name + " defense Prefab != init file: " + Get.GetDefense(defenses, EffectType.Force) + " vs " + s.defense + "\n"); // if (Get.GetDefense(defenses,EffectType.VexingForce) != s.vf_defense) Debug.LogError(this.name + " vf_defense Prefab != init file: " + Get.GetDefense(defenses, EffectType.VexingForce) + " vs " + s.vf_defense + "\n"); }
public static void initEnemies() { foreach (EnemyType type in Enum.GetValues(typeof(EnemyType))) { enemyStats enemy = new enemyStats(type); Central.Instance.enemies.Add(enemy); } }
private void OnCollisionEnter2D(Collision2D collision) { enemyStats enemy = collision.collider.gameObject.GetComponent <enemyStats>(); if (enemy) { if (rb.velocity.magnitude > initialVelocity / speedRatio) { enemy.changeHealth(-damage); } if (destroyOnContact) { Destroy(gameObject); } } }
private void OnCollisionStay2D(Collision2D collision) { enemyStats enemy = collision.collider.gameObject.GetComponent <enemyStats>(); if (enemy) { enemy.changeHealth(-damage); if (oneHit) { Physics2D.IgnoreCollision(collision.otherCollider, GetComponent <Collider2D>()); } if (destroyOnContact) { Destroy(gameObject); } } }
private void OnTriggerStay2D(Collider2D collision) { enemyStats enemy = collision.gameObject.GetComponent <enemyStats>(); if (enemy) { enemy.changeHealth(-damage); if (oneHit) { Physics2D.IgnoreCollision(collision, GetComponent <Collider2D>()); } Rigidbody2D enemyRb = enemy.GetComponent <Rigidbody2D>(); enemyRb.AddForce(rb.velocity.normalized * piercingCoefficient); rb.AddForce(-rb.velocity.normalized * piercingCoefficient); if (destroyOnContact) { Destroy(gameObject); } } }
private void OnTriggerEnter2D(Collider2D collision) { enemyStats enemy = collision.gameObject.GetComponent <enemyStats>(); if (enemy) { if (rb.velocity.magnitude > initialVelocity / 3) { print("Hit enemy"); enemy.changeHealth(-damage); Rigidbody2D enemyRb = enemy.GetComponent <Rigidbody2D>(); float massRatio = 1f / enemyRb.mass; //print(massRatio); enemyRb.AddForce(rb.velocity.normalized * piercingCoefficient * massRatio, ForceMode2D.Impulse); rb.AddForce(-rb.velocity.normalized * piercingCoefficient * massRatio, ForceMode2D.Impulse); } if (destroyOnContact) { Destroy(gameObject); } } }
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LOAD ACTORS public string oldLoadActors(string what) { string line = file.Dequeue(); while (line != null && !line[0].Equals(':')) { if (what.Equals("Toys")) { unitStats actor = LoadActor(line); line = file.Dequeue(); Central.Instance.setUnitStats(actor, true); } else { enemyStats enemy = LoadEnemy(line); line = file.Dequeue(); Central.Instance.enemies.Add(enemy); Peripheral.Instance.haveMonsters.Add(enemy.name, true); } } return(line); }
public void initStats(enemyStats s) { // if (tween == null) {tween = this.gameObject.AddComponent<Tweener>();} if (my_ai == null) { my_ai = GetComponent <AI>(); } if (my_body == null) { my_body = GetComponent <Body>(); } if (my_rigidbody == null) { my_rigidbody = GetComponentInChildren <Rigidbody2D>(); } if (my_collider == null) { my_collider = GetComponentInChildren <Collider2D>(); } if (my_visuals == null || !my_visuals.gameObject.activeSelf) { initVisuals(); } modified_defenses = false; normalize_defenses_is_running = false; if (mass != null) { mass.gameObject.transform.SetParent(transform); } if (mass == null) { mass = Peripheral.Instance.zoo.getObject("Monsters/Helpers/Mass", true).GetComponent <Mass>(); } if (!mass.gameObject.activeSelf) { mass.gameObject.SetActive(true); } _initMass(); mass.gameObject.transform.SetParent(transform); mass.gameObject.transform.localPosition = Vector3.zero; mass.gameObject.transform.localScale = Vector3.one; mass.gameObject.transform.localRotation = Quaternion.identity; stats = s.DeepClone(); init_defenses = CloneUtil.copyList <Defense>(stats.defenses); defenses = CloneUtil.copyList <Defense>(stats.defenses); //tileSize = Peripheral.Instance.tileSize; init_scale = Vector3.one; this.transform.localScale = init_scale; if (init_mass == -1) { init_mass = my_rigidbody.mass; } else { my_rigidbody.mass = init_mass; mass.Define(my_rigidbody, this.transform.GetChild(0).transform, mass_factor, status_bar_location, scale_transform); } if (init_speed == -1) { init_speed = my_ai.speed; } else { my_ai.speed = init_speed; } wish_list = new WishType[stats.inventory.Count]; for (int i = 0; i < stats.inventory.Count; i++) { wish_list[i] = stats.inventory[i].type; } mass.SetPosition(status_bar_location); dying = false; InvokeRepeating("CheckIfAlive", 0, check_if_alive_repeat_rate); for (int i = 0; i < enemy_tech.Length; i++) { enemy_tech[i].setActive(true); } lavas = new List <Lava>(); // CheckBasicStats(s); //for wave balancing purposes, reminder that these stats are now in the init file, not on the prefab }
void Start() { eStats = GetComponentInParent <enemyStats>(); }
private void Start() { me = this; }