// AddChaos creates the specified number of Planes that each have their own // random selection of n weapons, quantified by their "deadliness." func (s *Squadron) AddChaos(clones int, deadliness int, client sleepwalker.RESTClient, armory ordnance.Armory) { desc := "AddChaos" for i := 1; i <= clones; i++ { name := fmt.Sprintf("chaos_%d_of_%d", i, clones) plane := NewPlane(name, client) weaponNames := armory.GetRandomWeaponNames(deadliness) var arsenal ordnance.Arsenal for _, weaponName := range weaponNames { log.WithFields(map[string]interface{}{ "plane": name, "weapon": weaponName, "msg": "adding weapon", }).Debug(desc) arsenal = append(arsenal, armory.GetWeapon(weaponName)) } plane.Arm(arsenal) s.Add(plane) } }