use uuid::Uuid; use rand::prelude::*; use rand::distributions::Alphanumeric; use std::iter; use cryp::{Cryp}; use skill::{Skill}; pub fn generate_mob() -> Cryp { let mut rng = thread_rng(); let name: String = iter::repeat(()) .map(|()| rng.sample(Alphanumeric)) .take(8) .collect(); let mob = Cryp::new() .named(&name); return mob; } // fn quick_game(player_size: usize) -> Vec { // iter::repeat_with(|| // generate_mob() // .set_account(Uuid::nil()) // .learn(Skill::Attack)) // .take(player_size) // .collect::>() // } pub fn instance_mobs(player_id: Uuid) -> Vec { iter::repeat_with(|| generate_mob() .set_account(player_id)) // .learn(Skill::Attack)) .take(3) .collect::>() } // fn zone_3v2_attack(player_lvl: u8) -> Vec { // let x = Cryp::new() // .named(&"hench".to_string()) // .learn(Skill::Attack); // let y = Cryp::new() // .named(&"bench".to_string()) // .learn(Skill::Attack); // return vec![x, y]; // } // fn zone_2v2_caster(player_lvl: u8) -> Vec { // let x = Cryp::new() // .named(&"robe".to_string()) // .learn(Skill::Blast); // let y = Cryp::new() // .named(&"wizard hat".to_string()) // .learn(Skill::Blast); // return vec![x, y]; // } // fn zone_3v3_melee_miniboss(player_lvl: u8) -> Vec { // let x = Cryp::new() // .named(&"jungle juice".to_string()) // .learn(Skill::Attack); // let y = Cryp::new() // .named(&"bamboo basher".to_string()) // .learn(Skill::Attack) // .learn(Skill::Stun); // let z = Cryp::new() // .named(&"lemongrass tea".to_string()) // .learn(Skill::Attack); // return vec![x, y, z]; // } // fn zone_3v3_healer_boss(player_lvl: u8) -> Vec { // let x = Cryp::new() // .named(&"coinage".to_string()) // .learn(Skill::Attack) // .learn(Skill::Parry) // .learn(Skill::Block); // let y = Cryp::new() // .named(&"wololo".to_string()) // // big strong // // .learn(Skill::Blast) // .learn(Skill::Heal) // .learn(Skill::Triage); // let z = Cryp::new() // .named(&"quarry".to_string()) // .learn(Skill::Attack) // .learn(Skill::Parry) // .learn(Skill::Stun); // return vec![x, y, z]; // } // pub fn generate_mob_player(mode: GameMode, cryps: &Vec) -> Player { // let mut mob_player = Player::new(Uuid::nil()); // let cryp_lvl = cryps.iter().max_by_key(|c| c.lvl).unwrap().lvl; // let player_size = cryps.len(); // let mobs = match mode { // GameMode::Normal => quick_game(cryp_lvl, player_size), // GameMode::Zone3v2Attack => zone_3v2_attack(cryp_lvl), // GameMode::Zone2v2Caster => zone_2v2_caster(cryp_lvl), // GameMode::Zone3v3MeleeMiniboss => zone_3v3_melee_miniboss(cryp_lvl), // GameMode::Zone3v3HealerBoss => zone_3v3_healer_boss(cryp_lvl), // _ => panic!("{:?} not handled for pve mobs", mode), // }; // mob_player.set_cryps(mobs); // return mob_player; // }