public override void HandleSignal(Signal signal) { if (signal is Stimulation) { var stimulation = signal as Stimulation; var affinity = Pattern.Affinity(stimulation.Peptide, AffinityType.Euclidean); if (affinity >= Globals.HelperAffinityThreashold) { peptideAffinitySum += affinity; costimulationSum += stimulation.Concentration; Activators.Add(stimulation.Sender); if (!Activated && peptideAffinitySum + costimulationSum > Globals.HelperActivationThreshold) { Activated = true; //Secrete(new Cytokine(Address, CytokineType.IL2, costimulationSum)); // TODO: X64 stimulates growth and differentiation of T cell response //Secrete(new Cytokine(Address, CytokineType.IL4, costimulationSum)); // TODO: X64 stimulates proliferation and differentiation string nodes = ""; foreach (var activator in Activators) { nodes += activator + ","; } Log("ALARM: Attack detected in node " + nodes.TrimEnd(new char[] { ',' }), LogLevel.Major); // die after activation Apoptosis(); } } } base.HandleSignal(signal); }
public void AddActivator(INeuron neuron, double weigth) { Activators.Add(neuron, weigth); neuron.Outputs.Add(this, weigth); }